08852ab19d
Add embed.html entrypoint, floating widget SDK, secure-mode snippets, management panel with preview, visitor chat composables, citation rendering, and integration docs for subdomain and server-side token exchange.
25 lines
843 B
TypeScript
25 lines
843 B
TypeScript
/** Resolve the public origin used in embed iframe / widget URLs. */
|
|
export function resolveEmbedBaseUrl(): string {
|
|
if (typeof window === 'undefined') return ''
|
|
const runtime = (window as Window & { __RUNTIME_CONFIG__?: { EMBED_BASE_URL?: string } }).__RUNTIME_CONFIG__
|
|
const fromRuntime = runtime?.EMBED_BASE_URL?.trim()
|
|
if (fromRuntime) {
|
|
try {
|
|
const u = new URL(fromRuntime, window.location.href)
|
|
if (u.protocol === 'http:' || u.protocol === 'https:') return u.origin
|
|
} catch {
|
|
// fall through
|
|
}
|
|
}
|
|
const fromEnv = import.meta.env.VITE_EMBED_BASE_URL?.trim()
|
|
if (fromEnv) {
|
|
try {
|
|
const u = new URL(fromEnv, window.location.href)
|
|
if (u.protocol === 'http:' || u.protocol === 'https:') return u.origin
|
|
} catch {
|
|
// fall through
|
|
}
|
|
}
|
|
return window.location.origin
|
|
}
|