11'use client' ;
22import { ClerkProvider as ReactClerkProvider } from '@clerk/clerk-react' ;
33import { useRouter } from 'next/navigation' ;
4- import nextPkg from 'next/package.json' ;
5- import React , { useEffect , useTransition } from 'react' ;
4+ import React , { lazy , Suspense , useEffect , useTransition } from 'react' ;
65
76import { useSafeLayoutEffect } from '../../client-boundary/hooks/useSafeLayoutEffect' ;
87import { ClerkNextOptionsProvider , useClerkNextOptions } from '../../client-boundary/NextOptionsContext' ;
98import type { NextClerkProviderProps } from '../../types' ;
109import { ClerkJSScript } from '../../utils/clerk-js-script' ;
1110import { mergeNextClerkPropsWithEnv } from '../../utils/mergeNextClerkPropsWithEnv' ;
11+ import { isNextWithUnstableServerActions } from '../../utils/sdk-versions' ;
1212import { invalidateCacheAction } from '../server-actions' ;
1313import { useAwaitablePush } from './useAwaitablePush' ;
1414import { useAwaitableReplace } from './useAwaitableReplace' ;
1515
16- const isNext13 = nextPkg . version . startsWith ( '13.' ) ;
17-
18- // const LazyAccountlessCreator = lazy(() =>
19- // import('./lazy-accountless-creator.js').then(m => ({ default: m.AccountlessCreateKeys })),
20- // );
16+ const LazyAccountlessCreator = lazy ( ( ) =>
17+ import ( './lazy-accountless-creator.js' ) . then ( m => ( { default : m . AccountlessCreateKeys } ) ) ,
18+ ) ;
2119
2220declare global {
2321 export interface Window {
@@ -30,7 +28,7 @@ declare global {
3028 }
3129}
3230
33- const __ClientClerkProvider = ( props : NextClerkProviderProps ) => {
31+ const NextClientClerkProvider = ( props : NextClerkProviderProps ) => {
3432 const { __unstable_invokeMiddlewareOnAuthStateChange = true , children } = props ;
3533 const router = useRouter ( ) ;
3634 const push = useAwaitablePush ( ) ;
@@ -108,18 +106,18 @@ const __ClientClerkProvider = (props: NextClerkProviderProps) => {
108106} ;
109107
110108export const ClientClerkProvider = ( props : NextClerkProviderProps ) => {
111- if (
112- mergeNextClerkPropsWithEnv ( {
113- ...props ,
114- } ) . publishableKey ||
115- isNext13
116- ) {
117- return < __ClientClerkProvider { ...props } /> ;
109+ const { children, ...rest } = props ;
110+ const safePk = mergeNextClerkPropsWithEnv ( rest ) . publishableKey ;
111+
112+ if ( safePk || isNextWithUnstableServerActions ) {
113+ return < NextClientClerkProvider { ...rest } > { children } </ NextClientClerkProvider > ;
118114 }
119115
120116 return (
121- // <AccountlessCreateKeys>
122- < __ClientClerkProvider { ...props } />
123- // </AccountlessCreateKeys>
117+ < Suspense >
118+ < LazyAccountlessCreator >
119+ < NextClientClerkProvider { ...rest } > { children } </ NextClientClerkProvider >
120+ </ LazyAccountlessCreator >
121+ </ Suspense >
124122 ) ;
125123} ;
0 commit comments