Skip to content
Snippets Groups Projects
layout.tsx 1.27 KiB
Newer Older
/**
 * Main site Layout
 */
import React from "react"
import Helmet from "react-helmet"
import { useStaticQuery, graphql } from "gatsby"
import SEO from "./seo"
import Header from "../components/Header"
import Footer from "../components/Footer"
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 = ({ children }: Props): JSX.Element => {
Tojo Andrianomentsoaniaina's avatar
Tojo Andrianomentsoaniaina committed
    const data = useStaticQuery(graphql`
        query {
            directus {
                site {
                    icon {
                        id
                        imageFile {
                            id
                            publicURL
                        }
                    }
    return (
        <>
            <Helmet>
                <link
                    rel="icon"
Tojo Andrianomentsoaniaina's avatar
Tojo Andrianomentsoaniaina committed
                    href={data.directus.site?.icon?.imageFile?.publicURL}
                    type="image/png"
                />
            </Helmet>
            <SEO />
            <Header />
            <div className="pt-0">{children}</div>
            <Footer />
        </>
    )
}
export default Layout