33 createContext ,
44 useReducer ,
55 useContext ,
6- useRef ,
6+ useMemo ,
77 useEffect ,
88 ReactNode ,
99} from 'react' ;
@@ -134,24 +134,33 @@ export const AuthorizerProvider: FC<{
134134
135135 let intervalRef : any = null ;
136136
137- const authorizerRef = useRef (
138- new Authorizer ( {
139- authorizerURL : state . config . authorizerURL ,
140- redirectURL : hasWindow ( )
141- ? state . config . redirectURL || window . location . origin
142- : state . config . redirectURL || '/' ,
143- clientID : state . config . client_id ,
144- } )
137+ const redirectURLForSdk = hasWindow ( )
138+ ? state . config . redirectURL || window . location . origin
139+ : state . config . redirectURL || '/' ;
140+
141+ const authorizer = useMemo (
142+ ( ) =>
143+ new Authorizer ( {
144+ authorizerURL : state . config . authorizerURL ,
145+ redirectURL : redirectURLForSdk ,
146+ clientID : state . config . client_id ,
147+ } ) ,
148+ [
149+ state . config . authorizerURL ,
150+ state . config . redirectURL ,
151+ state . config . client_id ,
152+ redirectURLForSdk ,
153+ ]
145154 ) ;
146155
147156 const getToken = async ( ) => {
148157 const { data : metaRes , errors : metaResErrors } =
149- await authorizerRef . current . getMetaData ( ) ;
158+ await authorizer . getMetaData ( ) ;
150159 try {
151160 if ( metaResErrors && metaResErrors . length ) {
152161 throw new Error ( metaResErrors [ 0 ] . message ) ;
153162 }
154- const { data : res , errors } = await authorizerRef . current . getSession ( ) ;
163+ const { data : res , errors } = await authorizer . getSession ( ) ;
155164 if ( errors && errors . length ) {
156165 throw new Error ( errors [ 0 ] . message ) ;
157166 }
@@ -285,7 +294,7 @@ export const AuthorizerProvider: FC<{
285294 loading : true ,
286295 } ,
287296 } ) ;
288- await authorizerRef . current . logout ( ) ;
297+ await authorizer . logout ( ) ;
289298 const loggedOutState = {
290299 user : null ,
291300 token : null ,
@@ -306,7 +315,7 @@ export const AuthorizerProvider: FC<{
306315 setLoading,
307316 setToken : handleTokenChange ,
308317 setAuthData : setAuthData ,
309- authorizerRef : authorizerRef . current ,
318+ authorizerRef : authorizer ,
310319 logout,
311320 } }
312321 >
0 commit comments