1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-22 21:14:18 +00:00
pds-2021-g2-nest/nest_frontend/components/interactive/Layout.js

29 lines
962 B
JavaScript
Raw Normal View History

2021-04-26 16:36:41 +00:00
import React, { useContext } from "react"
2021-04-21 13:08:54 +00:00
import Style from "./Layout.module.css"
import classNames from "classnames"
2021-04-29 14:58:31 +00:00
import Sidebar from "../interactive/Sidebar"
import ContextTheme from "../../contexts/ContextTheme"
2021-04-21 13:08:54 +00:00
/**
* The base page layout, consisting of a {@link Sidebar} on the left and the page contents on the remaining space.
*
* @param children - The page contents.
* @param className - Additional class(es) to be added to the grid container.
* @param props - Additional props to be passed to the grid container.
* @returns {JSX.Element}
* @constructor
*/
2021-04-21 13:08:54 +00:00
export default function Layout({ children, className, ...props }) {
2021-04-26 16:36:41 +00:00
const { theme } = useContext(ContextTheme)
2021-04-21 13:08:54 +00:00
return (
2021-04-26 16:36:41 +00:00
<div className={classNames(theme, Style.Layout, className)} {...props}>
2021-04-21 13:08:54 +00:00
<Sidebar className={Style.LayoutSidebar}/>
2021-04-26 16:36:41 +00:00
<main className={Style.LayoutContent}>
2021-04-21 13:08:54 +00:00
{children}
2021-04-26 16:36:41 +00:00
</main>
2021-04-21 13:08:54 +00:00
</div>
)
}