link-stack/apps/leafcutter/components/Layout.tsx

74 lines
2 KiB
TypeScript
Raw Normal View History

2023-05-24 20:27:57 +00:00
import { FC, PropsWithChildren } from "react";
2023-05-25 12:37:14 +00:00
import getConfig from "next/config";
2023-02-13 13:46:56 +00:00
import { Grid, Container } from "@mui/material";
import CookieConsent from "react-cookie-consent";
import { useCookies } from "react-cookie";
import { TopNav } from "./TopNav";
import { Sidebar } from "./Sidebar";
import { GettingStartedDialog } from "./GettingStartedDialog";
import { useAppContext } from "./AppProvider";
// import { Footer } from "./Footer";
2023-06-20 07:49:52 +00:00
type LayoutProps = PropsWithChildren<{
embedded?: boolean;
}>;
export const Layout: FC<LayoutProps> = ({
embedded = false,
children,
}: any) => {
2023-02-13 13:46:56 +00:00
const [cookies, setCookie] = useCookies(["cookieConsent"]);
const consentGranted = cookies.cookieConsent === "true";
const {
colors: {
white,
almostBlack,
leafcutterElectricBlue,
cdrLinkOrange,
helpYellow,
},
} = useAppContext();
return (
<>
<Grid container direction="column">
2023-05-25 12:37:14 +00:00
{!embedded && (
<Grid item>
<TopNav />
</Grid>
)}
{!embedded && <Sidebar open />}
<Grid
item
sx={{ mt: embedded ? 0 : "100px", ml: embedded ? 0 : "310px" }}
>
2023-02-13 13:46:56 +00:00
<Container sx={{ padding: 2 }}>{children}</Container>
</Grid>
</Grid>
{!consentGranted ? (
<CookieConsent
style={{
zIndex: 1500,
backgroundColor: helpYellow,
color: almostBlack,
borderTop: `1px solid ${leafcutterElectricBlue}`,
}}
onAccept={() => setCookie("cookieConsent", "true", { path: "/" })}
buttonStyle={{
borderRadius: 500,
backgroundColor: cdrLinkOrange,
color: white,
textTransform: "uppercase",
padding: "10px 20px",
fontWeight: "bold",
fontSize: 14,
}}
>
Leafcutter uses cookies for core funtionality.
</CookieConsent>
) : null}
<GettingStartedDialog />
</>
);
};