Skip to content

Commit 7e174f2

Browse files
Merge pull request #659 from simstudioai/fix/cancel-sub
fix(cancel-subscription): cancel subscription needs reference id
2 parents e83745f + af0dcf7 commit 7e174f2

File tree

1 file changed

+25
-5
lines changed
  • apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/components

1 file changed

+25
-5
lines changed

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/components/cancel-subscription.tsx

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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'
1313
import { createLogger } from '@/lib/logs/console-logger'
14+
import { useOrganizationStore } from '@/stores/organization'
15+
import { useSubscriptionStore } from '@/stores/subscription/store'
1416

1517
const 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

Comments
 (0)