Skip to content

Commit 5217155

Browse files
authored
fix(clerk-js): Add planPeriodStart to CommerceCheckout (#5893)
1 parent 0f5145e commit 5217155

5 files changed

Lines changed: 14 additions & 13 deletions

File tree

.changeset/twenty-monkeys-camp.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@clerk/clerk-js": patch
3+
"@clerk/types": patch
4+
---
5+
6+
Fix the "Plan starts at" date when a user downgrades from a paid plan to the free plan
7+

packages/clerk-js/src/core/resources/CommerceCheckout.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,7 @@ import type {
88
} from '@clerk/types';
99

1010
import { commerceTotalsFromJSON } from '../../utils';
11-
import {
12-
BaseResource,
13-
CommercePaymentSource,
14-
CommercePlan,
15-
CommerceSubscription,
16-
isClerkAPIResponseError,
17-
} from './internal';
11+
import { BaseResource, CommercePaymentSource, CommercePlan, isClerkAPIResponseError } from './internal';
1812

1913
export class CommerceCheckout extends BaseResource implements CommerceCheckoutResource {
2014
id!: string;
@@ -24,8 +18,8 @@ export class CommerceCheckout extends BaseResource implements CommerceCheckoutRe
2418
paymentSource?: CommercePaymentSource;
2519
plan!: CommercePlan;
2620
planPeriod!: CommerceSubscriptionPlanPeriod;
21+
planPeriodStart!: number | undefined;
2722
status!: string;
28-
subscription?: CommerceSubscription;
2923
totals!: CommerceCheckoutTotals;
3024
isImmediatePlanChange!: boolean;
3125

@@ -47,8 +41,8 @@ export class CommerceCheckout extends BaseResource implements CommerceCheckoutRe
4741
this.paymentSource = data.payment_source ? new CommercePaymentSource(data.payment_source) : undefined;
4842
this.plan = new CommercePlan(data.plan);
4943
this.planPeriod = data.plan_period;
44+
this.planPeriodStart = data.plan_period_start;
5045
this.status = data.status;
51-
this.subscription = data.subscription ? new CommerceSubscription(data.subscription) : undefined;
5246
this.totals = commerceTotalsFromJSON(data.totals);
5347
this.isImmediatePlanChange = data.is_immediate_plan_change;
5448
return this;

packages/clerk-js/src/ui/components/Checkout/CheckoutComplete.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,8 @@ export const CheckoutComplete = ({
261261
? `${capitalize(checkout.paymentSource.paymentMethod)}`
262262
: `${capitalize(checkout.paymentSource.cardType)}${checkout.paymentSource.last4}`
263263
: '–'
264-
: checkout.subscription?.periodStart
265-
? formatDate(new Date(checkout.subscription.periodStart))
264+
: checkout.planPeriodStart
265+
? formatDate(new Date(checkout.planPeriodStart))
266266
: '–'
267267
}
268268
/>

packages/types/src/commerce.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,9 @@ export interface CommerceCheckoutResource extends ClerkResource {
199199
paymentSource?: CommercePaymentSourceResource;
200200
plan: CommercePlanResource;
201201
planPeriod: CommerceSubscriptionPlanPeriod;
202+
planPeriodStart?: number;
202203
status: string;
203204
totals: CommerceCheckoutTotals;
204-
subscription?: CommerceSubscriptionResource;
205205
confirm: (params: ConfirmCheckoutParams) => Promise<CommerceCheckoutResource>;
206206
isImmediatePlanChange: boolean;
207207
}

packages/types/src/json.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,8 @@ export interface CommerceCheckoutJSON extends ClerkResourceJSON {
712712
payment_source?: CommercePaymentSourceJSON;
713713
plan: CommercePlanJSON;
714714
plan_period: CommerceSubscriptionPlanPeriod;
715+
plan_period_start?: number;
715716
status: string;
716-
subscription?: CommerceSubscriptionJSON;
717717
totals: CommerceCheckoutTotalsJSON;
718718
is_immediate_plan_change: boolean;
719719
}

0 commit comments

Comments
 (0)