@@ -10,12 +10,11 @@ import { LocationAdapterProvider } from './next-architecture/ui/LocationAdapterP
1010import MetricsAdapterProvider from './next-architecture/ui/MetricsAdapterProvider' ;
1111import ZenkoUI from './ZenkoUI' ;
1212
13+ import { ShellHooksProvider , useBasenameRelativeNavigate , useCurrentApp } from '@scality/module-federation' ;
1314import React , { useEffect , useMemo } from 'react' ;
15+ import { ArtescaLibraryProvider } from './next-architecture/ui/ArtescaLibraryProvider' ;
1416import { XCoreLibraryProvider } from './next-architecture/ui/XCoreLibraryProvider' ;
1517import zenkoUIReducer from './reducers' ;
16- import { useBasenameRelativeNavigate } from '@scality/module-federation' ;
17- import { ShellHooksProvider } from '@scality/module-federation' ;
18- import { ArtescaLibraryProvider } from './next-architecture/ui/ArtescaLibraryProvider' ;
1918
2019//@ts -expect-error fix this when you are working on it
2120const composeEnhancers = window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose ;
@@ -51,6 +50,18 @@ const HistoryPushEventListener = () => {
5150 return < > </ > ;
5251} ;
5352
53+ // This component prevent the app to be rendered if the current app is not a zenko-ui
54+ // This happens when the app is in transition to another app
55+ const ZenkoUIGuard = ( { children } : { children : React . ReactNode } ) => {
56+ const { kind } = useCurrentApp ( ) ;
57+
58+ if ( kind !== 'zenko-ui' ) {
59+ return null ;
60+ }
61+ return < > { children } </ > ;
62+ } ;
63+
64+
5465const FederableApp = ( props ) => {
5566 return (
5667 < ShellHooksProvider
@@ -61,18 +72,20 @@ const FederableApp = (props) => {
6172 < ArtescaLibraryProvider >
6273 < InternalRouter >
6374 < HistoryPushEventListener />
64- < AccountsLocationsEndpointsAdapterProvider >
65- < LocationAdapterProvider >
66- < AccessibleAccountsAdapterProvider >
67- < MetricsAdapterProvider >
68- < ToastProvider >
69- < ZenkoUI />
70- </ ToastProvider >
71- < ReactQueryDevtools initialIsOpen = { false } />
72- </ MetricsAdapterProvider >
73- </ AccessibleAccountsAdapterProvider >
74- </ LocationAdapterProvider >
75- </ AccountsLocationsEndpointsAdapterProvider >
75+ < ZenkoUIGuard >
76+ < AccountsLocationsEndpointsAdapterProvider >
77+ < LocationAdapterProvider >
78+ < AccessibleAccountsAdapterProvider >
79+ < MetricsAdapterProvider >
80+ < ToastProvider >
81+ < ZenkoUI />
82+ </ ToastProvider >
83+ < ReactQueryDevtools initialIsOpen = { false } />
84+ </ MetricsAdapterProvider >
85+ </ AccessibleAccountsAdapterProvider >
86+ </ LocationAdapterProvider >
87+ </ AccountsLocationsEndpointsAdapterProvider >
88+ </ ZenkoUIGuard >
7689 </ InternalRouter >
7790 </ ArtescaLibraryProvider >
7891 </ XCoreLibraryProvider >
0 commit comments