From 9a440db9d269818c6e65a20bb509344cc03b2806 Mon Sep 17 00:00:00 2001 From: Kostenko Nikita <244571@niuitmo.ru> Date: Mon, 31 Aug 2026 15:42:20 +0300 Subject: [PATCH 01/11] feat(frontend): unify navigation sidebar scrolling --- .../features/api-docs/ApiDocsSidebar.svelte | 21 +- .../channels/ChannelNavigation.svelte | 37 ++- .../src/lib/features/channels/Channels.svelte | 6 +- .../collections/CollectionNavigation.svelte | 164 ++++++------ .../collections/CollectionsList.svelte | 4 +- .../collections/CollectionsNavigation.svelte | 30 +-- .../iterations/IterationNavigation.svelte | 9 +- .../lib/features/iterations/Iterations.svelte | 4 +- .../features/logbook/BucketNavigation.svelte | 41 ++- .../src/lib/features/logbook/Logbook.svelte | 4 +- .../milestones/MilestoneNavigation.svelte | 37 ++- .../lib/features/milestones/Milestones.svelte | 4 +- .../lib/features/pages/PagesNavSidebar.svelte | 23 +- frontend/src/lib/features/time/Time.svelte | 51 ++-- .../src/lib/layout/NavigationSidebar.svelte | 34 +++ .../src/lib/layout/ScrollableSidebar.svelte | 94 +++++++ frontend/src/lib/pages/Admin.svelte | 124 ++++----- frontend/src/lib/pages/ApiDocs.svelte | 2 +- .../src/lib/pages/MainRouteContent.svelte | 29 +-- .../CustomerOrganisationNavigation.svelte | 53 ++-- frontend/src/lib/workspaces/Customers.svelte | 6 +- .../lib/workspaces/WorkspaceAdminNav.svelte | 2 +- .../lib/workspaces/WorkspaceNavigation.svelte | 243 ++++++++++-------- 23 files changed, 604 insertions(+), 418 deletions(-) create mode 100644 frontend/src/lib/layout/NavigationSidebar.svelte create mode 100644 frontend/src/lib/layout/ScrollableSidebar.svelte diff --git a/frontend/src/lib/features/api-docs/ApiDocsSidebar.svelte b/frontend/src/lib/features/api-docs/ApiDocsSidebar.svelte index a0f801ad5..039be645c 100644 --- a/frontend/src/lib/features/api-docs/ApiDocsSidebar.svelte +++ b/frontend/src/lib/features/api-docs/ApiDocsSidebar.svelte @@ -2,6 +2,7 @@ import MethodBadge from './MethodBadge.svelte'; import Input from '../../components/Input.svelte'; import { filterGroups } from './openapi-store.svelte.js'; + import ScrollableSidebar from '../../layout/ScrollableSidebar.svelte'; let { groups, @@ -21,7 +22,7 @@ } - + diff --git a/frontend/src/lib/pages/Admin.svelte b/frontend/src/lib/pages/Admin.svelte index cd02e5382..65ab7289b 100644 --- a/frontend/src/lib/pages/Admin.svelte +++ b/frontend/src/lib/pages/Admin.svelte @@ -46,6 +46,7 @@ import PluginModalContainer from '../layout/PluginModalContainer.svelte'; import LinkComponent from '../components/Link.svelte'; import SidebarHeader from '../layout/SidebarHeader.svelte'; + import ScrollableSidebar from '../layout/ScrollableSidebar.svelte'; import { IconFileText, IconMenu2, IconPuzzle, IconSearch, IconX } from '@tabler/icons-svelte-runes'; import { useEventListener } from 'runed'; import PermissionGuard from '../layout/PermissionGuard.svelte'; @@ -298,8 +299,58 @@ } +{#snippet adminSidebarHeader()} +