// ** MUI Imports import Grid from '@mui/material/Grid' // ** Icons Imports import Poll from 'mdi-material-ui/Poll' import CurrencyUsd from 'mdi-material-ui/CurrencyUsd' import HelpCircleOutline from 'mdi-material-ui/HelpCircleOutline' import BriefcaseVariantOutline from 'mdi-material-ui/BriefcaseVariantOutline' // ** Custom Components Imports import CardStatisticsVerticalComponent from '../../core/components/card-statistics/card-stats-vertical' // ** Styled Component Import import ApexChartWrapper from '../../core/styles/libs/react-apexcharts' import { Card, IconButton, TextField, Typography } from '@mui/material' import { withApiAuthRequired } from "@auth0/nextjs-auth0"; import { withPageAuthRequired } from '@auth0/nextjs-auth0/client' import Button from '@mui/material/Button' import { CardContent } from '@mui/material' import Onboarding from '../../components/Onboarding' import { useState } from 'react' import { useEffect } from 'react' import router from 'next/router' import { isObject } from 'util' import Orders from '../../components/Orders' import StatisticsCard from '../../views/dashboard/StatisticsCard' import ArtistStats from '../../components/ArtistStats' import { ArrowDownBox, BankTransfer, Cash, Clipboard, CubeOutline, StarOutline } from 'mdi-material-ui' import CircularProgress from '@mui/material/CircularProgress' import Tooltip from '@mui/material/Tooltip' import Box from '@mui/material/Box' import { Fullscreen, OpenInBrowser, Settings, WebAsset } from '@mui/icons-material' const Dashboard = () => { const [userData , setUserData] = useState(null) const [profileData, setArtistData] = useState(null); const [requestData, setArtistRequestData] = useState(null); const [onboardData, setOnboardedData] = useState(false); const [statsData, setStatsData] = useState(null); const [loading, setLoading] = useState(true); const [onboarding, setOnboarding] = useState(false); const [onboarded, setOnboarded] = useState(false); const setOnboardingTrue = () => { setOnboarding(true); } const getData = async () => { const userResponse = await fetch('/api/me'); const user = await userResponse.json(); setUserData(user); const profileResponse = await fetch('/api/artist/profile'); const sellerProfile = await profileResponse.json(); setArtistData(sellerProfile); const statsResponse = await fetch('/api/artist/stats'); const statsResponseData = await statsResponse.json(); setStatsData(statsResponseData); const requestResponse = await fetch('/api/artist/request'); const sellerRequest = await requestResponse.json(); setArtistRequestData(sellerRequest); const onboardedResponse = await fetch('/api/artist/onboarded'); const onboardedData = await onboardedResponse.json(); setOnboardedData(onboardedData["onboarded"]); setTimeout(getData, 5000); // Poll every 5 seconds (adjust as needed) if(sellerRequest != null && Object.keys(sellerRequest).length>0){ setOnboarding(true) } if(sellerProfile!=null && Object.keys(sellerProfile).length>0 && sellerRequest["accepted"]){ ////console.log("Test") setOnboarded(true) } setLoading(false); } useEffect(() => { getData(); }, []); return ( <> {(loading) ? ( ):( Requests {router.push("/dashboard/requests")}}> {( onboarding==true && onboarded==false || onboardData==false ) ? ( ):( (onboarded && onboardData==true && onboarding) ? ( {(statsData!=null && isObject(statsData)) ? ( ):( null )} {router.push("/dashboard/artist/reviews") }} size="large"> {router.push("/dashboard/artist/requests") }} size="large"> { router.push("/dashboard/artist/payout") }} size="large"> { router.push("/dashboard/artist/artistsettings") }} size="large"> { router.push("/dashboard/artist/pagesettings") }} size="large"> { router.push("/box/"+userData["displayName"]) }} size="large"> ) : ( ) )} )} ) } export default withPageAuthRequired(Dashboard)