frontend/layouts/Default.tsx (view raw)
1import {ReactNode} from 'react';
2import {Helmet} from 'react-helmet';
3import GenericMenu from '../containers/GenericMenu';
4import useGTM from '../hooks/useGTM';
5
6interface Props {
7 children: ReactNode;
8 className?: string;
9 menuTitle?: string;
10 menuActions?: any;
11 pageTitle?: string;
12 displayMenu?: boolean;
13 goBack?: () => void;
14}
15
16const DefaultLayout = (props: Props) => {
17 const {
18 children,
19 className,
20 menuTitle = 'Caroster',
21 menuActions,
22 pageTitle = undefined,
23 displayMenu = true,
24 goBack = () => {},
25 } = props;
26
27 useGTM();
28
29 return (
30 <>
31 <Helmet>
32 <title>{pageTitle || menuTitle}</title>
33 </Helmet>
34 {displayMenu && (menuTitle || menuActions) && (
35 <GenericMenu title={menuTitle} actions={menuActions} goBack={goBack} />
36 )}
37 <div className={className}>{children}</div>
38 </>
39 );
40};
41
42export default DefaultLayout;