mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import React from "react";
|
|
import { Grid, Layout as AntdLayout } from "antd";
|
|
|
|
import { ThemedSider as DefaultSider } from "./sider";
|
|
import { ThemedHeader as DefaultHeader } from "./header";
|
|
import { RefineThemedLayoutProps } from "./types";
|
|
|
|
/**
|
|
* @deprecated It is recommended to use the improved `ThemedLayoutV2`. Review migration guidelines. https://refine.dev/docs/api-reference/antd/components/antd-themed-layout/#migrate-themedlayout-to-themedlayoutv2
|
|
*/
|
|
export const ThemedLayout: React.FC<RefineThemedLayoutProps> = ({
|
|
children,
|
|
Header,
|
|
Sider,
|
|
Title,
|
|
Footer,
|
|
OffLayoutArea,
|
|
}) => {
|
|
const breakpoint = Grid.useBreakpoint();
|
|
const SiderToRender = Sider ?? DefaultSider;
|
|
const HeaderToRender = Header ?? DefaultHeader;
|
|
const isSmall = typeof breakpoint.sm === "undefined" ? true : breakpoint.sm;
|
|
|
|
return (
|
|
<AntdLayout style={{ minHeight: "100vh" }}>
|
|
<SiderToRender Title={Title} />
|
|
<AntdLayout>
|
|
<HeaderToRender />
|
|
<AntdLayout.Content>
|
|
<div
|
|
style={{
|
|
minHeight: 360,
|
|
padding: isSmall ? 24 : 12,
|
|
}}
|
|
>
|
|
{children}
|
|
</div>
|
|
{OffLayoutArea && <OffLayoutArea />}
|
|
</AntdLayout.Content>
|
|
{Footer && <Footer />}
|
|
</AntdLayout>
|
|
</AntdLayout>
|
|
);
|
|
};
|