@@ -10,6 +10,12 @@ import AppHeader from './header';
10
10
import Body from './main-body' ;
11
11
import './layout.scss' ;
12
12
13
+ function hasAllKeys ( obj1 , obj2 ) {
14
+ const keys1 = Object . keys ( obj1 ) ;
15
+ const keys2 = new Set ( Object . keys ( obj2 ) ) ;
16
+ return keys1 . every ( key => keys2 . has ( key ) ) ;
17
+ }
18
+
13
19
const Layout = ( ) => {
14
20
const { isDesktop } = useDevice ( ) ;
15
21
@@ -18,20 +24,21 @@ const Layout = () => {
18
24
const isCallbackPage = window . location . pathname === '/callback' ;
19
25
const isLoggedInCookie = Cookies . get ( 'logged_state' ) === 'true' ;
20
26
const isEndpointPage = window . location . pathname . includes ( 'endpoint' ) ;
21
- const clientAccounts = JSON . parse ( localStorage . getItem ( 'accountsList' ) ?? '{}' ) ;
22
27
const checkClientAccount = JSON . parse ( localStorage . getItem ( 'clientAccounts' ) ?? '{}' ) ;
23
28
const checkAccountList = JSON . parse ( localStorage . getItem ( 'accountList' ) ?? '{}' ) ;
24
- const accountLengthsEqual = Object . keys ( clientAccounts ) . length === Object . keys ( checkClientAccount ) . length ;
29
+ const cookiesAccount = JSON . parse ( Cookies . get ( 'client.accounts' ) ?? '{}' ) ;
30
+ const isAccountPresent = hasAllKeys ( checkClientAccount , cookiesAccount ) ;
31
+
32
+ console . log ( 'clientAccounts' , { checkClientAccount, checkAccountList, isAccountPresent } ) ;
25
33
26
- console . log ( 'clientAccounts' , { checkClientAccount, checkAccountList, accountLengthsEqual } ) ;
27
34
useEffect ( ( ) => {
28
- if ( isLoggedInCookie && isOAuth2Enabled && ! isEndpointPage && ! isCallbackPage && ! accountLengthsEqual ) {
35
+ if ( isLoggedInCookie && isOAuth2Enabled && ! isEndpointPage && ! isCallbackPage && ! isAccountPresent ) {
29
36
console . log ( 'requestOidcAuthentication' ) ;
30
37
requestOidcAuthentication ( {
31
38
redirectCallbackUri : `${ window . location . origin } /callback` ,
32
39
} ) ;
33
40
}
34
- } , [ isLoggedInCookie , isOAuth2Enabled , isEndpointPage , isCallbackPage , accountLengthsEqual ] ) ;
41
+ } , [ isLoggedInCookie , isOAuth2Enabled , isEndpointPage , isCallbackPage , isAccountPresent ] ) ;
35
42
36
43
return (
37
44
< div className = { clsx ( 'layout' , { responsive : isDesktop } ) } >
0 commit comments