Files
Erik Tiekstra 2346daec25 feat(BOOK-577): Added chatbot functionality for SE
Approved-by: Bianca Widstam
2025-11-24 14:18:35 +00:00

67 lines
1.6 KiB
TypeScript

import { Lang } from "@scandic-hotels/common/constants/language"
import {
removeMultipleSlashes,
removeTrailingSlash,
} from "@scandic-hotels/common/utils/url"
import { CHATBOT_HIDE_CONDITIONS, CHATBOT_SHOW_ROUTES } from "./constants"
export function shouldShowChatbot(
pathname: string,
searchParams: URLSearchParams | null,
lang: Lang
): boolean {
const cleanPathname = removeTrailingSlash(removeMultipleSlashes(pathname))
const isOnShowRoute = CHATBOT_SHOW_ROUTES[lang].some((route) => {
const fullRoute = removeTrailingSlash(
removeMultipleSlashes(`/${lang}${route}`)
)
return cleanPathname.startsWith(fullRoute)
})
const isOnStartPage = cleanPathname === `/${lang}`
if (!isOnShowRoute && !isOnStartPage) {
return false
}
const isOnHideRoute = CHATBOT_HIDE_CONDITIONS.routes[lang].some((route) => {
const fullRoute = removeTrailingSlash(
removeMultipleSlashes(`/${lang}${route}`)
)
return cleanPathname === fullRoute
})
if (isOnHideRoute) {
return false
}
if (searchParams) {
const shouldHideOnSearchParams = CHATBOT_HIDE_CONDITIONS.searchParams.some(
({ key, value }) => {
const paramValue = searchParams.get(key)
return paramValue === value
}
)
if (shouldHideOnSearchParams) {
return false
}
}
return true
}
export function getChatbotKey(lang: Lang) {
switch (lang) {
case Lang.sv:
return "6008f930-ad4f-4fd2-8d7e-b58e65afe123"
case Lang.no:
case Lang.da:
case Lang.fi:
case Lang.de:
case Lang.en:
default:
return "910bd27a-7472-43a1-bcfc-955b41adc3e7"
}
}