@@ -35,7 +35,7 @@ import {
3535 getVisiblePlans ,
3636} from '@/app/workspace/[workspaceId]/w/components/sidebar/components-new/settings-modal/components/subscription/subscription-permissions'
3737import { useOrganizationBilling , useOrganizations } from '@/hooks/queries/organization'
38- import { useSubscriptionData , useUsageData , useUsageLimitData } from '@/hooks/queries/subscription'
38+ import { useSubscriptionData , useUsageLimitData } from '@/hooks/queries/subscription'
3939import { useUpdateWorkspaceSettings , useWorkspaceSettings } from '@/hooks/queries/workspace'
4040import { useGeneralStore } from '@/stores/settings/general/store'
4141
@@ -170,7 +170,6 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
170170
171171 // React Query hooks for data fetching
172172 const { data : subscriptionData , isLoading : isSubscriptionLoading } = useSubscriptionData ( )
173- const { data : usageResponse , isLoading : isUsageLoading } = useUsageData ( )
174173 const { data : usageLimitResponse , isLoading : isUsageLimitLoading } = useUsageLimitData ( )
175174 const { data : workspaceData , isLoading : isWorkspaceLoading } = useWorkspaceSettings ( workspaceId )
176175 const updateWorkspaceMutation = useUpdateWorkspaceSettings ( )
@@ -188,38 +187,38 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
188187 const usageLimitRef = useRef < UsageLimitRef | null > ( null )
189188
190189 // Combine all loading states
191- const isLoading =
192- isSubscriptionLoading || isUsageLoading || isUsageLimitLoading || isWorkspaceLoading
190+ const isLoading = isSubscriptionLoading || isUsageLimitLoading || isWorkspaceLoading
193191
194- // Extract subscription status from data
192+ // Extract subscription status from subscriptionData. data
195193 const subscription = {
196- isFree : subscriptionData ?. plan === 'free' || ! subscriptionData ?. plan ,
197- isPro : subscriptionData ?. plan === 'pro' ,
198- isTeam : subscriptionData ?. plan === 'team' ,
199- isEnterprise : subscriptionData ?. plan === 'enterprise' ,
194+ isFree : subscriptionData ?. data ?. plan === 'free' || ! subscriptionData ?. data ?. plan ,
195+ isPro : subscriptionData ?. data ?. plan === 'pro' ,
196+ isTeam : subscriptionData ?. data ?. plan === 'team' ,
197+ isEnterprise : subscriptionData ?. data ?. plan === 'enterprise' ,
200198 isPaid :
201- subscriptionData ?. plan &&
202- [ 'pro' , 'team' , 'enterprise' ] . includes ( subscriptionData . plan ) &&
203- subscriptionData ?. status === 'active' ,
204- plan : subscriptionData ?. plan || 'free' ,
205- status : subscriptionData ?. status || 'inactive' ,
206- seats : subscriptionData ?. seats || 1 ,
199+ subscriptionData ?. data ?. plan &&
200+ [ 'pro' , 'team' , 'enterprise' ] . includes ( subscriptionData . data . plan ) &&
201+ subscriptionData ?. data ?. status === 'active' ,
202+ plan : subscriptionData ?. data ?. plan || 'free' ,
203+ status : subscriptionData ?. data ?. status || 'inactive' ,
204+ seats : subscriptionData ?. data ?. seats || 1 ,
207205 }
208206
209- // Extract usage data
207+ // Extract usage data from subscriptionData.data.usage (same source as panel usage indicator)
210208 const usage = {
211- current : usageResponse ?. usage ?. current || 0 ,
212- limit : usageResponse ?. usage ?. limit || 0 ,
213- percentUsed : usageResponse ?. usage ?. percentUsed || 0 ,
209+ current : subscriptionData ?. data ?. usage ?. current || 0 ,
210+ limit : subscriptionData ?. data ?. usage ?. limit || 0 ,
211+ percentUsed : subscriptionData ?. data ?. usage ?. percentUsed || 0 ,
214212 }
215213
214+ // Extract usage limit metadata from usageLimitResponse.data
216215 const usageLimitData = {
217- currentLimit : usageLimitResponse ?. usage ?. limit || 0 ,
218- minimumLimit : usageLimitResponse ?. usage ?. minimumLimit || ( subscription . isPro ? 20 : 40 ) ,
216+ currentLimit : usageLimitResponse ?. data ?. currentLimit || 0 ,
217+ minimumLimit : usageLimitResponse ?. data ?. minimumLimit || ( subscription . isPro ? 20 : 40 ) ,
219218 }
220219
221220 // Extract billing status
222- const billingStatus = subscriptionData ?. billingBlocked ? 'blocked' : 'ok'
221+ const billingStatus = subscriptionData ?. data ?. billingBlocked ? 'blocked' : 'ok'
223222
224223 // Extract workspace settings
225224 const billedAccountUserId = workspaceData ?. settings ?. workspace ?. billedAccountUserId ?? null
@@ -406,20 +405,18 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
406405 ? usage . current // placeholder; rightContent will render UsageLimit
407406 : usage . limit
408407 }
409- isBlocked = { Boolean ( subscriptionData ?. billingBlocked ) }
408+ isBlocked = { Boolean ( subscriptionData ?. data ?. billingBlocked ) }
410409 status = { billingStatus }
411410 percentUsed = {
412411 subscription . isEnterprise || subscription . isTeam
413412 ? organizationBillingData ?. totalUsageLimit &&
414413 organizationBillingData . totalUsageLimit > 0 &&
415414 organizationBillingData . totalCurrentUsage !== undefined
416- ? Math . round (
417- ( organizationBillingData . totalCurrentUsage /
418- organizationBillingData . totalUsageLimit ) *
419- 100
420- )
421- : Math . round ( usage . percentUsed )
422- : Math . round ( usage . percentUsed )
415+ ? ( organizationBillingData . totalCurrentUsage /
416+ organizationBillingData . totalUsageLimit ) *
417+ 100
418+ : usage . percentUsed
419+ : usage . percentUsed
423420 }
424421 onResolvePayment = { async ( ) => {
425422 try {
@@ -467,7 +464,7 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
467464 />
468465 ) : undefined
469466 }
470- progressValue = { Math . min ( Math . round ( usage . percentUsed ) , 100 ) }
467+ progressValue = { Math . min ( usage . percentUsed , 100 ) }
471468 />
472469 </ div >
473470
@@ -544,11 +541,11 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
544541 ) }
545542
546543 { /* Next Billing Date */ }
547- { subscription . isPaid && subscriptionData ?. periodEnd && (
544+ { subscription . isPaid && subscriptionData ?. data ?. periodEnd && (
548545 < div className = 'mt-4 flex items-center justify-between' >
549546 < span className = 'font-medium text-sm' > Next Billing Date</ span >
550547 < span className = 'text-muted-foreground text-sm' >
551- { new Date ( subscriptionData . periodEnd ) . toLocaleDateString ( ) }
548+ { new Date ( subscriptionData . data . periodEnd ) . toLocaleDateString ( ) }
552549 </ span >
553550 </ div >
554551 ) }
@@ -574,8 +571,8 @@ export function Subscription({ onOpenChange }: SubscriptionProps) {
574571 isPaid : subscription . isPaid ,
575572 } }
576573 subscriptionData = { {
577- periodEnd : subscriptionData ?. periodEnd || null ,
578- cancelAtPeriodEnd : subscriptionData ?. cancelAtPeriodEnd ,
574+ periodEnd : subscriptionData ?. data ?. periodEnd || null ,
575+ cancelAtPeriodEnd : subscriptionData ?. data ?. cancelAtPeriodEnd ,
579576 } }
580577 />
581578 </ div >
0 commit comments