// ** 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/dashboard/Onboarding'
import { useState } from 'react'
import { useEffect } from 'react'
import router from 'next/router'
import { isObject } from 'util'
import Orders from '../../components/dashboard/customer/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, List, 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)