@@ -7,6 +7,10 @@ import { CopyButton } from './copy-button'
77import { ElapsedTimer } from './elapsed-timer'
88import { FeedbackIconButton } from './feedback-icon-button'
99import { useSubscriptionQuery } from '../hooks/use-subscription-query'
10+ import {
11+ getBlockPercentRemaining ,
12+ isCoveredBySubscription ,
13+ } from '../utils/subscription'
1014import { useTheme } from '../hooks/use-theme'
1115import {
1216 useFeedbackStore ,
@@ -221,19 +225,15 @@ const CreditsOrSubscriptionIndicator: React.FC<{ credits: number }> = ({ credits
221225 pauseWhenIdle : false ,
222226 } )
223227
224- const activeSubscription = subscriptionData ?. hasSubscription ? subscriptionData : null
225- const rateLimit = activeSubscription ?. rateLimit
226-
227- const blockPercentRemaining = useMemo ( ( ) => {
228- if ( ! rateLimit ?. blockLimit || rateLimit . blockUsed == null ) return null
229- return Math . round ( ( ( rateLimit . blockLimit - rateLimit . blockUsed ) / rateLimit . blockLimit ) * 100 )
230- } , [ rateLimit ] )
228+ const blockPercentRemaining = useMemo (
229+ ( ) => getBlockPercentRemaining ( subscriptionData ) ,
230+ [ subscriptionData ] ,
231+ )
231232
232- const showSubscriptionIndicator =
233- activeSubscription && ! rateLimit ?. limited && blockPercentRemaining != null && blockPercentRemaining > 0
233+ const showSubscriptionIndicator = isCoveredBySubscription ( subscriptionData )
234234
235235 if ( showSubscriptionIndicator ) {
236- const label = blockPercentRemaining < 20
236+ const label = ( blockPercentRemaining ?? 0 ) < 20
237237 ? `✓ ${ SUBSCRIPTION_DISPLAY_NAME } (${ blockPercentRemaining } % left)`
238238 : `✓ ${ SUBSCRIPTION_DISPLAY_NAME } `
239239 return (
0 commit comments