1- import { useQuery , useQueryClient } from '@tanstack/react-query'
21import React , { useEffect } from 'react'
32import open from 'open'
43
54import { BottomBanner } from './bottom-banner'
65import { Button } from './button'
76import { ProgressBar } from './progress-bar'
7+ import { getActivityQueryData } from '../hooks/use-activity-query'
88import { useClaudeQuotaQuery } from '../hooks/use-claude-quota-query'
99import { usageQueryKeys , useUsageQuery } from '../hooks/use-usage-query'
1010import { useChatStore } from '../state/chat-store'
@@ -41,7 +41,6 @@ const formatRenewalDate = (dateStr: string | null): string => {
4141}
4242
4343export const UsageBanner = ( { showTime } : { showTime : number } ) => {
44- const queryClient = useQueryClient ( )
4544 const sessionCreditsUsed = useChatStore ( ( state ) => state . sessionCreditsUsed )
4645 const setInputMode = useChatStore ( ( state ) => state . setInputMode )
4746
@@ -60,27 +59,17 @@ export const UsageBanner = ({ showTime }: { showTime: number }) => {
6059 isFetching,
6160 } = useUsageQuery ( {
6261 enabled : true ,
62+ refetchInterval : USAGE_POLL_INTERVAL ,
6363 } )
6464
65- // Manual polling using setInterval - TanStack Query's refetchInterval doesn't work
66- // reliably in terminal environments even with focusManager configuration
67- useEffect ( ( ) => {
68- const interval = setInterval ( ( ) => {
69- queryClient . invalidateQueries ( { queryKey : usageQueryKeys . current ( ) } )
70- } , USAGE_POLL_INTERVAL )
71- return ( ) => clearInterval ( interval )
72- } , [ queryClient ] )
73-
74- const { data : cachedUsageData } = useQuery < {
65+ // Get cached data for immediate display
66+ const cachedUsageData = getActivityQueryData < {
7567 type : 'usage-response'
7668 usage : number
7769 remainingBalance : number | null
7870 balanceBreakdown ?: { free : number ; paid : number ; ad ?: number }
7971 next_quota_reset : string | null
80- } > ( {
81- queryKey : usageQueryKeys . current ( ) ,
82- enabled : false ,
83- } )
72+ } > ( usageQueryKeys . current ( ) )
8473
8574 // Auto-hide after timeout
8675 useEffect ( ( ) => {
0 commit comments