"emojibase-data": "15.3.2",
"file-saver": "2.0.5",
"focus-trap-react": "10.0.2",
- "folds": "2.2.0",
+ "folds": "2.3.0",
"html-dom-parser": "4.0.0",
"html-react-parser": "4.2.0",
"i18next": "23.12.2",
}
},
"node_modules/folds": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/folds/-/folds-2.2.0.tgz",
- "integrity": "sha512-uOfck5eWEIK11rhOAEdSoPIvMXwv+D1Go03pxSAKezWVb+uRoBdmE6LEqiLOF+ac4DGmZRMPvpdDsXCg7EVNIg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/folds/-/folds-2.3.0.tgz",
+ "integrity": "sha512-1KoM21jrg5daxvKrmSY0V04wa946KlNT0z6h017Rsnw2fdtNC6J0f34Ce5GF46Tzi00gZ/7SvCDXMzW/7e5s0w==",
"license": "Apache-2.0",
"peerDependencies": {
"@vanilla-extract/css": "1.9.2",
-import React, { useEffect } from 'react';
+import React from 'react';
import { Provider as JotaiProvider } from 'jotai';
+import { OverlayContainerProvider, PopOutContainerProvider, TooltipContainerProvider } from 'folds';
import { RouterProvider } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
const queryClient = new QueryClient();
-const useLastNodeToDetectReactPortalEntry = () => {
- useEffect(() => {
- const lastDiv = document.createElement('div');
- lastDiv.setAttribute('data-last-node', 'true');
- document.body.appendChild(lastDiv);
- }, []);
-};
-
function App() {
const screenSize = useScreenSize();
- useLastNodeToDetectReactPortalEntry();
+ const portalContainer = document.getElementById('portalContainer') ?? undefined;
return (
- <ScreenSizeProvider value={screenSize}>
- <FeatureCheck>
- <ClientConfigLoader
- fallback={() => <ConfigConfigLoading />}
- error={(err, retry, ignore) => (
- <ConfigConfigError error={err} retry={retry} ignore={ignore} />
- )}
- >
- {(clientConfig) => (
- <ClientConfigProvider value={clientConfig}>
- <QueryClientProvider client={queryClient}>
- <JotaiProvider>
- <RouterProvider router={createRouter(clientConfig, screenSize)} />
- </JotaiProvider>
- <ReactQueryDevtools initialIsOpen={false} />
- </QueryClientProvider>
- </ClientConfigProvider>
- )}
- </ClientConfigLoader>
- </FeatureCheck>
- </ScreenSizeProvider>
+ <TooltipContainerProvider value={portalContainer}>
+ <PopOutContainerProvider value={portalContainer}>
+ <OverlayContainerProvider value={portalContainer}>
+ <ScreenSizeProvider value={screenSize}>
+ <FeatureCheck>
+ <ClientConfigLoader
+ fallback={() => <ConfigConfigLoading />}
+ error={(err, retry, ignore) => (
+ <ConfigConfigError error={err} retry={retry} ignore={ignore} />
+ )}
+ >
+ {(clientConfig) => (
+ <ClientConfigProvider value={clientConfig}>
+ <QueryClientProvider client={queryClient}>
+ <JotaiProvider>
+ <RouterProvider router={createRouter(clientConfig, screenSize)} />
+ </JotaiProvider>
+ <ReactQueryDevtools initialIsOpen={false} />
+ </QueryClientProvider>
+ </ClientConfigProvider>
+ )}
+ </ClientConfigLoader>
+ </FeatureCheck>
+ </ScreenSizeProvider>
+ </OverlayContainerProvider>
+ </PopOutContainerProvider>
+ </TooltipContainerProvider>
);
}