feat(SW-2879): Move BookingWidget to booking-flow package * Fix lockfile * Fix styling * a tiny little booking widget test * Tiny fixes * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Remove unused scripts * lint:fix * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Tiny lint fixes * update test * Update Input in booking-flow * Clean up comments etc * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Setup tracking context for booking-flow * Add missing use client * Fix temp tracking function * Pass booking to booking-widget * Remove comment * Add use client to booking widget tracking provider * Add use client to tracking functions * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Move debug page * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package * Merge branch 'master' into feat/sw-2879-booking-widget-to-booking-flow-package Approved-by: Bianca Widstam
49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { cache } from "react"
|
|
|
|
import { serverClient } from "../trpc"
|
|
|
|
import type { Lang } from "@scandic-hotels/common/constants/language"
|
|
|
|
export const getSiteConfig = cache(async function getMemoizedSiteConfig(
|
|
lang: Lang
|
|
) {
|
|
const caller = await serverClient()
|
|
return caller.contentstack.base.siteConfig({ lang })
|
|
})
|
|
|
|
export const getPageSettings = cache(async function getMemoizedPageSettings(
|
|
lang: Lang
|
|
) {
|
|
const caller = await serverClient()
|
|
return caller.contentstack.pageSettings.get({ lang })
|
|
})
|
|
|
|
export const isBookingWidgetHidden = cache(
|
|
async function isMemoizedBookingWidgetHidden(lang: Lang) {
|
|
const [pageSettingsResult, siteConfigResults] = await Promise.allSettled([
|
|
getPageSettings(lang),
|
|
getSiteConfig(lang),
|
|
])
|
|
|
|
const pageSettings =
|
|
pageSettingsResult.status === "fulfilled"
|
|
? pageSettingsResult.value
|
|
: null
|
|
const siteConfig =
|
|
siteConfigResults.status === "fulfilled" ? siteConfigResults.value : null
|
|
|
|
const hideFromPageSettings =
|
|
pageSettings?.page.settings.hide_booking_widget ?? false
|
|
const hideFromSiteConfig = siteConfig?.bookingWidgetDisabled ?? false
|
|
|
|
return hideFromPageSettings || hideFromSiteConfig
|
|
}
|
|
)
|
|
|
|
export const getPageSettingsBookingCode = cache(
|
|
async function getMemoizedPageSettingsBookingCode(lang: Lang) {
|
|
const pageSettings = await getPageSettings(lang)
|
|
return pageSettings?.page.settings.booking_code ?? ""
|
|
}
|
|
)
|