Files
shop-admin/src/pages/dashboard/Dashboard.tsx
T
hamid zarghami 26f1a057be dashboard
2025-10-08 16:58:40 +03:30

64 lines
2.2 KiB
TypeScript

import { type FC } from 'react'
import { useGetDashboard, useGetOrderChart } from './hooks/useDashboardData'
import { useLocation } from 'react-router-dom'
import PageLoading from '../../components/PageLoading'
import Error from '../../components/Error'
import DashboardOverview from './components/DashboardOverview'
import ProductsCountSection from './components/ProductsCountSection'
import OrdersCountSection from './components/OrdersCountSection'
import UnreadCommentsSection from './components/UnreadCommentsSection'
import UsersCountSection from './components/UsersCountSection'
import OrdersChartSection from './components/OrdersChartSection'
const Dashboard: FC = () => {
const location = useLocation()
const { data, isLoading, error } = useGetDashboard()
const { data: orderChartData } = useGetOrderChart()
if (isLoading) {
return (
<div className="flex justify-center items-center min-h-[400px]">
<PageLoading />
</div>
)
}
if (error) {
return (
<div className="flex justify-center items-center min-h-[400px]">
<Error errorText="خطا در بارگذاری اطلاعات داشبورد" />
</div>
)
}
const renderDashboardContent = () => {
const path = location.pathname
if (path.includes('products-count')) {
return <ProductsCountSection data={data?.results} />
} else if (path.includes('orders-count')) {
return <OrdersCountSection data={data?.results} />
} else if (path.includes('unread-comments')) {
return <UnreadCommentsSection data={data?.results} />
} else if (path.includes('users-count')) {
return <UsersCountSection data={data?.results} />
} else if (path.includes('orders-chart')) {
return <OrdersChartSection
dashboardData={data?.results}
orderChartData={orderChartData?.results}
/>
} else {
// نمایش داشبورد کلی
return <DashboardOverview data={data?.results} />
}
}
return (
<div className="p-6">
{renderDashboardContent()}
</div>
)
}
export default Dashboard