feat: sw-929 show booking widget on hotelreservation path and separate env for sitewide alerts
This commit is contained in:
@@ -52,5 +52,7 @@ GOOGLE_STATIC_MAP_ID=""
|
||||
GOOGLE_DYNAMIC_MAP_ID=""
|
||||
|
||||
HIDE_FOR_NEXT_RELEASE="false"
|
||||
HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH="false"
|
||||
HIDE_SITE_WIDE_ALERT="false"
|
||||
SHOW_SIGNUP_FLOW="true"
|
||||
USE_NEW_REWARDS_ENDPOINT="true"
|
||||
|
||||
@@ -44,3 +44,5 @@ GOOGLE_DYNAMIC_MAP_ID="test"
|
||||
HIDE_FOR_NEXT_RELEASE="true"
|
||||
SALESFORCE_PREFERENCE_BASE_URL="test"
|
||||
USE_NEW_REWARDS_ENDPOINT="true"
|
||||
HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH="false"
|
||||
HIDE_SITE_WIDE_ALERT="false"
|
||||
|
||||
@@ -12,7 +12,10 @@ export default function HotelReservationLayout({
|
||||
}: React.PropsWithChildren<LayoutArgs<LangParams>> & {
|
||||
sidePeek: React.ReactNode
|
||||
}) {
|
||||
if (env.HIDE_FOR_NEXT_RELEASE) {
|
||||
if (
|
||||
env.HIDE_FOR_NEXT_RELEASE &&
|
||||
env.HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH
|
||||
) {
|
||||
return notFound()
|
||||
}
|
||||
return (
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
.page {
|
||||
background-color: var(--Base-Background-Primary-Normal);
|
||||
min-height: 50dvh;
|
||||
max-width: var(--max-width);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -1,8 +1,21 @@
|
||||
import { env } from "@/env/server"
|
||||
|
||||
import { setLang } from "@/i18n/serverContext"
|
||||
|
||||
import styles from "./page.module.css"
|
||||
|
||||
import type { LangParams, PageArgs } from "@/types/params"
|
||||
|
||||
export default function HotelReservationPage({ params }: PageArgs<LangParams>) {
|
||||
setLang(params.lang)
|
||||
return null
|
||||
|
||||
if (env.HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.page}>
|
||||
New booking flow! Please report errors/issues in Slack.
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
export { default } from "../../page"
|
||||
export { default } from "../page"
|
||||
|
||||
@@ -1 +1,21 @@
|
||||
export { default } from "../page"
|
||||
import { env } from "@/env/server"
|
||||
|
||||
import BookingWidget, { preload } from "@/components/BookingWidget"
|
||||
|
||||
import { PageArgs } from "@/types/params"
|
||||
|
||||
export default async function BookingWidgetHotelReservationPage({
|
||||
searchParams,
|
||||
}: PageArgs<{}, URLSearchParams>) {
|
||||
if (env.HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH) {
|
||||
return null
|
||||
}
|
||||
|
||||
preload()
|
||||
|
||||
return <BookingWidget searchParams={searchParams} />
|
||||
}
|
||||
|
||||
// TODO: This should just:
|
||||
// export { default } from "../page"
|
||||
// when current web is no more
|
||||
|
||||
@@ -8,7 +8,7 @@ import { setLang } from "@/i18n/serverContext"
|
||||
import type { LangParams, PageArgs } from "@/types/params"
|
||||
|
||||
export default function SitewideAlertPage({ params }: PageArgs<LangParams>) {
|
||||
if (env.HIDE_FOR_NEXT_RELEASE) {
|
||||
if (env.HIDE_SITE_WIDE_ALERT) {
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
@@ -57,9 +57,9 @@ export default async function RootLayout({
|
||||
<body>
|
||||
<ServerIntlProvider intl={{ defaultLocale, locale, messages }}>
|
||||
<TrpcProvider>
|
||||
{!env.HIDE_FOR_NEXT_RELEASE && <>{sitewidealert}</>}
|
||||
{sitewidealert}
|
||||
{header}
|
||||
{!env.HIDE_FOR_NEXT_RELEASE && <>{bookingwidget}</>}
|
||||
{bookingwidget}
|
||||
{children}
|
||||
{footer}
|
||||
<ToastHandler />
|
||||
|
||||
17
env/server.ts
vendored
17
env/server.ts
vendored
@@ -79,6 +79,20 @@ export const env = createEnv({
|
||||
.refine((s) => s === "true" || s === "false")
|
||||
// transform to boolean
|
||||
.transform((s) => s === "true"),
|
||||
HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH: z
|
||||
.string()
|
||||
// only allow "true" or "false"
|
||||
.refine((s) => s === "true" || s === "false")
|
||||
// transform to boolean
|
||||
.transform((s) => s === "true")
|
||||
.default("true"),
|
||||
HIDE_SITE_WIDE_ALERT: z
|
||||
.string()
|
||||
// only allow "true" or "false"
|
||||
.refine((s) => s === "true" || s === "false")
|
||||
// transform to boolean
|
||||
.transform((s) => s === "true")
|
||||
.default("true"),
|
||||
USE_NEW_REWARDS_ENDPOINT: z
|
||||
.string()
|
||||
// only allow "true" or "false"
|
||||
@@ -142,5 +156,8 @@ export const env = createEnv({
|
||||
GOOGLE_DYNAMIC_MAP_ID: process.env.GOOGLE_DYNAMIC_MAP_ID,
|
||||
HIDE_FOR_NEXT_RELEASE: process.env.HIDE_FOR_NEXT_RELEASE,
|
||||
USE_NEW_REWARDS_ENDPOINT: process.env.USE_NEW_REWARDS_ENDPOINT,
|
||||
HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH:
|
||||
process.env.HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH,
|
||||
HIDE_SITE_WIDE_ALERT: process.env.HIDE_SITE_WIDE_ALERT,
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user