@@ -3,8 +3,9 @@ import type { ClerkAPIError, ClerkRuntimeError } from '@clerk/types';
3
3
import { FloatingTree , useFloatingParentNodeId } from '@floating-ui/react' ;
4
4
import React from 'react' ;
5
5
6
+ import { useRouter } from '@/ui/router' ;
7
+
6
8
import { useLocalizations } from '../../customizables' ;
7
- import { useSafeState } from '../../hooks' ;
8
9
9
10
type Status = 'idle' | 'loading' | 'error' ;
10
11
type Metadata = string | undefined ;
@@ -18,12 +19,21 @@ const [CardStateCtx, _useCardState] = createContextAndHook<CardStateCtxValue>('C
18
19
19
20
export const CardStateProvider = ( props : React . PropsWithChildren < any > ) => {
20
21
const { translateError } = useLocalizations ( ) ;
22
+ const router = useRouter ( ) ;
21
23
22
- const [ state , setState ] = useSafeState < State > ( {
24
+ const [ state , setState ] = React . useState < State > ( ( ) => ( {
23
25
status : 'idle' ,
24
26
metadata : undefined ,
25
27
error : translateError ( window ?. Clerk ?. __internal_last_error || undefined ) ,
26
- } ) ;
28
+ } ) ) ;
29
+
30
+ React . useEffect ( ( ) => {
31
+ const error = window ?. Clerk ?. __internal_last_error ;
32
+
33
+ if ( error ) {
34
+ setState ( s => ( { ...s , error : translateError ( error ) } ) ) ;
35
+ }
36
+ } , [ translateError , setState , router . currentPath ] ) ;
27
37
28
38
const value = React . useMemo ( ( ) => ( { value : { state, setState } } ) , [ state , setState ] ) ;
29
39
return < CardStateCtx . Provider value = { value } > { props . children } </ CardStateCtx . Provider > ;
0 commit comments