-
Notifications
You must be signed in to change notification settings - Fork 10
/
App.tsx
48 lines (43 loc) · 1.31 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { CreateStrategyCTAMobile } from 'components/strategies/create/CreateStrategyCTA';
import { useEffect } from 'react';
import { NotificationAlerts } from 'libs/notifications';
import { ModalProvider } from 'libs/modals';
import { useCarbonInit } from 'hooks/useCarbonInit';
import { MainMenu, MobileMenu } from 'components/core/menu';
import { MainContent } from 'components/core/MainContent';
import { useStore } from 'store';
import { Toaster } from 'components/common/Toaster/Toaster';
import { Footer } from 'components/common/Footer/Footer';
let didInit = false;
export const App = () => {
const { init } = useCarbonInit();
const { setInnerHeight } = useStore();
useEffect(() => {
if (!didInit) {
didInit = true;
void init();
}
}, [init]);
useEffect(() => {
window.addEventListener('resize', (e) => {
// @ts-ignore
const h = e.target?.innerHeight || 0;
setInnerHeight(h);
});
return () => window.removeEventListener('resize', () => {});
}, [setInnerHeight]);
return (
<>
<NotificationAlerts />
<MainMenu />
<main className="mb-16 mt-80 flex w-full flex-grow flex-col">
<MainContent />
</main>
<Footer />
<MobileMenu />
<ModalProvider />
<Toaster />
<CreateStrategyCTAMobile />
</>
);
};