diff options
| author | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-25 17:45:15 +0100 |
|---|---|---|
| committer | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-25 17:45:15 +0100 |
| commit | 20c46e54690f7c7befb7059960447935231d86be (patch) | |
| tree | 9b46cd39f29f9887873836cf1bfb02afecc036fc /174bg/manager/src/components | |
| parent | a85a54651070765d6254287369835d747be1c276 (diff) | |
| download | unnamed-group-20c46e54690f7c7befb7059960447935231d86be.tar unnamed-group-20c46e54690f7c7befb7059960447935231d86be.tar.gz unnamed-group-20c46e54690f7c7befb7059960447935231d86be.tar.bz2 unnamed-group-20c46e54690f7c7befb7059960447935231d86be.tar.xz unnamed-group-20c46e54690f7c7befb7059960447935231d86be.zip | |
2-col layout
Diffstat (limited to '174bg/manager/src/components')
| -rw-r--r-- | 174bg/manager/src/components/Sidebar.jsx | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/174bg/manager/src/components/Sidebar.jsx b/174bg/manager/src/components/Sidebar.jsx new file mode 100644 index 0000000..64f0cf5 --- /dev/null +++ b/174bg/manager/src/components/Sidebar.jsx @@ -0,0 +1,56 @@ +import { NavLink } from "react-router-dom"; + +const NAV_ITEMS = [ + { to: "/", label: "Overview", end: true }, + { to: "/preferences", label: "Role Preferences" }, + { to: "/oncall", label: "On-Call Schedule" }, + { to: "/ledger", label: "Ledger" }, +]; + +export default function Sidebar({ record, open, onClose, onLogout }) { + const name = record?.RSI_Handle || record?.name || "Pilot"; + + return ( + <> + {open && ( + <div + className="sidebar-backdrop" + onClick={onClose} + aria-hidden="true" + /> + )} + <aside className={`sidebar${open ? " sidebar-open" : ""}`}> + <div className="sidebar-header"> + <span className="sidebar-title">174BG Manager</span> + <button + type="button" + className="sidebar-close" + onClick={onClose} + aria-label="Close navigation" + > + ✕ + </button> + </div> + <p className="sidebar-user">{name}</p> + <nav className="sidebar-nav"> + {NAV_ITEMS.map((item) => ( + <NavLink + key={item.to} + to={item.to} + end={item.end} + className={({ isActive }) => + "sidebar-link" + (isActive ? " sidebar-link-active" : "") + } + onClick={onClose} + > + {item.label} + </NavLink> + ))} + </nav> + <button type="button" className="sidebar-logout" onClick={onLogout}> + Logout + </button> + </aside> + </> + ); +} |
