Skip to content

Commit 29462b4

Browse files
authored
refactor(repo): Rename __experimental_checkoutContinueUrl to checkoutContinueUrl (#5826)
1 parent a7c45b3 commit 29462b4

File tree

15 files changed

+49
-37
lines changed

15 files changed

+49
-37
lines changed

.changeset/tidy-pots-sin.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
"@clerk/clerk-js": patch
3+
"@clerk/nextjs": patch
4+
"@clerk/react-router": patch
5+
"@clerk/clerk-react": patch
6+
"@clerk/remix": patch
7+
"@clerk/tanstack-react-start": patch
8+
"@clerk/types": patch
9+
---
10+
11+
Rename __experimental_checkoutContinueUrl to checkoutContinueUrl

packages/clerk-js/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"clean": "rimraf ./dist",
4343
"dev": "rspack serve --config rspack.config.js",
4444
"dev:headless": "rspack serve --config rspack.config.js --env variant=\"clerk.headless.browser\"",
45+
"dev:origin": "rspack serve --config rspack.config.js --env devOrigin=http://localhost:4000",
4546
"dev:sandbox": "rspack serve --config rspack.config.js --env devOrigin=http://localhost:4000 --env sandbox=1",
4647
"lint": "eslint src",
4748
"lint:attw": "attw --pack . --profile node16 --ignore-rules named-exports",

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ const defaultOptions: ClerkOptions = {
175175
signInForceRedirectUrl: undefined,
176176
signUpForceRedirectUrl: undefined,
177177
treatPendingAsSignedOut: true,
178-
__experimental_checkoutContinueUrl: undefined,
178+
checkoutContinueUrl: undefined,
179179
};
180180

181181
export class Clerk implements ClerkInterface {
@@ -1378,12 +1378,12 @@ export class Clerk implements ClerkInterface {
13781378
return this.buildUrlWithAuth(this.#options.afterSignOutUrl);
13791379
}
13801380

1381-
public __experimental_buildCheckoutContinueUrl(): string {
1382-
if (!this.#options.__experimental_checkoutContinueUrl) {
1381+
public buildCheckoutContinueUrl(): string {
1382+
if (!this.#options.checkoutContinueUrl) {
13831383
return this.buildAfterSignInUrl();
13841384
}
13851385

1386-
return this.#options.__experimental_checkoutContinueUrl;
1386+
return this.#options.checkoutContinueUrl;
13871387
}
13881388

13891389
public buildWaitlistUrl(options?: { initialValues?: Record<string, string> }): string {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ export const CheckoutComplete = ({
1919
}) => {
2020
const router = useRouter();
2121
const { setIsOpen } = useDrawerContext();
22-
const { __experimental_checkoutContinueUrl } = useCheckoutContext();
22+
const { checkoutContinueUrl } = useCheckoutContext();
2323

2424
const handleClose = () => {
25-
if (__experimental_checkoutContinueUrl) {
26-
void router.navigate(__experimental_checkoutContinueUrl);
25+
if (checkoutContinueUrl) {
26+
void router.navigate(checkoutContinueUrl);
2727
}
2828
if (setIsOpen) {
2929
setIsOpen(false);
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { useClerk } from '@clerk/shared/react';
22
import { createContext, useContext, useMemo } from 'react';
33

4+
import { isAllowedRedirect } from '../../../utils';
45
import type { __experimental_CheckoutCtx } from '../../types';
6+
import { useOptions } from '../OptionsContext';
7+
58
export const __experimental_CheckoutContext = createContext<__experimental_CheckoutCtx | null>(null);
69

710
export const useCheckoutContext = () => {
811
const context = useContext(__experimental_CheckoutContext);
912
const clerk = useClerk();
13+
const options = useOptions();
1014

1115
if (!context || context.componentName !== 'Checkout') {
1216
throw new Error('Clerk: useCheckoutContext called outside Checkout.');
@@ -19,18 +23,15 @@ export const useCheckoutContext = () => {
1923
return undefined;
2024
}
2125

22-
if (context.__experimental_checkoutContinueUrl) {
23-
return context.__experimental_checkoutContinueUrl;
24-
}
25-
26-
return clerk.__experimental_buildCheckoutContinueUrl?.();
27-
}, [context.portalRoot, context.__experimental_checkoutContinueUrl, clerk]);
26+
const url = context.checkoutContinueUrl || clerk.buildCheckoutContinueUrl?.();
27+
return isAllowedRedirect(options?.allowedRedirectOrigins, window.location.origin)(url) ? url : undefined;
28+
}, [context.portalRoot, context.checkoutContinueUrl, clerk, options?.allowedRedirectOrigins]);
2829

2930
const { componentName, ...ctx } = context;
3031

3132
return {
3233
...ctx,
3334
componentName,
34-
__experimental_checkoutContinueUrl: checkoutContinueUrl,
35+
checkoutContinueUrl,
3536
};
3637
};

packages/clerk-js/src/ui/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type {
2-
__experimental_CheckoutContinueUrl,
32
__experimental_CheckoutProps,
43
__experimental_CommerceInvoiceResource,
54
__experimental_CommercePlanResource,
65
__experimental_CommerceSubscriptionResource,
76
__experimental_PlanDetailsProps,
87
__experimental_PricingTableProps,
98
__internal_UserVerificationProps,
9+
CheckoutContinueUrl,
1010
CreateOrganizationProps,
1111
GoogleOneTapProps,
1212
OrganizationListProps,
@@ -119,7 +119,7 @@ export type __experimental_PricingTableCtx = __experimental_PricingTableProps &
119119

120120
export type __experimental_CheckoutCtx = __experimental_CheckoutProps & {
121121
componentName: 'Checkout';
122-
} & __experimental_CheckoutContinueUrl;
122+
} & CheckoutContinueUrl;
123123

124124
export type __experimental_PaymentSourcesCtx = {
125125
componentName: 'PaymentSources';

packages/nextjs/src/utils/mergeNextClerkPropsWithEnv.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ export const mergeNextClerkPropsWithEnv = (props: Omit<NextClerkProviderProps, '
2525
props.signUpFallbackRedirectUrl || process.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL || '',
2626
afterSignInUrl: props.afterSignInUrl || process.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL || '',
2727
afterSignUpUrl: props.afterSignUpUrl || process.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL || '',
28-
__experimental_checkoutContinueUrl:
29-
props.__experimental_checkoutContinueUrl || process.env.NEXT_PUBLIC_CLERK_CHECKOUT_CONTINUE_URL || '',
28+
checkoutContinueUrl: props.checkoutContinueUrl || process.env.NEXT_PUBLIC_CLERK_CHECKOUT_CONTINUE_URL || '',
3029
telemetry: props.telemetry ?? {
3130
disabled: isTruthy(process.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),
3231
debug: isTruthy(process.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG),

packages/react-router/src/utils/env.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ export const getPublicEnvVariables = (context: AppLoadContext | undefined) => {
2525
signUpFallbackRedirectUrl: getValue('CLERK_SIGN_UP_FALLBACK_REDIRECT_URL'),
2626
afterSignInUrl: getValue('CLERK_AFTER_SIGN_IN_URL'),
2727
afterSignUpUrl: getValue('CLERK_AFTER_SIGN_UP_URL'),
28-
__experimental_checkoutContinueUrl: getValue('CLERK_CHECKOUT_CONTINUE_URL'),
28+
checkoutContinueUrl: getValue('CLERK_CHECKOUT_CONTINUE_URL'),
2929
};
3030
};

packages/react/src/isomorphicClerk.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,12 +323,12 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk {
323323
}
324324
};
325325

326-
__experimental_buildCheckoutContinueUrl = (): string | void => {
327-
const callback = () => this.clerkjs?.__experimental_buildCheckoutContinueUrl() || '';
326+
buildCheckoutContinueUrl = (): string | void => {
327+
const callback = () => this.clerkjs?.buildCheckoutContinueUrl() || '';
328328
if (this.clerkjs && this.loaded) {
329329
return callback();
330330
} else {
331-
this.premountMethodCalls.set('__experimental_buildCheckoutContinueUrl', callback);
331+
this.premountMethodCalls.set('buildCheckoutContinueUrl', callback);
332332
}
333333
};
334334

packages/remix/src/ssr/loadOptions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ export const loadOptions = (args: LoaderFunctionArgs, overrides: RootAuthLoaderO
4545
overrides.signUpFallbackRedirectUrl || getEnvVariable('CLERK_SIGN_UP_FALLBACK_REDIRECT_URL', context) || '';
4646
const afterSignInUrl = overrides.afterSignInUrl || getEnvVariable('CLERK_AFTER_SIGN_IN_URL', context) || '';
4747
const afterSignUpUrl = overrides.afterSignUpUrl || getEnvVariable('CLERK_AFTER_SIGN_UP_URL', context) || '';
48-
const __experimental_checkoutContinueUrl =
49-
overrides.__experimental_checkoutContinueUrl || getEnvVariable('CLERK_CHECKOUT_CONTINUE_URL', context) || '';
48+
const checkoutContinueUrl =
49+
overrides.checkoutContinueUrl || getEnvVariable('CLERK_CHECKOUT_CONTINUE_URL', context) || '';
5050

5151
let proxyUrl;
5252
if (!!relativeOrAbsoluteProxyUrl && isProxyUrlRelative(relativeOrAbsoluteProxyUrl)) {
@@ -83,6 +83,6 @@ export const loadOptions = (args: LoaderFunctionArgs, overrides: RootAuthLoaderO
8383
signUpForceRedirectUrl,
8484
signInFallbackRedirectUrl,
8585
signUpFallbackRedirectUrl,
86-
__experimental_checkoutContinueUrl,
86+
checkoutContinueUrl,
8787
};
8888
};

0 commit comments

Comments
 (0)