Newer
Older
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
/**
* Main site Layout
*/
import React from "react";
import Helmet from "react-helmet";
import { useStaticQuery, graphql, PageProps } from "gatsby";
import Footer from "./footer";
import Header from "./header";
import SEO from "./seo";
interface Props {
children: React.ReactNode;
UserMenu?: React.ReactNode;
}
/**
* Default Layout with Header (Helmet & SEO) and Footer
* @param {Props} props - Page content
* @returns {JSX.Element} The complete page
*/
const Layout = ({ UserMenu, children }: Props): JSX.Element => {
const query = useStaticQuery(graphql`
query LayoutQuery {
site {
siteMetadata {
icon
}
}
}
`);
return (
<>
<Helmet>
<link rel="icon" href={query.site.siteMetadata.icon} type="image/png" />
</Helmet>
<SEO />
<Header UserMenu={UserMenu}></Header>
<div className="pt-16">{children}</div>
<Footer />
</>
);
};
export default Layout;