-
-
- {isSplitActive ? (
-
- ) : (
- {children}
- )}
-
-
- {isChatDetailRoute &&
}
+
+
+
+
+ {chatListOpen && (
+
+ )}
+
+
+
+
+
+ {isSplitActive ? (
+
+ ) : (
+ {children}
+ )}
+
+ {isChatDetailRoute &&
}
@@ -606,51 +537,3 @@ export function AppShell({ children }: { children: React.ReactNode }) {
);
}
-
-// ===== INLINE NAV COMPONENTS =====
-
-function NavNavItem({ href, label, isActive }: { href: string; label: string; isActive: boolean }) {
- return (
-
-
-
- );
-}
-
-function NavRailSettingsButton({ pathname }: { pathname: string }) {
- const isSettingsActive = pathname === "/settings" || pathname.startsWith("/settings/");
- return (
-
-
-
-
-
-
- Settings
-
- );
-}
diff --git a/src/components/layout/ChatListPanel.tsx b/src/components/layout/ChatListPanel.tsx
index cc8dca2..9c8469e 100644
--- a/src/components/layout/ChatListPanel.tsx
+++ b/src/components/layout/ChatListPanel.tsx
@@ -6,8 +6,14 @@ import Link from "next/link";
import { motion, AnimatePresence } from "motion/react";
import {
MagnifyingGlass,
- FolderPlus,
+ FileArrowDown,
Plus,
+ FolderPlus,
+ Lightning,
+ Plug,
+ Terminal,
+ Image,
+ WifiHigh,
Gear,
} from "@/components/ui/icon";
import { Button } from "@/components/ui/button";
@@ -413,17 +419,28 @@ export function ChatListPanel({ open, width }: ChatListPanelProps) {
if (!open) return null;
+ const navItems = [
+ { href: "/skills", label: t('nav.skills' as TranslationKey), icon: Lightning },
+ { href: "/mcp", label: t('nav.mcp' as TranslationKey), icon: Plug },
+ { href: "/cli-tools", label: t('nav.cliTools' as TranslationKey), icon: Terminal },
+ { href: "/gallery", label: t('nav.gallery' as TranslationKey), icon: Image },
+ { href: "/bridge", label: t('nav.bridge' as TranslationKey), icon: WifiHigh },
+ ];
+
return (