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