From 92da47a6400835e4709d0af292f1be96cf54c9d0 Mon Sep 17 00:00:00 2001 From: panteliselef Date: Tue, 5 Aug 2025 15:00:55 +0300 Subject: [PATCH 1/2] chore(shared): Improve `useCheckout` error messages on mount --- .changeset/rare-laws-stop.md | 5 +++++ packages/shared/src/react/hooks/useCheckout.ts | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .changeset/rare-laws-stop.md diff --git a/.changeset/rare-laws-stop.md b/.changeset/rare-laws-stop.md new file mode 100644 index 00000000000..3233a1342dd --- /dev/null +++ b/.changeset/rare-laws-stop.md @@ -0,0 +1,5 @@ +--- +'@clerk/shared': patch +--- + +Improve `useCheckout` error messages on mount. diff --git a/packages/shared/src/react/hooks/useCheckout.ts b/packages/shared/src/react/hooks/useCheckout.ts index 64bd15b1f38..a350cfbeb0b 100644 --- a/packages/shared/src/react/hooks/useCheckout.ts +++ b/packages/shared/src/react/hooks/useCheckout.ts @@ -53,14 +53,18 @@ export const useCheckout = (options?: Params): __experimental_UseCheckoutReturn const clerk = useClerk(); const { organization } = useOrganization(); - const { user } = useUser(); + const { isLoaded, user } = useUser(); + + if (!isLoaded) { + throw new Error('Clerk: Ensure that `useCheckout` is inside a component wrapped with ``.'); + } if (!user) { - throw new Error('Clerk: User is not authenticated'); + throw new Error('Clerk: Ensure that `useCheckout` is inside a component wrapped with ``.'); } if (forOrganization === 'organization' && !organization) { - throw new Error('Clerk: Use `setActive` to set the organization'); + throw new Error('Clerk: Wrap your flow with a check for an active organization'); } const manager = useMemo( @@ -89,7 +93,6 @@ export const useCheckout = (options?: Params): __experimental_UseCheckoutReturn }; } const { - // eslint-disable-next-line @typescript-eslint/unbound-method reload, confirm, pathRoot, From 0796313ac30d1d513593613736ad85919952d203 Mon Sep 17 00:00:00 2001 From: panteliselef Date: Tue, 5 Aug 2025 19:56:33 +0300 Subject: [PATCH 2/2] suppress --- packages/shared/src/react/hooks/useCheckout.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/shared/src/react/hooks/useCheckout.ts b/packages/shared/src/react/hooks/useCheckout.ts index a350cfbeb0b..611ac309551 100644 --- a/packages/shared/src/react/hooks/useCheckout.ts +++ b/packages/shared/src/react/hooks/useCheckout.ts @@ -93,6 +93,7 @@ export const useCheckout = (options?: Params): __experimental_UseCheckoutReturn }; } const { + // eslint-disable-next-line @typescript-eslint/unbound-method reload, confirm, pathRoot,