feat: sw-929 show booking widget on hotelreservation path and separate env for sitewide alerts

This commit is contained in:
Linus Flood
2024-11-20 12:40:23 +01:00
parent b7ffc8588d
commit 9f982dcea6
10 changed files with 72 additions and 7 deletions

View File

@@ -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"

View File

@@ -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"

View File

@@ -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 (

View File

@@ -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;
}

View File

@@ -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>
)
}

View File

@@ -1 +1 @@
export { default } from "../../page"
export { default } from "../page"

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
View File

@@ -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,
},
})