import clsx from 'clsx'; import React from 'react'; import StickyBox from 'react-sticky-box'; interface ISidebar { children: React.ReactNode } interface IAside { children?: React.ReactNode } interface ILayout { children: React.ReactNode } interface LayoutComponent extends React.FC { Sidebar: React.FC Main: React.FC> Aside: React.FC } /** Layout container, to hold Sidebar, Main, and Aside. */ const Layout: LayoutComponent = ({ children }) => (
{children}
); /** Left sidebar container in the UI. */ const Sidebar: React.FC = ({ children }) => (
{children}
); /** Center column container in the UI. */ const Main: React.FC> = ({ children, className }) => (
{children}
); /** Right sidebar container in the UI. */ const Aside: React.FC = ({ children }) => ( ); Layout.Sidebar = Sidebar; Layout.Main = Main; Layout.Aside = Aside; export default Layout;