mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import { FC, ReactNode } from "react";
|
|
import { observer } from "mobx-react-lite";
|
|
// components
|
|
import { CommandPalette } from "@/components/command-palette";
|
|
import { SidebarHamburgerToggle } from "@/components/core/sidebar";
|
|
// layouts
|
|
import { WorkspaceAuthWrapper, ProjectAuthWrapper } from "@/layouts/auth-layout";
|
|
// wrappers
|
|
import { AuthenticationWrapper } from "@/lib/wrappers";
|
|
import { AppSidebar } from "./sidebar";
|
|
|
|
export interface IAppLayout {
|
|
children: ReactNode;
|
|
header: ReactNode;
|
|
withProjectWrapper?: boolean;
|
|
mobileHeader?: ReactNode;
|
|
}
|
|
|
|
export const AppLayout: FC<IAppLayout> = observer((props) => {
|
|
const { children, header, withProjectWrapper = false, mobileHeader } = props;
|
|
|
|
return (
|
|
<AuthenticationWrapper>
|
|
<CommandPalette />
|
|
<WorkspaceAuthWrapper>
|
|
<div className="relative flex h-screen w-full overflow-hidden">
|
|
<AppSidebar />
|
|
<main className="relative flex h-full w-full flex-col overflow-hidden bg-custom-background-100">
|
|
<div className="z-[15]">
|
|
<div className="z-10 flex w-full items-center border-b border-custom-border-200">
|
|
<div className="block bg-custom-sidebar-background-100 py-4 pl-5 md:hidden">
|
|
<SidebarHamburgerToggle />
|
|
</div>
|
|
<div className="w-full">{header}</div>
|
|
</div>
|
|
{mobileHeader && mobileHeader}
|
|
</div>
|
|
<div className="h-full w-full overflow-hidden">
|
|
<div className="relative h-full w-full overflow-x-hidden overflow-y-scroll">
|
|
{withProjectWrapper ? <ProjectAuthWrapper>{children}</ProjectAuthWrapper> : <>{children}</>}
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</WorkspaceAuthWrapper>
|
|
</AuthenticationWrapper>
|
|
);
|
|
});
|