Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 47 48 49 | 4x 4x 6x 6x 6x 4x 4x 2x 6x 6x | import React, { FC, ReactNode, useEffect, useState } from 'react';
import { useStaticQuery, graphql } from 'gatsby';
import { Header } from './Header';
import { Footer } from './Footer';
import { InfoModal } from './InfoModal';
import { getCookie, setCookie } from '../../helpers';
const styles = require('./Layout.module.css');
export const Layout: FC<{
before?: ReactNode;
classes?: string;
}> = ({ before, classes, children }) => {
const data = useStaticQuery(
graphql`
query {
site {
siteMetadata {
title
}
}
}
`
)
const [showInfoModal, setShowInfoModal] = useState(false);
useEffect(() => {
const infoShown = getCookie('ks-info-shown') ?? false;
if (!infoShown) {
setTimeout(() => {
setShowInfoModal(true);
}, 2000);
}
}, []);
const onCloseHandler = () => {
setShowInfoModal(false);
setCookie('ks-info-shown', '1', 60 * 24 * 36500);
};
return (
<div className={`${styles.Layout}`}>
<Header />
{before}
<main className={`${styles.LayoutContent} ${classes ? classes : ''}`}>{children}</main>
<Footer />
<InfoModal isOpen={showInfoModal} onClose={onCloseHandler} />
</div>
)
} |