import Refresh from "@mui/icons-material/Refresh"; import Skeleton from "@mui/material/Skeleton"; import { useTimeZone } from "@/app/timezone/TimeZoneProvider.jsx"; import { DashboardCharts } from "@/features/dashboard/components/DashboardCharts.jsx"; import { DashboardStats } from "@/features/dashboard/components/DashboardStats.jsx"; import { useDashboardPage } from "@/features/dashboard/hooks/useDashboardPage.js"; import { Button } from "@/shared/ui/Button.jsx"; import { usePageLoadingStatus } from "@/shared/ui/PageLoadBoundary.jsx"; export function DashboardUserProfile() { const page = useDashboardPage(); const { formatMillis } = useTimeZone(); // 首次请求接入整页加载边界;边界释放后的 App/时区切换则展示本区域自己的骨架,避免页面空白。 usePageLoadingStatus(page.loading); return (

用户画像

{page.overview?.updatedAtMs ? 数据更新时间 {formatMillis(page.overview.updatedAtMs)} : null}
{renderContent(page)}
); } function renderContent(page) { if (page.loading) { return ; } if (page.error) { return (
{page.error}
); } if (!page.overview) { return (
当前无数据
); } return ( <> ); } function DashboardUserProfileSkeleton() { return ( ); }