Files
openpanel/packages/mantine/src/components/themedLayoutV2/index.tsx
Stefan Pejcic 8496a83edb fork refine
2024-02-05 10:23:04 +01:00

50 lines
1.5 KiB
TypeScript

import React from "react";
import { Box } from "@mantine/core";
import { RefineThemedLayoutV2Props } from "./types";
import { ThemedSiderV2 as DefaultSider } from "./sider";
import { ThemedHeaderV2 as DefaultHeader } from "./header";
import { ThemedLayoutContextProvider } from "../../contexts";
export const ThemedLayoutV2: React.FC<RefineThemedLayoutV2Props> = ({
Sider,
Header,
Title,
Footer,
OffLayoutArea,
initialSiderCollapsed,
children,
}) => {
const SiderToRender = Sider ?? DefaultSider;
const HeaderToRender = Header ?? DefaultHeader;
return (
<ThemedLayoutContextProvider
initialSiderCollapsed={initialSiderCollapsed}
>
<Box sx={{ display: "flex" }}>
<SiderToRender Title={Title} />
<Box
sx={{
display: "flex",
flexDirection: "column",
flex: 1,
}}
>
<HeaderToRender />
<Box
component="main"
sx={(theme) => ({
padding: theme.spacing.sm,
})}
>
{children}
</Box>
{Footer && <Footer />}
</Box>
{OffLayoutArea && <OffLayoutArea />}
</Box>
</ThemedLayoutContextProvider>
);
};