/** * Token Usage Viewer 主页面 * * 展示 claude-opus-4-5-thinking 模型的配额使用情况仪表盘。 * * 特性: * - SSR 预加载数据(通过 loader) * - 每 5 分钟自动刷新配额数据 * - Tauri 环境下自动设置窗口标题 */ import { useSuspenseQuery } from '@tanstack/react-query' import { createFileRoute } from '@tanstack/react-router' import { isTauri } from '@tauri-apps/api/core' import { getCurrentWindow } from '@tauri-apps/api/window' import { useEffect } from 'react' import { TokenUsageDashboard } from '@/components/TokenUsageDashboard' import { orpc } from '@/orpc' /** 数据自动刷新间隔 (毫秒) - 5 分钟 */ const REFETCH_INTERVAL = 5 * 60 * 1000 export const Route = createFileRoute('/')({ component: Home, /** * 路由加载器 - SSR 数据预取 * * 在服务端渲染时预先获取使用量数据,确保首次渲染即有内容。 */ loader: async ({ context }) => { await context.queryClient.ensureQueryData( orpc.usage.getUsage.queryOptions(), ) }, }) /** * 首页组件 * * 使用 useSuspenseQuery 获取并展示配额数据, * 确保 data 不为空(由 loader 预取保证)。 */ function Home() { const { data } = useSuspenseQuery({ ...orpc.usage.getUsage.queryOptions(), refetchInterval: REFETCH_INTERVAL, }) // Tauri 环境: 设置窗口标题 useEffect(() => { if (!isTauri()) return getCurrentWindow().setTitle('Token Usage Viewer') }, []) return }