/
githubmirror
/
Open-Assistant
Обзор
Документация
Войти
/
githubmirror
/
Open-Assistant
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
website/src/components/Layout.tsx
74 строки
2 KB
AbdBarho
Client side rendering (for most pages) (#2961)
28 апр 2023, 21:06
Не верифицирован
28 апр 2023, 21:06
fd55e6c
Код
Авторство
О чём код?
import { Box } from "@chakra-ui/react"; import { Activity, BarChart2, MessageSquare, Settings, Users } from "lucide-react"; import type { NextPage } from "next"; import { PropsWithChildren } from "react"; import { useSidebarItems } from "src/hooks/layout/sidebarItems"; import { SlimFooter } from "./Dashboard/SlimFooter"; import { Footer } from "./Footer"; import { HeaderLayout } from "./Header/Header"; import { SideMenuLayout } from "./SideMenuLayout"; import { ToSWrapper } from "./ToSWrapper"; export type NextPageWithLayout<P = unknown, IP = P> = NextPage<P, IP> & { getLayout?: (props: PropsWithChildren) => JSX.Element; }; export const DefaultLayout = ({ children }: PropsWithChildren) => ( <HeaderLayout> {children} <Footer /> </HeaderLayout> ); export const DashboardLayout = ({ children }: PropsWithChildren) => { const items = useSidebarItems(); return ( <HeaderLayout> <ToSWrapper> <SideMenuLayout items={items}> <Box>{children}</Box> <Box mt="10"> <SlimFooter /> </Box> </SideMenuLayout> </ToSWrapper> </HeaderLayout> ); }; export const AdminLayout = ({ children }: PropsWithChildren) => ( <HeaderLayout> <SideMenuLayout items={[ { labelID: "users", pathname: "/admin", icon: Users, }, { labelID: "Messages", pathname: "/admin/messages", icon: MessageSquare, }, { labelID: "trollboard", pathname: "/admin/trollboard", icon: BarChart2, }, { labelID: "status", pathname: "/admin/status", icon: Activity, }, { labelID: "parameters", pathname: "/admin/parameters", icon: Settings, }, ]} > <Box>{children}</Box> </SideMenuLayout> </HeaderLayout> );