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=""
|
GOOGLE_DYNAMIC_MAP_ID=""
|
||||||
|
|
||||||
HIDE_FOR_NEXT_RELEASE="false"
|
HIDE_FOR_NEXT_RELEASE="false"
|
||||||
|
HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH="false"
|
||||||
|
HIDE_SITE_WIDE_ALERT="false"
|
||||||
SHOW_SIGNUP_FLOW="true"
|
SHOW_SIGNUP_FLOW="true"
|
||||||
USE_NEW_REWARDS_ENDPOINT="true"
|
USE_NEW_REWARDS_ENDPOINT="true"
|
||||||
|
|||||||
@@ -44,3 +44,5 @@ GOOGLE_DYNAMIC_MAP_ID="test"
|
|||||||
HIDE_FOR_NEXT_RELEASE="true"
|
HIDE_FOR_NEXT_RELEASE="true"
|
||||||
SALESFORCE_PREFERENCE_BASE_URL="test"
|
SALESFORCE_PREFERENCE_BASE_URL="test"
|
||||||
USE_NEW_REWARDS_ENDPOINT="true"
|
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>> & {
|
}: React.PropsWithChildren<LayoutArgs<LangParams>> & {
|
||||||
sidePeek: React.ReactNode
|
sidePeek: React.ReactNode
|
||||||
}) {
|
}) {
|
||||||
if (env.HIDE_FOR_NEXT_RELEASE) {
|
if (
|
||||||
|
env.HIDE_FOR_NEXT_RELEASE &&
|
||||||
|
env.HIDE_BOOKINGWIDGET_HOTELRESERVATION_PATH
|
||||||
|
) {
|
||||||
return notFound()
|
return notFound()
|
||||||
}
|
}
|
||||||
return (
|
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 { setLang } from "@/i18n/serverContext"
|
||||||
|
|
||||||
|
import styles from "./page.module.css"
|
||||||
|
|
||||||
import type { LangParams, PageArgs } from "@/types/params"
|
import type { LangParams, PageArgs } from "@/types/params"
|
||||||
|
|
||||||
export default function HotelReservationPage({ params }: PageArgs<LangParams>) {
|
export default function HotelReservationPage({ params }: PageArgs<LangParams>) {
|
||||||
setLang(params.lang)
|
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"
|
import type { LangParams, PageArgs } from "@/types/params"
|
||||||
|
|
||||||
export default function SitewideAlertPage({ params }: PageArgs<LangParams>) {
|
export default function SitewideAlertPage({ params }: PageArgs<LangParams>) {
|
||||||
if (env.HIDE_FOR_NEXT_RELEASE) {
|
if (env.HIDE_SITE_WIDE_ALERT) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ export default async function RootLayout({
|
|||||||
<body>
|
<body>
|
||||||
<ServerIntlProvider intl={{ defaultLocale, locale, messages }}>
|
<ServerIntlProvider intl={{ defaultLocale, locale, messages }}>
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
{!env.HIDE_FOR_NEXT_RELEASE && <>{sitewidealert}</>}
|
{sitewidealert}
|
||||||
{header}
|
{header}
|
||||||
{!env.HIDE_FOR_NEXT_RELEASE && <>{bookingwidget}</>}
|
{bookingwidget}
|
||||||
{children}
|
{children}
|
||||||
{footer}
|
{footer}
|
||||||
<ToastHandler />
|
<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")
|
.refine((s) => s === "true" || s === "false")
|
||||||
// transform to boolean
|
// transform to boolean
|
||||||
.transform((s) => s === "true"),
|
.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
|
USE_NEW_REWARDS_ENDPOINT: z
|
||||||
.string()
|
.string()
|
||||||
// only allow "true" or "false"
|
// only allow "true" or "false"
|
||||||
@@ -142,5 +156,8 @@ export const env = createEnv({
|
|||||||
GOOGLE_DYNAMIC_MAP_ID: process.env.GOOGLE_DYNAMIC_MAP_ID,
|
GOOGLE_DYNAMIC_MAP_ID: process.env.GOOGLE_DYNAMIC_MAP_ID,
|
||||||
HIDE_FOR_NEXT_RELEASE: process.env.HIDE_FOR_NEXT_RELEASE,
|
HIDE_FOR_NEXT_RELEASE: process.env.HIDE_FOR_NEXT_RELEASE,
|
||||||
USE_NEW_REWARDS_ENDPOINT: process.env.USE_NEW_REWARDS_ENDPOINT,
|
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