import {Box, Flex, Spacer, Stack, Text} from '@chakra-ui/react' import * as React from 'react' import {getPackageJsonVersion} from '../../utils/helper' import {NavGroup} from './NavGroup' import {NavItem} from './NavItem' export type SidebarItem = { path: string icon: JSX.Element label: string } export interface UIProps { toolbar: JSX.Element sidebarItems: { activePath: string ungrouped: Array grouped: { [group: string]: { label: string items: Array } } } onSidebarItemClick: (path: string) => void } export const AdminPageShell: React.FC> = ({ toolbar, children, sidebarItems, onSidebarItemClick }) => { return ( {toolbar} {sidebarItems.ungrouped.map(item => ( onSidebarItemClick(item.path)} /> ))} {Object.entries(sidebarItems.grouped).map(([key, group]) => ( {group.items.map(item => ( onSidebarItemClick(item.path)} /> ))} ))} {getPackageJsonVersion()} {children} ) } export default AdminPageShell