feat: add Network Maps to sidebar navigation and router
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@ import {
|
|||||||
LayoutGrid, Clock, AlertTriangle, GitBranch, Code2, Wand2,
|
LayoutGrid, Clock, AlertTriangle, GitBranch, Code2, Wand2,
|
||||||
ListChecks, Download, BarChart3,
|
ListChecks, Download, BarChart3,
|
||||||
Settings, Pin, PinOff,
|
Settings, Pin, PinOff,
|
||||||
History, FileText,
|
History, FileText, Network,
|
||||||
} from 'lucide-react'
|
} from 'lucide-react'
|
||||||
import { cn } from '@/lib/utils'
|
import { cn } from '@/lib/utils'
|
||||||
import { useUserPreferencesStore } from '@/store/userPreferencesStore'
|
import { useUserPreferencesStore } from '@/store/userPreferencesStore'
|
||||||
@@ -86,10 +86,11 @@ export function Sidebar() {
|
|||||||
{
|
{
|
||||||
href: '/trees', icon: GitBranch, label: 'Flows', shortLabel: 'Flows',
|
href: '/trees', icon: GitBranch, label: 'Flows', shortLabel: 'Flows',
|
||||||
badge: stats?.tree_counts.total || undefined,
|
badge: stats?.tree_counts.total || undefined,
|
||||||
matchPaths: ['/trees', '/flows', '/my-trees', '/step-library', '/review-queue'],
|
matchPaths: ['/trees', '/flows', '/my-trees', '/step-library', '/review-queue', '/network-diagrams'],
|
||||||
children: [
|
children: [
|
||||||
{ href: '/trees', label: 'Flow Library', count: stats?.tree_counts.total || undefined },
|
{ href: '/trees', label: 'Flow Library', count: stats?.tree_counts.total || undefined },
|
||||||
{ href: '/trees?type=procedural', label: 'Projects', count: stats?.tree_counts.procedural || undefined },
|
{ href: '/trees?type=procedural', label: 'Projects', count: stats?.tree_counts.procedural || undefined },
|
||||||
|
{ href: '/network-diagrams', label: 'Network Maps' },
|
||||||
{ href: '/step-library', label: 'Solutions Library' },
|
{ href: '/step-library', label: 'Solutions Library' },
|
||||||
{ href: '/review-queue', label: 'Review Queue' },
|
{ href: '/review-queue', label: 'Review Queue' },
|
||||||
],
|
],
|
||||||
@@ -134,6 +135,7 @@ export function Sidebar() {
|
|||||||
{ href: '/trees?type=procedural', label: 'Projects', count: stats?.tree_counts.procedural || undefined },
|
{ href: '/trees?type=procedural', label: 'Projects', count: stats?.tree_counts.procedural || undefined },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{ href: '/network-diagrams', icon: Network, label: 'Network Maps', shortLabel: 'NetMap', matchPaths: ['/network-diagrams'] },
|
||||||
{ href: '/scripts', icon: Code2, label: 'Scripts', shortLabel: 'Scripts' },
|
{ href: '/scripts', icon: Code2, label: 'Scripts', shortLabel: 'Scripts' },
|
||||||
{ href: '/script-builder', icon: Wand2, label: 'Script Builder', shortLabel: 'Builder' },
|
{ href: '/script-builder', icon: Wand2, label: 'Script Builder', shortLabel: 'Builder' },
|
||||||
{ href: '/review-queue', icon: ListChecks, label: 'Review Queue', shortLabel: 'Review' },
|
{ href: '/review-queue', icon: ListChecks, label: 'Review Queue', shortLabel: 'Review' },
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ const DevBranchingPage = lazyWithRetry(() => import('@/pages/DevBranchingPage'))
|
|||||||
const GuidesHubPage = lazyWithRetry(() => import('@/pages/GuidesHubPage'))
|
const GuidesHubPage = lazyWithRetry(() => import('@/pages/GuidesHubPage'))
|
||||||
const GuideDetailPage = lazyWithRetry(() => import('@/pages/GuideDetailPage'))
|
const GuideDetailPage = lazyWithRetry(() => import('@/pages/GuideDetailPage'))
|
||||||
const AccountSettingsPage = lazyWithRetry(() => import('@/pages/AccountSettingsPage'))
|
const AccountSettingsPage = lazyWithRetry(() => import('@/pages/AccountSettingsPage'))
|
||||||
|
const NetworkDiagramsPage = lazyWithRetry(() => import('@/pages/NetworkDiagrams'))
|
||||||
|
const DiagramEditorPage = lazyWithRetry(() => import('@/pages/NetworkDiagrams/DiagramEditor'))
|
||||||
// Admin pages
|
// Admin pages
|
||||||
const AdminLayout = lazyWithRetry(() => import('@/components/admin/AdminLayout'))
|
const AdminLayout = lazyWithRetry(() => import('@/components/admin/AdminLayout'))
|
||||||
const AdminDashboardPage = lazyWithRetry(() => import('@/pages/admin/DashboardPage'))
|
const AdminDashboardPage = lazyWithRetry(() => import('@/pages/admin/DashboardPage'))
|
||||||
@@ -195,6 +197,9 @@ export const router = sentryCreateBrowserRouter([
|
|||||||
{ path: 'scripts', element: page(ScriptLibraryPage) },
|
{ path: 'scripts', element: page(ScriptLibraryPage) },
|
||||||
{ path: 'scripts/manage', element: page(ScriptManagePage) },
|
{ path: 'scripts/manage', element: page(ScriptManagePage) },
|
||||||
{ path: 'script-builder', element: page(ScriptBuilderPage) },
|
{ path: 'script-builder', element: page(ScriptBuilderPage) },
|
||||||
|
{ path: 'network-diagrams', element: page(NetworkDiagramsPage) },
|
||||||
|
{ path: 'network-diagrams/new', element: page(DiagramEditorPage) },
|
||||||
|
{ path: 'network-diagrams/:id', element: page(DiagramEditorPage) },
|
||||||
{ path: 'kb-accelerator', element: page(KBAcceleratorPage) },
|
{ path: 'kb-accelerator', element: page(KBAcceleratorPage) },
|
||||||
{ path: 'assistant', element: page(AssistantChatPage) },
|
{ path: 'assistant', element: page(AssistantChatPage) },
|
||||||
{ path: 'assistant/:sessionId', element: page(AssistantChatPage) },
|
{ path: 'assistant/:sessionId', element: page(AssistantChatPage) },
|
||||||
|
|||||||
Reference in New Issue
Block a user