@@ -8,6 +8,7 @@ import { Skeleton } from '@/components/ui'
88import { useSession } from '@/lib/auth/auth-client'
99import { useSubscriptionUpgrade } from '@/lib/billing/client/upgrade'
1010import { USAGE_THRESHOLDS } from '@/lib/billing/client/usage-visualization'
11+ import { getEffectiveSeats } from '@/lib/billing/subscriptions/utils'
1112import { cn } from '@/lib/core/utils/cn'
1213import { getBaseUrl } from '@/lib/core/utils/urls'
1314import { getUserRole } from '@/lib/workspaces/organization/utils'
@@ -191,7 +192,13 @@ export function Subscription() {
191192 const [ upgradeError , setUpgradeError ] = useState < 'pro' | 'team' | null > ( null )
192193 const usageLimitRef = useRef < UsageLimitRef | null > ( null )
193194
194- const isLoading = isSubscriptionLoading || isUsageLimitLoading || isWorkspaceLoading
195+ const isOrgPlan =
196+ subscriptionData ?. data ?. plan === 'team' || subscriptionData ?. data ?. plan === 'enterprise'
197+ const isLoading =
198+ isSubscriptionLoading ||
199+ isUsageLimitLoading ||
200+ isWorkspaceLoading ||
201+ ( isOrgPlan && isOrgBillingLoading )
195202
196203 const subscription = {
197204 isFree : subscriptionData ?. data ?. plan === 'free' || ! subscriptionData ?. data ?. plan ,
@@ -204,7 +211,7 @@ export function Subscription() {
204211 subscriptionData ?. data ?. status === 'active' ,
205212 plan : subscriptionData ?. data ?. plan || 'free' ,
206213 status : subscriptionData ?. data ?. status || 'inactive' ,
207- seats : organizationBillingData ?. totalSeats ?? 0 ,
214+ seats : getEffectiveSeats ( subscriptionData ?. data ) ,
208215 }
209216
210217 const usage = {
@@ -445,16 +452,10 @@ export function Subscription() {
445452 ? `${ subscription . seats } seats`
446453 : undefined
447454 }
448- current = {
449- subscription . isEnterprise || subscription . isTeam
450- ? ( organizationBillingData ?. totalCurrentUsage ?? usage . current )
451- : usage . current
452- }
455+ current = { usage . current }
453456 limit = {
454457 subscription . isEnterprise || subscription . isTeam
455- ? organizationBillingData ?. totalUsageLimit ||
456- organizationBillingData ?. minimumBillingAmount ||
457- usage . limit
458+ ? organizationBillingData ?. data ?. totalUsageLimit
458459 : ! subscription . isFree &&
459460 ( permissions . canEditUsageLimit || permissions . showTeamMemberView )
460461 ? usage . current // placeholder; rightContent will render UsageLimit
@@ -468,19 +469,31 @@ export function Subscription() {
468469 < UsageLimit
469470 ref = { usageLimitRef }
470471 currentLimit = {
471- subscription . isTeam && isTeamAdmin
472- ? organizationBillingData ?. totalUsageLimit || usage . limit
472+ ( subscription . isTeam || subscription . isEnterprise ) &&
473+ isTeamAdmin &&
474+ organizationBillingData ?. data
475+ ? organizationBillingData . data . totalUsageLimit
473476 : usageLimitData . currentLimit || usage . limit
474477 }
475478 currentUsage = { usage . current }
476479 canEdit = { permissions . canEditUsageLimit }
477480 minimumLimit = {
478- subscription . isTeam && isTeamAdmin
479- ? organizationBillingData ?. minimumBillingAmount || ( subscription . isPro ? 20 : 40 )
481+ ( subscription . isTeam || subscription . isEnterprise ) &&
482+ isTeamAdmin &&
483+ organizationBillingData ?. data
484+ ? organizationBillingData . data . minimumBillingAmount
480485 : usageLimitData . minimumLimit || ( subscription . isPro ? 20 : 40 )
481486 }
482- context = { subscription . isTeam && isTeamAdmin ? 'organization' : 'user' }
483- organizationId = { subscription . isTeam && isTeamAdmin ? activeOrgId : undefined }
487+ context = {
488+ ( subscription . isTeam || subscription . isEnterprise ) && isTeamAdmin
489+ ? 'organization'
490+ : 'user'
491+ }
492+ organizationId = {
493+ ( subscription . isTeam || subscription . isEnterprise ) && isTeamAdmin
494+ ? activeOrgId
495+ : undefined
496+ }
484497 onLimitUpdated = { ( ) => {
485498 logger . info ( 'Usage limit updated' )
486499 } }
0 commit comments