diff --git a/ordinis-admin-ui/src/components/layout/Sidebar.tsx b/ordinis-admin-ui/src/components/layout/Sidebar.tsx index 2b7c7af..99f4ca2 100644 --- a/ordinis-admin-ui/src/components/layout/Sidebar.tsx +++ b/ordinis-admin-ui/src/components/layout/Sidebar.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react' import { Link, useLocation } from '@tanstack/react-router' import { useTranslation } from 'react-i18next' import { @@ -113,9 +114,37 @@ export function Sidebar() { })) .filter((s) => s.items.length > 0) + // Sidebar collapsed mode — per handoff prototype 'Свернуть' button bottom-left. + // Persists в localStorage. Collapsed = icon-only 56px rail, expanded = 220px. + const [collapsed, setCollapsed] = useState(() => { + if (typeof window === 'undefined') return false + return window.localStorage.getItem('ord-sidebar-collapsed') === '1' + }) + const toggleCollapsed = () => { + setCollapsed((prev) => { + const next = !prev + try { + window.localStorage.setItem('ord-sidebar-collapsed', next ? '1' : '0') + } catch { + // localStorage может быть disabled + } + return next + }) + } + return ( -