UNPKG

seti-ramesesv1

Version:

Reusable components and context for Next.js apps

32 lines (29 loc) 1.94 kB
import { jsx, jsxs } from 'react/jsx-runtime'; import { useState, useEffect } from 'react'; import '../styles/ActionBar.module.css.js'; import '../styles/CompassEditor.module.css.js'; import ContentPanel from '../components/common/ContentPanel.js'; import '../components/common/Datalist/Datalist.js'; import '../styles/Text.module.css.js'; import '../components/common/IconButton.js'; import '../components/common/RadioGroup.js'; import Sidebar from '../components/common/Sidebar.js'; import '../styles/TabList.module.css.js'; import styles from '../styles/SidebarTemplate.module.css.js'; import PanelRightClose from '../node_modules/lucide-react/dist/esm/icons/panel-right-close.js'; const SidebarLayout = ({ title, items, activeItem, target, showSidebar = false, showToggle = false, openItem, defaultOpenFirstDropdown = false, }) => { const [open, setOpen] = useState(true); useEffect(() => { const handleResize = () => { // collapse if screen is < 768px setOpen(window.innerWidth >= 768); }; // run once on mount handleResize(); window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); }, []); return (jsx("div", { className: styles.layout, children: jsxs("div", { className: styles.inner, children: [showSidebar && (jsx(Sidebar, { items: items || [], onClick: openItem, activeItem: activeItem, showToggle: !showToggle, openSidebar: open, onToggle: setOpen, defaultOpenFirstDropdown: defaultOpenFirstDropdown })), jsxs("div", { className: styles.main, children: [showSidebar && !open && (jsx("div", { className: styles.closeBtnWrapper, children: jsx(PanelRightClose, { color: "#6b7280", onClick: () => setOpen(true), className: styles.closeIcon, size: 20 }) })), jsx(ContentPanel, { id: target })] })] }) })); }; export { SidebarLayout as default }; //# sourceMappingURL=SidebarTemplate.js.map