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';
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 pageTitle = undefined,
21 displayMenu = true,
22 menuTitle = 'Caroster',
23 menuActions,
24 goBack = null,
25 } = props;
26
27 useGTM();
28
29 return (
30 <div className={className}>
31 <Helmet>
32 <title>{pageTitle || menuTitle}</title>
33 </Helmet>
34 {displayMenu && (menuTitle || menuActions) && (
35 <GenericToolbar
36 title={menuTitle}
37 actions={menuActions}
38 goBack={goBack}
39 />
40 )}
41 {children}
42 </div>
43 );
44};
45
46export default DefaultLayout;