diff --git a/src/components/SubscriptionQuotaFooter.tsx b/src/components/SubscriptionQuotaFooter.tsx index e345b58f9..fce6ea09e 100644 --- a/src/components/SubscriptionQuotaFooter.tsx +++ b/src/components/SubscriptionQuotaFooter.tsx @@ -8,6 +8,7 @@ import type { QuotaTier, SubscriptionQuota } from "@/types/subscription"; interface SubscriptionQuotaFooterProps { appId: AppId; inline?: boolean; + isCurrent?: boolean; } interface SubscriptionQuotaViewProps { @@ -386,12 +387,15 @@ const TierBar: React.FC<{ const SubscriptionQuotaFooter: React.FC = ({ appId, inline = false, + isCurrent = false, }) => { const { data: quota, isFetching: loading, refetch, - } = useSubscriptionQuota(appId, true); + } = useSubscriptionQuota(appId, isCurrent, isCurrent); + + if (!isCurrent) return null; return ( ) : isOfficial ? ( - + ) : hasMultiplePlans ? (
diff --git a/src/lib/query/subscription.ts b/src/lib/query/subscription.ts index 71248e7f6..f79dd1d6b 100644 --- a/src/lib/query/subscription.ts +++ b/src/lib/query/subscription.ts @@ -7,13 +7,18 @@ import { PROVIDER_TYPES } from "@/config/constants"; const REFETCH_INTERVAL = 5 * 60 * 1000; // 5 minutes -export function useSubscriptionQuota(appId: AppId, enabled: boolean) { +export function useSubscriptionQuota( + appId: AppId, + enabled: boolean, + autoQuery = false, +) { return useQuery({ queryKey: ["subscription", "quota", appId], queryFn: () => subscriptionApi.getQuota(appId), enabled: enabled && ["claude", "codex", "gemini"].includes(appId), - refetchInterval: REFETCH_INTERVAL, - refetchOnWindowFocus: true, + refetchInterval: autoQuery ? REFETCH_INTERVAL : false, + refetchIntervalInBackground: autoQuery, + refetchOnWindowFocus: autoQuery, staleTime: REFETCH_INTERVAL, retry: 1, });