From 243eaf214c78164a3dafa6ff1f100d5b986bc3fa Mon Sep 17 00:00:00 2001 From: Supra4E8C Date: Sun, 22 Feb 2026 13:13:56 +0800 Subject: [PATCH] fix(usage): propagate loadUsageStats errors --- src/components/providers/hooks/useProviderStats.ts | 2 +- src/components/usage/hooks/useUsageData.ts | 12 ++++++++++-- src/pages/AiProvidersPage.tsx | 2 +- src/pages/AuthFilesPage.tsx | 4 ++-- src/pages/UsagePage.tsx | 2 +- src/stores/useUsageStatsStore.ts | 4 +++- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/components/providers/hooks/useProviderStats.ts b/src/components/providers/hooks/useProviderStats.ts index 7169b0b..692fb0d 100644 --- a/src/components/providers/hooks/useProviderStats.ts +++ b/src/components/providers/hooks/useProviderStats.ts @@ -19,7 +19,7 @@ export const useProviderStats = () => { }, [loadUsageStats]); useInterval(() => { - void refreshKeyStats(); + void refreshKeyStats().catch(() => {}); }, 240_000); return { keyStats, usageDetails, loadKeyStats, refreshKeyStats, isLoading }; diff --git a/src/components/usage/hooks/useUsageData.ts b/src/components/usage/hooks/useUsageData.ts index 4816cef..b4e37a4 100644 --- a/src/components/usage/hooks/useUsageData.ts +++ b/src/components/usage/hooks/useUsageData.ts @@ -49,7 +49,7 @@ export function useUsageData(): UseUsageDataReturn { }, [loadUsageStats]); useEffect(() => { - void loadUsageStats({ staleTimeMs: USAGE_STATS_STALE_TIME_MS }); + void loadUsageStats({ staleTimeMs: USAGE_STATS_STALE_TIME_MS }).catch(() => {}); setModelPrices(loadModelPrices()); }, [loadUsageStats]); @@ -109,7 +109,15 @@ export function useUsageData(): UseUsageDataReturn { }), 'success' ); - await loadUsageStats({ force: true, staleTimeMs: USAGE_STATS_STALE_TIME_MS }); + try { + await loadUsageStats({ force: true, staleTimeMs: USAGE_STATS_STALE_TIME_MS }); + } catch (err: unknown) { + const message = err instanceof Error ? err.message : ''; + showNotification( + `${t('notification.refresh_failed')}${message ? `: ${message}` : ''}`, + 'error' + ); + } } catch (err: unknown) { const message = err instanceof Error ? err.message : ''; showNotification( diff --git a/src/pages/AiProvidersPage.tsx b/src/pages/AiProvidersPage.tsx index c7d8e6e..27276aa 100644 --- a/src/pages/AiProvidersPage.tsx +++ b/src/pages/AiProvidersPage.tsx @@ -113,7 +113,7 @@ export function AiProvidersPage() { if (hasMounted.current) return; hasMounted.current = true; loadConfigs(); - loadKeyStats(); + void loadKeyStats().catch(() => {}); }, [loadConfigs, loadKeyStats]); useEffect(() => { diff --git a/src/pages/AuthFilesPage.tsx b/src/pages/AuthFilesPage.tsx index a9214ce..18d7253 100644 --- a/src/pages/AuthFilesPage.tsx +++ b/src/pages/AuthFilesPage.tsx @@ -212,14 +212,14 @@ export function AuthFilesPage() { useEffect(() => { if (!isCurrentLayer) return; loadFiles(); - loadKeyStats(); + void loadKeyStats().catch(() => {}); loadExcluded(); loadModelAlias(); }, [isCurrentLayer, loadFiles, loadKeyStats, loadExcluded, loadModelAlias]); useInterval( () => { - void refreshKeyStats(); + void refreshKeyStats().catch(() => {}); }, isCurrentLayer ? 240_000 : null ); diff --git a/src/pages/UsagePage.tsx b/src/pages/UsagePage.tsx index 0e3190f..9339acb 100644 --- a/src/pages/UsagePage.tsx +++ b/src/pages/UsagePage.tsx @@ -266,7 +266,7 @@ export function UsagePage() {