refactor(ui): restructure sidebar into 7 groups, keep Nodes/TTS untranslated

Regroup sidebar from 4 to 7 sections (Core, Conversations, Connectivity,
Capabilities, Data, Monitoring, System) for better organization. Keep
technical terms Nodes and TTS as-is across all languages.
This commit is contained in:
viettranx committed 2026-03-10 18:46:44 +07:00
1 parent f073c5d275
commit d301c64dd0
6 files changed
+40 -17

No files matched your search

+19 -8
View File
@@ -23,6 +23,7 @@ import {
HardDrive,
Inbox,
Brain,
Network,
Contact,
} from "lucide-react";
import { useTranslation } from "react-i18next";
@@ -72,21 +73,34 @@ export function Sidebar({ collapsed, onNavItemClick }: SidebarProps) {
<SidebarGroup label={t("groups.core")} collapsed={collapsed}>
<SidebarItem to={ROUTES.OVERVIEW} icon={LayoutDashboard} label={t("nav.overview")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CHAT} icon={MessageSquare} label={t("nav.chat")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.management")} collapsed={collapsed}>
<SidebarItem to={ROUTES.AGENTS} icon={Bot} label={t("nav.agents")} collapsed={collapsed} />
<SidebarItem to={ROUTES.TEAMS} icon={Users} label={t("nav.agentTeams")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.conversations")} collapsed={collapsed}>
<SidebarItem to={ROUTES.SESSIONS} icon={History} label={t("nav.sessions")} collapsed={collapsed} />
<SidebarItem to={ROUTES.PENDING_MESSAGES} icon={Inbox} label={t("nav.pendingMessages")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CHANNELS} icon={Radio} label={t("nav.channels")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CONTACTS} icon={Contact} label={t("nav.contacts")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.connectivity")} collapsed={collapsed}>
<SidebarItem to={ROUTES.CHANNELS} icon={Radio} label={t("nav.channels")} collapsed={collapsed} />
<SidebarItem to={ROUTES.NODES} icon={Link} label={t("nav.nodes")} collapsed={collapsed} badge={pendingCount} />
</SidebarGroup>
<SidebarGroup label={t("groups.capabilities")} collapsed={collapsed}>
<SidebarItem to={ROUTES.SKILLS} icon={Zap} label={t("nav.skills")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CRON} icon={Clock} label={t("nav.cron")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CUSTOM_TOOLS} icon={Wrench} label={t("nav.customTools")} collapsed={collapsed} />
<SidebarItem to={ROUTES.BUILTIN_TOOLS} icon={Package} label={t("nav.builtinTools")} collapsed={collapsed} />
<SidebarItem to={ROUTES.MCP} icon={Plug} label={t("nav.mcpServers")} collapsed={collapsed} />
<SidebarItem to={ROUTES.TTS} icon={Volume2} label={t("nav.tts")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CRON} icon={Clock} label={t("nav.cron")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.data")} collapsed={collapsed}>
<SidebarItem to={ROUTES.MEMORY} icon={Brain} label={t("nav.memory")} collapsed={collapsed} />
<SidebarItem to={ROUTES.KNOWLEDGE_GRAPH} icon={Network} label={t("nav.knowledgeGraph")} collapsed={collapsed} />
<SidebarItem to={ROUTES.STORAGE} icon={HardDrive} label={t("nav.storage")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.monitoring")} collapsed={collapsed}>
@@ -95,15 +109,12 @@ export function Sidebar({ collapsed, onNavItemClick }: SidebarProps) {
<SidebarItem to={ROUTES.DELEGATIONS} icon={ArrowRightLeft} label={t("nav.delegations")} collapsed={collapsed} />
<SidebarItem to={ROUTES.USAGE} icon={BarChart3} label={t("nav.usage")} collapsed={collapsed} />
<SidebarItem to={ROUTES.LOGS} icon={Terminal} label={t("nav.logs")} collapsed={collapsed} />
<SidebarItem to={ROUTES.STORAGE} icon={HardDrive} label={t("nav.storage")} collapsed={collapsed} />
</SidebarGroup>
<SidebarGroup label={t("groups.system")} collapsed={collapsed}>
<SidebarItem to={ROUTES.PROVIDERS} icon={Cpu} label={t("nav.providers")} collapsed={collapsed} />
<SidebarItem to={ROUTES.CONFIG} icon={Settings} label={t("nav.config")} collapsed={collapsed} />
<SidebarItem to={ROUTES.APPROVALS} icon={ShieldCheck} label={t("nav.approvals")} collapsed={collapsed} />
<SidebarItem to={ROUTES.NODES} icon={Link} label={t("nav.nodes")} collapsed={collapsed} badge={pendingCount} />
<SidebarItem to={ROUTES.TTS} icon={Volume2} label={t("nav.tts")} collapsed={collapsed} />
</SidebarGroup>
</nav>
+5 -1
View File
@@ -1,7 +1,10 @@
{
"groups": {
"core": "Core",
"management": "Management",
"conversations": "Conversations",
"connectivity": "Connectivity",
"capabilities": "Capabilities",
"data": "Data",
"monitoring": "Monitoring",
"system": "System"
},
@@ -20,6 +23,7 @@
"builtinTools": "Built-in Tools",
"mcpServers": "MCP Servers",
"memory": "Memory",
"knowledgeGraph": "Knowledge Graph",
"traces": "Traces",
"realtimeEvents": "Realtime Events",
"delegations": "Delegations",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"title": "Nút",
"title": "Nodes",
"description": "Quản lý thiết bị ghép nối và yêu cầu ghép nối đang chờ",
"emptyTitle": "Không có thiết bị nào",
"emptyDescription": "Không có thiết bị ghép nối hoặc yêu cầu ghép nối đang chờ.",
+7 -3
View File
@@ -1,7 +1,10 @@
{
"groups": {
"core": "Chính",
"management": "Quản lý",
"conversations": "Hội thoại",
"connectivity": "Kết nối",
"capabilities": "Khả năng",
"data": "Dữ liệu",
"monitoring": "Giám sát",
"system": "Hệ thống"
},
@@ -20,6 +23,7 @@
"builtinTools": "Công cụ tích hợp",
"mcpServers": "Máy chủ MCP",
"memory": "Bộ nhớ",
"knowledgeGraph": "Knowledge Graph",
"traces": "Theo dõi",
"realtimeEvents": "Sự kiện thời gian thực",
"delegations": "Ủy quyền",
@@ -29,7 +33,7 @@
"providers": "Provider",
"config": "Cấu hình",
"approvals": "Phê duyệt",
"nodes": "Nút",
"tts": "Chuyển văn bản thành giọng nói"
"nodes": "Nodes",
"tts": "TTS"
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"title": "节点",
"title": "Nodes",
"description": "管理已配对设备和待处理配对请求",
"emptyTitle": "没有设备",
"emptyDescription": "没有已配对设备或待处理配对请求。",
+7 -3
View File
@@ -1,7 +1,10 @@
{
"groups": {
"core": "核心",
"management": "管理",
"conversations": "会话",
"connectivity": "连接",
"capabilities": "能力",
"data": "数据",
"monitoring": "监控",
"system": "系统"
},
@@ -20,7 +23,8 @@
"logs": "日志",
"mcpServers": "MCP 服务器",
"memory": "记忆",
"nodes": "节点",
"knowledgeGraph": "Knowledge Graph",
"nodes": "Nodes",
"overview": "概览",
"pendingMessages": "待处理消息",
"providers": "Provider",
@@ -29,7 +33,7 @@
"skills": "Skill",
"storage": "存储",
"traces": "追踪",
"tts": "语音合成",
"tts": "TTS",
"usage": "用量"
}
}