feat(SW-2859): Create trpc package * Add isEdge, safeTry and dataCache to new common package * Add eslint and move prettier config * Clean up tests * Create trpc package and move initialization * Move errors and a few procedures * Move telemetry to common package * Move tokenManager to common package * Add Sentry to procedures * Clean up procedures * Fix self-referencing imports * Add exports to packages and lint rule to prevent relative imports * Add env to trpc package * Add eslint to trpc package * Apply lint rules * Use direct imports from trpc package * Add lint-staged config to trpc * Move lang enum to common * Restructure trpc package folder structure * Fix lang imports Approved-by: Linus Flood
35 lines
983 B
TypeScript
35 lines
983 B
TypeScript
import "server-only"
|
|
|
|
import { headers } from "next/headers"
|
|
|
|
import { webviews } from "@/constants/routes/webviews"
|
|
|
|
import type { Lang } from "@scandic-hotels/common/constants/language"
|
|
|
|
export async function webviewSearchParams() {
|
|
const searchParams = new URLSearchParams()
|
|
const headersList = await headers()
|
|
const loginType = headersList.get("loginType")
|
|
if (loginType) {
|
|
searchParams.set("loginType", loginType)
|
|
}
|
|
|
|
const adobeMc = headersList.get("adobe_mc")
|
|
if (adobeMc) {
|
|
searchParams.set("adobe_mc", adobeMc)
|
|
}
|
|
return searchParams
|
|
}
|
|
|
|
export async function modWebviewLink(url: string, lang: Lang) {
|
|
const searchParams = await webviewSearchParams()
|
|
const urlWithoutLang = url.replace(`/${lang}`, "")
|
|
|
|
const webviewUrl = `/${lang}/webview${urlWithoutLang}`
|
|
if (webviews.includes(webviewUrl) || url.startsWith("/webview")) {
|
|
return `${webviewUrl}?${searchParams.toString()}`
|
|
} else {
|
|
return `${url}?${searchParams.toString()}`
|
|
}
|
|
}
|