1- import { LoadingSpinner } from '@openops/components/ui' ;
2- import { Suspense , useEffect } from 'react' ;
1+ import { Suspense , useEffect , useState } from 'react' ;
32
3+ import { FullPageSpinner } from '@/app/common/components/full-page-spinner' ;
44import { flagsHooks } from '@/app/common/hooks/flags-hooks' ;
5- import { setupResponseInterceptor } from '@/app/interceptors' ;
5+ import {
6+ setupRequestInterceptor ,
7+ setupResponseInterceptor ,
8+ } from '@/app/interceptors' ;
69
710type InitialDataGuardProps = {
811 children : React . ReactNode ;
@@ -11,25 +14,26 @@ export const InitialDataGuard = ({
1114 children,
1215} : Readonly < InitialDataGuardProps > ) => {
1316 const { data : flags } = flagsHooks . useFlags ( ) ;
17+ const [ interceptorsReady , setInterceptorsReady ] = useState ( false ) ;
1418
1519 useEffect ( ( ) => {
1620 if ( ! flags ) {
1721 console . error ( 'Missing flags for response interceptor configuration' ) ;
22+ return ;
1823 }
24+ const isFederatedAuth = Boolean ( flags ?. FEDERATED_LOGIN_ENABLED ) ;
25+ setupRequestInterceptor ( {
26+ isFederatedAuth,
27+ } ) ;
1928 setupResponseInterceptor ( {
20- isFederatedAuth : Boolean ( flags ?. FEDERATED_LOGIN_ENABLED ) ,
29+ isFederatedAuth,
2130 } ) ;
31+ setInterceptorsReady ( true ) ;
2232 } , [ flags ] ) ;
2333
24- return (
25- < Suspense
26- fallback = {
27- < div className = "bg-background flex h-screen w-screen items-center justify-center " >
28- < LoadingSpinner size = { 50 } > </ LoadingSpinner >
29- </ div >
30- }
31- >
32- { children }
33- </ Suspense >
34- ) ;
34+ if ( ! interceptorsReady ) {
35+ return < FullPageSpinner /> ;
36+ }
37+
38+ return < Suspense fallback = { < FullPageSpinner /> } > { children } </ Suspense > ;
3539} ;
0 commit comments