import { useCallback, useRef, useState } from 'react'; import { usageApi } from '@/services/api'; import { collectUsageDetails, type KeyStats, type UsageDetail } from '@/utils/usage'; export type UseAuthFilesStatsResult = { keyStats: KeyStats; usageDetails: UsageDetail[]; loadKeyStats: () => Promise; }; export function useAuthFilesStats(): UseAuthFilesStatsResult { const [keyStats, setKeyStats] = useState({ bySource: {}, byAuthIndex: {} }); const [usageDetails, setUsageDetails] = useState([]); const loadingKeyStatsRef = useRef(false); const loadKeyStats = useCallback(async () => { if (loadingKeyStatsRef.current) return; loadingKeyStatsRef.current = true; try { const usageResponse = await usageApi.getUsage(); const usageData = usageResponse?.usage ?? usageResponse; const stats = await usageApi.getKeyStats(usageData); setKeyStats(stats); const details = collectUsageDetails(usageData); setUsageDetails(details); } catch { // 静默失败 } finally { loadingKeyStatsRef.current = false; } }, []); return { keyStats, usageDetails, loadKeyStats }; }