diff --git a/web/app/dashboard/channels/_components/edit.tsx b/web/app/dashboard/channels/_components/edit.tsx index b624987..40c9278 100644 --- a/web/app/dashboard/channels/_components/edit.tsx +++ b/web/app/dashboard/channels/_components/edit.tsx @@ -7,6 +7,7 @@ import { z } from "zod/v4" import { CopyIcon, ExternalLinkIcon } from "lucide-react" import { toast } from "sonner" +import { getWidgetDemoPath } from "@/components/kefu/demo-navigation" import { OptionCombobox } from "@/components/option-combobox" import { ProjectDialog } from "@/components/project-dialog" import { Button } from "@/components/ui/button" @@ -729,7 +730,7 @@ function WebAccessGuide({ channelId }: { channelId: string }) { if (!origin || !channelId) { return "" } - const url = new URL("/support", origin) + const url = new URL(getWidgetDemoPath(), origin) url.searchParams.set("channelId", channelId) return url.toString() }, [channelId, origin]) diff --git a/web/app/support/page.tsx b/web/app/support/demo/page.tsx similarity index 99% rename from web/app/support/page.tsx rename to web/app/support/demo/page.tsx index 5a038af..0f99a02 100644 --- a/web/app/support/page.tsx +++ b/web/app/support/demo/page.tsx @@ -3,4 +3,3 @@ import { KefuWidgetDemo } from "@/components/kefu/widget-demo" export default function Page() { return } - diff --git a/web/components/kefu/demo-navigation.test.mjs b/web/components/kefu/demo-navigation.test.mjs new file mode 100644 index 0000000..3e53124 --- /dev/null +++ b/web/components/kefu/demo-navigation.test.mjs @@ -0,0 +1,29 @@ +import assert from "node:assert/strict" +import test from "node:test" +import ts from "typescript" +import { readFile } from "node:fs/promises" +import vm from "node:vm" + +async function loadDemoNavigation() { + const source = await readFile(new URL("./demo-navigation.ts", import.meta.url), "utf8") + const compiled = ts.transpileModule(source, { + compilerOptions: { + target: ts.ScriptTarget.ES2017, + module: ts.ModuleKind.CommonJS, + }, + fileName: "demo-navigation.ts", + }) + const sandbox = { + exports: {}, + module: { exports: {} }, + } + sandbox.exports = sandbox.module.exports + vm.runInNewContext(compiled.outputText, sandbox) + return sandbox.module.exports +} + +test("widget demo lives below support so /support remains available", async () => { + const { getWidgetDemoPath } = await loadDemoNavigation() + + assert.equal(getWidgetDemoPath(), "/support/demo") +}) diff --git a/web/components/kefu/demo-navigation.ts b/web/components/kefu/demo-navigation.ts new file mode 100644 index 0000000..54e6f9b --- /dev/null +++ b/web/components/kefu/demo-navigation.ts @@ -0,0 +1,5 @@ +export const KEFU_DEMO_PATH = "/support/demo" + +export function getWidgetDemoPath() { + return KEFU_DEMO_PATH +}