diff --git a/web/app/workbench/layout.tsx b/web/app/workbench/layout.tsx index 9a1fb1a..640308f 100644 --- a/web/app/workbench/layout.tsx +++ b/web/app/workbench/layout.tsx @@ -8,6 +8,7 @@ import { useEffect } from "react" import { useAuth } from "@/components/auth-provider" import { NotificationProvider } from "@/components/notification-provider" import { WorkbenchHeader } from "@/components/workbench-header" +import { WorkbenchRail } from "@/components/workbench-rail" import { useI18n } from "@/i18n/provider" export default function WorkbenchLayout({ @@ -47,7 +48,7 @@ export default function WorkbenchLayout({ return (
- -
{children}
+ +
+ +
{children}
+
) diff --git a/web/components/workbench-rail.tsx b/web/components/workbench-rail.tsx new file mode 100644 index 0000000..49b8897 --- /dev/null +++ b/web/components/workbench-rail.tsx @@ -0,0 +1,58 @@ +"use client" + +import { FileTextIcon, MessageSquareTextIcon } from "lucide-react" +import Link from "next/link" +import { usePathname } from "next/navigation" + +import { useI18n } from "@/i18n/provider" +import { cn } from "@/lib/utils" + +const workbenchRailItems = [ + { + key: "conversations", + titleKey: "nav.conversations", + href: "/workbench", + icon: MessageSquareTextIcon, + }, + { + key: "tickets", + titleKey: "nav.tickets", + href: "/dashboard/tickets", + icon: FileTextIcon, + }, +] + +export function WorkbenchRail() { + const t = useI18n() + const pathname = usePathname() + + return ( + + ) +} diff --git a/web/e2e/workbench-function.spec.ts b/web/e2e/workbench-function.spec.ts index 36b1a2f..9f0c42a 100644 --- a/web/e2e/workbench-function.spec.ts +++ b/web/e2e/workbench-function.spec.ts @@ -67,7 +67,7 @@ test.describe("support workbench", () => { await screenshot(page, "03-workbench-initial"); await expect(page.getByText(/客服工作台|Support Workbench/).first()).toBeVisible(); - await page.getByRole("button", { name: /贝壳AGENT|Shell Agent/i }).first().click(); + await page.getByRole("button", { name: /贝壳AGENT|Agent Desk/i }).first().click(); await expect(page.getByText(/切换工作区|Switch workspace/)).toBeVisible(); await expect(page.getByRole("menuitem", { name: /管理后台|Admin Dashboard/ })).toBeVisible(); await page.waitForTimeout(300); @@ -79,7 +79,7 @@ test.describe("support workbench", () => { await screenshot(page, "05-dashboard-after-switch"); await expect(page.getByText(/管理后台|Admin Dashboard/).first()).toBeVisible(); - await page.getByRole("button", { name: /贝壳AGENT|Shell Agent/i }).first().click(); + await page.getByRole("button", { name: /贝壳AGENT|Agent Desk/i }).first().click(); await expect(page.getByRole("menuitem", { name: /客服工作台|Support Workbench/ })).toBeVisible(); await page.waitForTimeout(300); await screenshot(page, "06-dashboard-switcher-open"); diff --git a/web/messages/en-US.json b/web/messages/en-US.json index 77fa696..810241c 100644 --- a/web/messages/en-US.json +++ b/web/messages/en-US.json @@ -1,6 +1,6 @@ { "app": { - "brand": "Shell Agent", + "brand": "Agent Desk", "metadataTitle": "AI Customer Support Admin", "metadataDescription": "AI Customer Support Admin" },