import { AlertTriangle, Database, RefreshCw } from "lucide-react" import { useState } from "react" import { useHomeOverview } from "@/features/home/api/home.query" import { Button } from "@/shared/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/shared/ui/card" import { Skeleton } from "@/shared/ui/skeleton" import { FailedStocksDialog } from "../components/failed-stocks-dialog" import { HomeShell } from "../components/home-shell" import { MarketDataOverviewCard } from "../components/market-data-overview-card" export function HomePage() { const overview = useHomeOverview() const [failureDialogOpen, setFailureDialogOpen] = useState(false) const update = overview.data?.latest_update return (

欢迎回到知行量化

首页

从当前目标股票池和市场数据同步状态开始,快速判断研究数据是否准备就绪。

{overview.isPending ? : null} {overview.isError ? ( void overview.refetch()} /> ) : null} {!overview.isPending && !overview.isError && overview.data?.status === "no_data" ? ( ) : null} {!overview.isPending && !overview.isError && update ? ( setFailureDialogOpen(true)} stockPoolCount={overview.data.stock_pool_count} update={update} /> ) : null} {update ? ( ) : null}
) } function OverviewLoading() { return (
{Array.from({ length: 5 }, (_, index) => ( ))}
) } function OverviewError({ onRetry }: { onRetry: () => void }) { return ( 概览请求失败,可能是服务或网络暂时异常。请稍后重试。 ) } function NoDataState({ stockPoolCount }: { stockPoolCount: number }) { return ( 当前还没有同步批次,完成第一次同步后这里会显示更新详情。

当前目标股票池: {stockPoolCount} {" "} 只

) }