feat: update chat URLs and paths from /kefu to /support for consistency

This commit is contained in:
mlogclub
2026-05-30 10:48:05 +08:00
parent dbcb1d83de
commit 64eb3b18b0
10 changed files with 11 additions and 8 deletions
@@ -720,7 +720,7 @@ function WebAccessGuide({ channelId }: { channelId: string }) {
if (!origin || !channelId) { if (!origin || !channelId) {
return "" return ""
} }
const url = new URL("/kefu/chat/", origin) const url = new URL("/support/chat/", origin)
url.searchParams.set("channelId", channelId) url.searchParams.set("channelId", channelId)
return url.toString() return url.toString()
}, [channelId, origin]) }, [channelId, origin])
@@ -729,7 +729,7 @@ function WebAccessGuide({ channelId }: { channelId: string }) {
if (!origin || !channelId) { if (!origin || !channelId) {
return "" return ""
} }
const url = new URL("/kefu", origin) const url = new URL("/support", origin)
url.searchParams.set("channelId", channelId) url.searchParams.set("channelId", channelId)
return url.toString() return url.toString()
}, [channelId, origin]) }, [channelId, origin])
@@ -858,7 +858,7 @@ function WechatMPAccessGuide({ channelId }: { channelId: string }) {
if (!origin || !channelId) { if (!origin || !channelId) {
return "" return ""
} }
const url = new URL("/kefu/chat/", origin) const url = new URL("/support/chat/", origin)
url.searchParams.set("channelId", channelId) url.searchParams.set("channelId", channelId)
return url.toString() return url.toString()
}, [channelId, origin]) }, [channelId, origin])
@@ -25,5 +25,5 @@ async function loadCloseNavigation() {
test("standalone close navigates to the non-bootstrapping closed page", async () => { test("standalone close navigates to the non-bootstrapping closed page", async () => {
const { getStandaloneClosedUrl } = await loadCloseNavigation() const { getStandaloneClosedUrl } = await loadCloseNavigation()
assert.equal(getStandaloneClosedUrl(), "/kefu/closed") assert.equal(getStandaloneClosedUrl(), "/support/closed")
}) })
+1 -1
View File
@@ -1,4 +1,4 @@
export const KEFU_CLOSED_PATH = "/kefu/closed" export const KEFU_CLOSED_PATH = "/support/closed"
export function getStandaloneClosedUrl() { export function getStandaloneClosedUrl() {
return KEFU_CLOSED_PATH return KEFU_CLOSED_PATH
+1 -1
View File
@@ -17,7 +17,7 @@ export type CSAgentConfig = {
} }
export type KefuChatRuntimeConfig = Omit<CSAgentConfig, "getUserToken"> & { export type KefuChatRuntimeConfig = Omit<CSAgentConfig, "getUserToken"> & {
/** Used only by /kefu/chat to exchange for a chat token; not part of CSAgentConfig. */ /** Used only by /support/chat to exchange for a chat token; not part of CSAgentConfig. */
userToken?: string userToken?: string
} }
+3
View File
@@ -114,6 +114,8 @@ test("getChatUrl resolves a fresh userToken for each call", async () => {
const first = await sandbox.window.CSAgentWidget.getChatUrl() const first = await sandbox.window.CSAgentWidget.getChatUrl()
const second = await sandbox.window.CSAgentWidget.getChatUrl() const second = await sandbox.window.CSAgentWidget.getChatUrl()
assert.equal(new URL(first).pathname, "/support/chat/")
assert.equal(new URL(second).pathname, "/support/chat/")
assert.equal(new URL(first).searchParams.get("userToken"), "token_1") assert.equal(new URL(first).searchParams.get("userToken"), "token_1")
assert.equal(new URL(second).searchParams.get("userToken"), "token_2") assert.equal(new URL(second).searchParams.get("userToken"), "token_2")
assert.equal(calls, 2) assert.equal(calls, 2)
@@ -140,6 +142,7 @@ test("launcher click creates chat iframe with a freshly resolved userToken", asy
) )
assert.ok(frame) assert.ok(frame)
assert.equal(new URL(frame.src).pathname, "/support/chat/")
assert.equal(new URL(frame.src).searchParams.get("userToken"), "click_token") assert.equal(new URL(frame.src).searchParams.get("userToken"), "click_token")
}) })
+1 -1
View File
@@ -122,7 +122,7 @@ type FrameMessage =
function createFrameUrl(config: NormalizedCSAgentConfig, userToken: string) { function createFrameUrl(config: NormalizedCSAgentConfig, userToken: string) {
const widgetBaseUrl = resolveWidgetBaseUrl(config) const widgetBaseUrl = resolveWidgetBaseUrl(config)
const frameUrl = new URL(`${widgetBaseUrl}/kefu/chat/`) const frameUrl = new URL(`${widgetBaseUrl}/support/chat/`)
frameUrl.searchParams.set("channelId", config.channelId) frameUrl.searchParams.set("channelId", config.channelId)
frameUrl.searchParams.set("baseUrl", config.baseUrl) frameUrl.searchParams.set("baseUrl", config.baseUrl)
if (config.apiBaseUrl) frameUrl.searchParams.set("apiBaseUrl", config.apiBaseUrl) if (config.apiBaseUrl) frameUrl.searchParams.set("apiBaseUrl", config.apiBaseUrl)
File diff suppressed because one or more lines are too long