@@ -9,8 +9,10 @@ import {
99 DialogHeader ,
1010 DialogTitle ,
1111} from '@/components/ui/dialog'
12- import { useSubscription } from '@/lib/auth-client'
12+ import { useSession , useSubscription } from '@/lib/auth-client'
1313import { createLogger } from '@/lib/logs/console-logger'
14+ import { useOrganizationStore } from '@/stores/organization'
15+ import { useSubscriptionStore } from '@/stores/subscription/store'
1416
1517const logger = createLogger ( 'CancelSubscription' )
1618
@@ -30,22 +32,40 @@ export function CancelSubscription({ subscription, subscriptionData }: CancelSub
3032 const [ isLoading , setIsLoading ] = useState ( false )
3133 const [ error , setError ] = useState < string | null > ( null )
3234
35+ const { data : session } = useSession ( )
3336 const betterAuthSubscription = useSubscription ( )
37+ const { activeOrganization } = useOrganizationStore ( )
38+ const { getSubscriptionStatus } = useSubscriptionStore ( )
3439
3540 // Don't show for free plans
3641 if ( ! subscription . isPaid ) {
3742 return null
3843 }
3944
4045 const handleCancel = async ( ) => {
46+ if ( ! session ?. user ?. id ) return
47+
4148 setIsLoading ( true )
4249 setError ( null )
4350
4451 try {
45- // Use Better Auth client-side cancel method
46- // This redirects to Stripe Billing Portal where user can cancel
47- const result = await betterAuthSubscription . cancel ?.( {
48- returnUrl : window . location . href , // Return to current page after cancellation
52+ const subscriptionStatus = getSubscriptionStatus ( )
53+ const activeOrgId = activeOrganization ?. id
54+
55+ let referenceId = session . user . id
56+ if ( subscriptionStatus . isTeam && activeOrgId ) {
57+ referenceId = activeOrgId
58+ }
59+
60+ logger . info ( 'Canceling subscription' , {
61+ referenceId,
62+ isTeam : subscriptionStatus . isTeam ,
63+ activeOrgId,
64+ } )
65+
66+ const result = await betterAuthSubscription . cancel ( {
67+ returnUrl : window . location . href ,
68+ referenceId,
4969 } )
5070
5171 if ( result && 'error' in result && result . error ) {
0 commit comments