mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-19 03:54:19 +00:00
8ff60c5b98
- Rename /home/plugins route to /home/extensions and update all sidebar links. - Add unified GET /api/v1/extensions returning plugins, MCP servers and skills, sorted by name; replace the three separate frontend fetches with this single call. - Migrate the extensions page to shadcn primitives (Tabs/Card/Alert/Badge/Skeleton/ Switch/Label) and clean up hardcoded color tokens on the extension card. - Add a localStorage-persisted "Group by type" switch that, when enabled in the All Types tab, renders extensions grouped by type with a compact section header. - Show a spinner while loading and rename the empty-state copy from "No plugins installed" to "No extensions installed". - Rename the "格式 / Formats" filter label to "类型 / Types" across all 8 locales. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
112 lines
3.1 KiB
TypeScript
112 lines
3.1 KiB
TypeScript
import { SidebarChildVO } from '@/app/home/components/home-sidebar/HomeSidebarChild';
|
|
import i18n from '@/i18n';
|
|
import {
|
|
Zap,
|
|
LayoutDashboard,
|
|
Bot,
|
|
Workflow,
|
|
BookMarked,
|
|
Puzzle,
|
|
PlusCircle,
|
|
} from 'lucide-react';
|
|
|
|
const t = (key: string) => {
|
|
return i18n.t(key);
|
|
};
|
|
|
|
export const sidebarConfigList = [
|
|
// ── Quick Start ──
|
|
new SidebarChildVO({
|
|
id: 'wizard',
|
|
name: t('sidebar.quickStart'),
|
|
icon: <Zap className="text-blue-500" />,
|
|
route: '/wizard',
|
|
description: t('wizard.sidebarDescription'),
|
|
helpLink: {
|
|
en_US: '',
|
|
zh_Hans: '',
|
|
},
|
|
section: 'standalone',
|
|
}),
|
|
|
|
// ── Home section ──
|
|
new SidebarChildVO({
|
|
id: 'monitoring',
|
|
name: t('monitoring.title'),
|
|
icon: <LayoutDashboard className="text-blue-500" />,
|
|
route: '/home/monitoring',
|
|
description: t('monitoring.description'),
|
|
helpLink: {
|
|
en_US: '',
|
|
zh_Hans: '',
|
|
},
|
|
section: 'home',
|
|
}),
|
|
new SidebarChildVO({
|
|
id: 'bots',
|
|
name: t('bots.title'),
|
|
icon: <Bot className="text-blue-500" />,
|
|
route: '/home/bots',
|
|
description: t('bots.description'),
|
|
helpLink: {
|
|
en_US: 'https://link.langbot.app/en/docs/platforms',
|
|
zh_Hans: 'https://link.langbot.app/zh/docs/platforms',
|
|
ja_JP: 'https://link.langbot.app/ja/docs/platforms',
|
|
},
|
|
section: 'home',
|
|
}),
|
|
new SidebarChildVO({
|
|
id: 'pipelines',
|
|
name: t('pipelines.title'),
|
|
icon: <Workflow className="text-blue-500" />,
|
|
route: '/home/pipelines',
|
|
description: t('pipelines.description'),
|
|
helpLink: {
|
|
en_US: 'https://link.langbot.app/en/docs/pipelines',
|
|
zh_Hans: 'https://link.langbot.app/zh/docs/pipelines',
|
|
ja_JP: 'https://link.langbot.app/ja/docs/pipelines',
|
|
},
|
|
section: 'home',
|
|
}),
|
|
new SidebarChildVO({
|
|
id: 'knowledge',
|
|
name: t('knowledge.title'),
|
|
icon: <BookMarked className="text-blue-500" />,
|
|
route: '/home/knowledge',
|
|
description: t('knowledge.description'),
|
|
helpLink: {
|
|
en_US: 'https://link.langbot.app/en/docs/knowledge',
|
|
zh_Hans: 'https://link.langbot.app/zh/docs/knowledge',
|
|
ja_JP: 'https://link.langbot.app/ja/docs/knowledge',
|
|
},
|
|
section: 'home',
|
|
}),
|
|
// ── Extensions section ──
|
|
new SidebarChildVO({
|
|
id: 'plugins',
|
|
name: t('sidebar.installedPlugins'),
|
|
icon: <Puzzle className="text-blue-500" />,
|
|
route: '/home/extensions',
|
|
description: t('plugins.description'),
|
|
helpLink: {
|
|
en_US: 'https://link.langbot.app/en/docs/plugins',
|
|
zh_Hans: 'https://link.langbot.app/zh/docs/plugins',
|
|
ja_JP: 'https://link.langbot.app/ja/docs/plugins',
|
|
},
|
|
section: 'extensions',
|
|
}),
|
|
new SidebarChildVO({
|
|
id: 'add-extension',
|
|
name: t('sidebar.addExtension'),
|
|
icon: <PlusCircle className="text-blue-500" />,
|
|
route: '/home/add-extension',
|
|
description: t('plugins.description'),
|
|
helpLink: {
|
|
en_US: 'https://link.langbot.app/en/docs/plugins',
|
|
zh_Hans: 'https://link.langbot.app/zh/docs/plugins',
|
|
ja_JP: 'https://link.langbot.app/ja/docs/plugins',
|
|
},
|
|
section: 'extensions',
|
|
}),
|
|
];
|