From e0d695f2a4e254a1bbea616b34a3d8a47b764a21 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Tue, 18 Aug 2026 16:30:10 +0700 Subject: [PATCH] refactor(web): unify settings navigation and update tab structure Refactored the settings components to unify navigation between UI and BIRD settings. Updated tab structures to streamline access and improve user experience. Adjusted routing and search parameters to reflect the new tab organization, ensuring a cohesive interface. Removed legacy tenant settings references and enhanced the settings page layout for clarity and usability. --- apps/web/src/components/layout/app-shell.tsx | 4 +- apps/web/src/components/layout/apps-menu.tsx | 2 +- apps/web/src/components/layout/nav-user.tsx | 6 +- apps/web/src/components/reui-kit/index.ts | 2 +- .../components/reui-kit/settings-shell.tsx | 110 +---- .../components/settings/bird-settings-tab.tsx | 341 ++++++++++++++++ .../settings/sections-settings-tab.tsx | 17 +- .../settings/settings-page-shell.tsx | 147 +++++-- .../settings/settings-tabs-data.tsx | 49 +-- apps/web/src/lib/auth.ts | 11 +- apps/web/src/routes/_auth.tsx | 2 +- .../src/routes/_auth/_settings/settings.tsx | 33 +- .../_auth/_settings/tenant-settings.tsx | 379 +----------------- apps/web/src/routes/_auth/access.tsx | 2 +- apps/web/src/routes/_auth/monitoring.tsx | 2 +- apps/web/tsconfig.tsbuildinfo | 2 +- docs/manual.md | 8 +- 17 files changed, 547 insertions(+), 570 deletions(-) create mode 100644 apps/web/src/components/settings/bird-settings-tab.tsx diff --git a/apps/web/src/components/layout/app-shell.tsx b/apps/web/src/components/layout/app-shell.tsx index 479737a..9d8a67f 100644 --- a/apps/web/src/components/layout/app-shell.tsx +++ b/apps/web/src/components/layout/app-shell.tsx @@ -8,7 +8,6 @@ import { Settings, BookText, KeyRound, - ServerCog, Search, } from 'lucide-react' @@ -97,8 +96,7 @@ const NAV_GROUPS: NavGroup[] = [ label: 'Система', items: [ { to: '/access', label: 'Доступ', icon: KeyRound, description: 'API-ключи' }, - { to: '/tenant-settings', label: 'Настройки BIRD', icon: ServerCog, description: 'Tenant BIRD config' }, - { to: '/settings', label: 'Настройки UI', icon: Settings, description: 'Токен и подключение', search: { tab: 'connection' } }, + { to: '/settings', label: 'Настройки', icon: Settings, description: 'UI и BIRD', search: { tab: 'ui' } }, ], }, ] diff --git a/apps/web/src/components/layout/apps-menu.tsx b/apps/web/src/components/layout/apps-menu.tsx index 5ca8fab..2d66389 100644 --- a/apps/web/src/components/layout/apps-menu.tsx +++ b/apps/web/src/components/layout/apps-menu.tsx @@ -91,7 +91,7 @@ export function AppsMenu() { ) : ( } + render={} className="justify-center text-sm font-medium" > Настройки diff --git a/apps/web/src/components/layout/nav-user.tsx b/apps/web/src/components/layout/nav-user.tsx index 3b6e642..ee8c22c 100644 --- a/apps/web/src/components/layout/nav-user.tsx +++ b/apps/web/src/components/layout/nav-user.tsx @@ -136,7 +136,7 @@ export function NavUser() { setApiToken(null) if (typeof window !== 'undefined') { window.localStorage.removeItem(TOKEN_STORAGE_KEY) - window.location.assign('/settings?tab=connection&reason=token-required') + window.location.assign('/settings?tab=ui&reason=token-required') } } @@ -190,10 +190,10 @@ export function NavUser() { } + render={} > - Настройки UI + Настройки {authOn ? (