Merged in chore/cleanup-after-trpc-migration (pull request #2457)
Chore/cleanup after trpc migration * Clean up TODOs * Rename REDEMPTION constant to SEARCH_TYPE_REDEMPTION * Update dependencies Remove unused deps from scandic-web Add missing deps to trpc package * Update self-referencing imports * Remove unused variables from scandic-web env * Fix missing graphql-tag package * Actually fix * Remove unused env var Approved-by: Christian Andolf Approved-by: Linus Flood
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
"eslint-plugin-formatjs": "^5.3.1",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"typescript": "5.8.3",
|
||||
"typescript-plugin-css-modules": "^5.1.0"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { notFound } from "next/navigation"
|
||||
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import { combineRegExps, rateTypeRegex } from "@/constants/booking"
|
||||
|
||||
@@ -24,7 +24,7 @@ export default async function SelectRatePage(
|
||||
if (!booking) return notFound()
|
||||
|
||||
const isMultiRoom = booking.rooms.length > 1
|
||||
const isRedemption = booking.searchType === REDEMPTION
|
||||
const isRedemption = booking.searchType === SEARCH_TYPE_REDEMPTION
|
||||
const isArbOrVoucher = booking.bookingCode
|
||||
? singleRoomRateTypes.test(booking.bookingCode)
|
||||
: false
|
||||
|
||||
@@ -7,7 +7,7 @@ import { FormProvider, useForm } from "react-hook-form"
|
||||
|
||||
import { dt } from "@scandic-hotels/common/dt"
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import { trpc } from "@/lib/trpc/client"
|
||||
import { StickyElementNameEnum } from "@/stores/sticky-position"
|
||||
@@ -123,7 +123,7 @@ export default function BookingWidgetClient({
|
||||
value: selectedBookingCode,
|
||||
remember: false,
|
||||
},
|
||||
redemption: data.searchType === REDEMPTION,
|
||||
redemption: data.searchType === SEARCH_TYPE_REDEMPTION,
|
||||
rooms: defaultRoomsData,
|
||||
city: data.city || undefined,
|
||||
hotel: hotelId,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useMediaQuery } from "usehooks-ts"
|
||||
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import Modal from "@/components/Modal"
|
||||
import Button from "@/components/TempDesignSystem/Button"
|
||||
@@ -65,11 +65,11 @@ export default function BookingCode() {
|
||||
shouldDirty: true,
|
||||
})
|
||||
|
||||
if (getValues(REDEMPTION)) {
|
||||
if (getValues(SEARCH_TYPE_REDEMPTION)) {
|
||||
// Remove the redemption as user types booking code and show notification for the same
|
||||
// Add delay to handle table mode rendering
|
||||
setTimeout(function () {
|
||||
setValue(REDEMPTION, false, {
|
||||
setValue(SEARCH_TYPE_REDEMPTION, false, {
|
||||
shouldValidate: true,
|
||||
shouldDirty: true,
|
||||
})
|
||||
@@ -321,7 +321,7 @@ export function RemoveExtraRooms({ ...props }: ButtonProps) {
|
||||
const rooms = getValues("rooms")[0]
|
||||
setValue("rooms", [rooms], { shouldValidate: true, shouldDirty: true })
|
||||
trigger("bookingCode.value")
|
||||
trigger(REDEMPTION)
|
||||
trigger(SEARCH_TYPE_REDEMPTION)
|
||||
}, 300)
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useMediaQuery } from "usehooks-ts"
|
||||
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import Modal from "@/components/Modal"
|
||||
import Button from "@/components/TempDesignSystem/Button"
|
||||
@@ -38,26 +38,26 @@ export default function RewardNight() {
|
||||
defaultMessage:
|
||||
"To book a reward night, make sure you're logged in to your Scandic Friends account.",
|
||||
})
|
||||
const redemptionErr = errors[REDEMPTION]
|
||||
const redemptionErr = errors[SEARCH_TYPE_REDEMPTION]
|
||||
const isDesktop = useMediaQuery("(min-width: 767px)")
|
||||
|
||||
function validateRedemption(value: boolean) {
|
||||
// Validate redemption as per the rules defined in the schema
|
||||
trigger(REDEMPTION)
|
||||
trigger(SEARCH_TYPE_REDEMPTION)
|
||||
if (value && getValues("bookingCode.value")) {
|
||||
setValue("bookingCode.flag", false)
|
||||
setValue("bookingCode.value", "", { shouldValidate: true })
|
||||
// Hide the notification popup after 5 seconds by re-triggering validation
|
||||
// This is kept consistent with location search field error notification timeout
|
||||
setTimeout(() => {
|
||||
trigger(REDEMPTION)
|
||||
trigger(SEARCH_TYPE_REDEMPTION)
|
||||
}, 5000)
|
||||
}
|
||||
}
|
||||
|
||||
const resetOnMultiroomError = useCallback(() => {
|
||||
if (isMultiRoomError(redemptionErr?.message) && isDesktop) {
|
||||
setValue(REDEMPTION, false, { shouldValidate: true })
|
||||
setValue(SEARCH_TYPE_REDEMPTION, false, { shouldValidate: true })
|
||||
}
|
||||
}, [redemptionErr?.message, setValue, isDesktop])
|
||||
|
||||
@@ -85,7 +85,7 @@ export default function RewardNight() {
|
||||
<div ref={ref} onBlur={(e) => closeOnBlur(e.nativeEvent)}>
|
||||
<Checkbox
|
||||
hideError
|
||||
name={REDEMPTION}
|
||||
name={SEARCH_TYPE_REDEMPTION}
|
||||
registerOptions={{
|
||||
onChange: (e) => {
|
||||
validateRedemption(e.target.value)
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useIntl } from "react-intl"
|
||||
import { dt } from "@scandic-hotels/common/dt"
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import { hotelreservation } from "@/constants/routes/hotelReservation"
|
||||
|
||||
@@ -111,7 +111,7 @@ export default function FormContent({
|
||||
</div>
|
||||
<div className={`${styles.buttonContainer} ${styles.hideOnTablet}`}>
|
||||
{isMultiRoomError(errors.bookingCode?.value?.message) ||
|
||||
isMultiRoomError(errors[REDEMPTION]?.message) ? (
|
||||
isMultiRoomError(errors[SEARCH_TYPE_REDEMPTION]?.message) ? (
|
||||
<div className={styles.showOnMobile}>
|
||||
<RemoveExtraRooms size="medium" fullWidth />
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { Form as FormRAC } from "react-aria-components"
|
||||
import { useFormContext } from "react-hook-form"
|
||||
|
||||
import { selectRate } from "@scandic-hotels/common/constants/routes/hotelReservation"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import {
|
||||
selectHotel,
|
||||
@@ -60,7 +60,7 @@ export default function Form({ type, onClose }: BookingWidgetFormProps) {
|
||||
? { bookingCode: data.bookingCode.value }
|
||||
: {}),
|
||||
// Followed current url structure to keep searchtype=redemption param incase of reward night
|
||||
...(data.redemption ? { searchType: REDEMPTION } : {}),
|
||||
...(data.redemption ? { searchType: SEARCH_TYPE_REDEMPTION } : {}),
|
||||
})
|
||||
|
||||
onClose()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { z } from "zod"
|
||||
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { ChildBedMapEnum } from "@scandic-hotels/trpc/enums/childBedMapEnum"
|
||||
|
||||
export const bookingWidgetErrors = {
|
||||
@@ -104,7 +104,7 @@ export const bookingWidgetSchema = z
|
||||
ctx.addIssue({
|
||||
code: z.ZodIssueCode.custom,
|
||||
message: bookingWidgetErrors.MULTIROOM_REWARD_NIGHT_UNAVAILABLE,
|
||||
path: [REDEMPTION],
|
||||
path: [SEARCH_TYPE_REDEMPTION],
|
||||
})
|
||||
ctx.addIssue({
|
||||
code: z.ZodIssueCode.custom,
|
||||
@@ -116,7 +116,7 @@ export const bookingWidgetSchema = z
|
||||
ctx.addIssue({
|
||||
code: z.ZodIssueCode.custom,
|
||||
message: bookingWidgetErrors.CODE_VOUCHER_REWARD_NIGHT_UNAVAILABLE,
|
||||
path: [REDEMPTION],
|
||||
path: [SEARCH_TYPE_REDEMPTION],
|
||||
})
|
||||
ctx.addIssue({
|
||||
code: z.ZodIssueCode.custom,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useIntl } from "react-intl"
|
||||
|
||||
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import Button from "../TempDesignSystem/Button"
|
||||
import { Tooltip } from "../TempDesignSystem/Tooltip"
|
||||
@@ -39,7 +39,7 @@ export default function GuestsRoomsPickerDialog({
|
||||
defaultMessage: "Done",
|
||||
})
|
||||
// Disable add room if booking code is either voucher or corporate cheque, or reward night is enabled
|
||||
const addRoomDisabledTextForSpecialRate = getValues(REDEMPTION)
|
||||
const addRoomDisabledTextForSpecialRate = getValues(SEARCH_TYPE_REDEMPTION)
|
||||
? intl.formatMessage({
|
||||
defaultMessage:
|
||||
"Multi-room booking is not available with reward night.",
|
||||
@@ -73,7 +73,7 @@ export default function GuestsRoomsPickerDialog({
|
||||
|
||||
if (updatedRooms.length === 1) {
|
||||
trigger("bookingCode.value")
|
||||
trigger(REDEMPTION)
|
||||
trigger(SEARCH_TYPE_REDEMPTION)
|
||||
}
|
||||
},
|
||||
[roomsValue, trigger, setValue]
|
||||
|
||||
@@ -13,7 +13,7 @@ import { selectRate } from "@scandic-hotels/common/constants/routes/hotelReserva
|
||||
import { Button } from "@scandic-hotels/design-system/Button"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
import { bedTypeMap } from "@scandic-hotels/trpc/constants/bedTypeMap"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { BookingStatusEnum } from "@scandic-hotels/trpc/enums/bookingStatus"
|
||||
import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
|
||||
|
||||
@@ -517,7 +517,7 @@ export default function PaymentClient({
|
||||
onSubmit={methods.handleSubmit(handleSubmit)}
|
||||
id={formId}
|
||||
>
|
||||
{booking.searchType === REDEMPTION ? (
|
||||
{booking.searchType === SEARCH_TYPE_REDEMPTION ? (
|
||||
<ConfirmBookingRedemption />
|
||||
) : hasOnlyFlexRates && !bookingMustBeGuaranteed ? (
|
||||
<ConfirmBooking savedCreditCards={savedCreditCards} />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { differenceInCalendarDays, format, isWeekend } from "date-fns"
|
||||
|
||||
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { ChildBedMapEnum } from "@scandic-hotels/trpc/enums/childBedMapEnum"
|
||||
import { PackageTypeEnum } from "@scandic-hotels/trpc/enums/packages"
|
||||
import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
|
||||
@@ -192,9 +192,9 @@ export function getTracking(
|
||||
})
|
||||
),
|
||||
].join(","),
|
||||
rewardNight: booking.searchType === REDEMPTION ? "yes" : "no",
|
||||
rewardNight: booking.searchType === SEARCH_TYPE_REDEMPTION ? "yes" : "no",
|
||||
rewardNightAvailability:
|
||||
booking.searchType === REDEMPTION ? "true" : "false",
|
||||
booking.searchType === SEARCH_TYPE_REDEMPTION ? "true" : "false",
|
||||
roomPrice: calcTotalRoomPrice(storedRooms, isMember),
|
||||
roomTypeCode: rooms.map((room) => room.roomTypeCode).join("|"),
|
||||
roomTypeName: rooms.map((room) => room.roomType).join("|"),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useSearchParams } from "next/navigation"
|
||||
import React from "react"
|
||||
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import TrackingSDK from "@/components/TrackingSDK"
|
||||
import useLang from "@/hooks/useLang"
|
||||
@@ -57,7 +57,7 @@ export default function Tracking({
|
||||
city,
|
||||
paramCity,
|
||||
bookingCode,
|
||||
searchType === REDEMPTION,
|
||||
searchType === SEARCH_TYPE_REDEMPTION,
|
||||
rooms
|
||||
)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import BedSingleIcon from "@scandic-hotels/design-system/Icons/BedSingleIcon"
|
||||
import BedSofaExtraIcon from "@scandic-hotels/design-system/Icons/BedSofaExtraIcon"
|
||||
import BedTwinIcon from "@scandic-hotels/design-system/Icons/BedTwinIcon"
|
||||
import BedWallExtraIcon from "@scandic-hotels/design-system/Icons/BedWallExtraIcon"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import type { PaymentMethodEnum } from "@scandic-hotels/common/constants/paymentMethod"
|
||||
import type { IconProps } from "@scandic-hotels/design-system/Icons"
|
||||
@@ -19,7 +19,7 @@ import type { JSX } from "react"
|
||||
|
||||
export const FamilyAndFriendsCodes = ["D000029555", "D000029271", "D000029195"]
|
||||
|
||||
export const bookingSearchTypes = [REDEMPTION] as const
|
||||
export const bookingSearchTypes = [SEARCH_TYPE_REDEMPTION] as const
|
||||
export const SEARCHTYPE = "searchtype"
|
||||
|
||||
export const MEMBERSHIP_FAILED_ERROR = "MembershipFailedError"
|
||||
|
||||
37
apps/scandic-web/env/server.ts
vendored
37
apps/scandic-web/env/server.ts
vendored
@@ -1,8 +1,6 @@
|
||||
import { createEnv } from "@t3-oss/env-nextjs"
|
||||
import { z } from "zod"
|
||||
|
||||
const TWENTYFOUR_HOURS = 24 * 60 * 60
|
||||
|
||||
export const env = createEnv({
|
||||
/**
|
||||
* Due to t3-env only checking typeof window === "undefined"
|
||||
@@ -21,14 +19,10 @@ export const env = createEnv({
|
||||
// transform to boolean
|
||||
.transform((s) => s === "true")
|
||||
.default("false"),
|
||||
API_BASEURL: z.string(),
|
||||
BUILD_ID: z.string().default("64rYXBu8o2eHp0Jf"),
|
||||
CMS_ACCESS_TOKEN: z.string(),
|
||||
CMS_API_KEY: z.string(),
|
||||
CMS_ENVIRONMENT: z.enum(["development", "production", "stage", "test"]),
|
||||
CMS_PREVIEW_TOKEN: z.string(),
|
||||
CMS_PREVIEW_URL: z.string(),
|
||||
CMS_URL: z.string(),
|
||||
CMS_BRANCH: z.enum(["development", "production"]),
|
||||
CURITY_CLIENT_ID_USER: z.string().default("scandichotels-web"),
|
||||
CURITY_CLIENT_ID_SERVICE: z.string().default("scandichotels-web-backend"),
|
||||
@@ -49,15 +43,9 @@ export const env = createEnv({
|
||||
NEXTAUTH_URL: z.string().default(""),
|
||||
AUTH_URL: z.string().default(""),
|
||||
NODE_ENV: z.enum(["development", "test", "production"]),
|
||||
PRINT_QUERY: z
|
||||
.string()
|
||||
.refine((s) => s === "true" || s === "false")
|
||||
.transform((s) => s === "true")
|
||||
.default("false"),
|
||||
PUBLIC_URL: z.string().default(""),
|
||||
REVALIDATE_SECRET: z.string(),
|
||||
SITEMAP_SYNC_SECRET: z.string(),
|
||||
SALESFORCE_PREFERENCE_BASE_URL: z.string(),
|
||||
SEAMLESS_LOGIN_DA: z
|
||||
.string()
|
||||
.transform((s) => replaceTopLevelDomain(s, "dk")),
|
||||
@@ -102,7 +90,6 @@ export const env = createEnv({
|
||||
.transform((s) => s === "true")
|
||||
.default("false"),
|
||||
WEBVIEW_ENCRYPTION_KEY: z.string(),
|
||||
BOOKING_ENCRYPTION_KEY: z.string(),
|
||||
GOOGLE_STATIC_MAP_KEY: z.string(),
|
||||
GOOGLE_STATIC_MAP_SIGNATURE_SECRET: z.string(),
|
||||
GOOGLE_DYNAMIC_MAP_ID: z.string(),
|
||||
@@ -139,9 +126,7 @@ export const env = createEnv({
|
||||
SENTRY_SERVER_SAMPLERATE: z.coerce.number().default(0.001),
|
||||
|
||||
// TODO: remove defaults for SAS value when we know that netlify has 'room' for it
|
||||
SAS_API_ENDPOINT: z.string().default(""),
|
||||
SAS_AUTH_ENDPOINT: z.string().default(""),
|
||||
SAS_OCP_APIM: z.string().default(""),
|
||||
SAS_AUTH_CLIENTID: z.string().default(""),
|
||||
SAS_POINT_TRANSFER_ENABLED: z
|
||||
.string()
|
||||
@@ -150,16 +135,6 @@ export const env = createEnv({
|
||||
// transform to boolean
|
||||
.transform((s) => s === "true")
|
||||
.default("false"),
|
||||
CACHE_TIME_HOTELS: z.coerce
|
||||
.number()
|
||||
.default(TWENTYFOUR_HOURS)
|
||||
.transform((val) =>
|
||||
process.env.CMS_ENVIRONMENT === "test" ? 5 * 60 : val
|
||||
),
|
||||
CACHE_TIME_CITY_SEARCH: z.coerce
|
||||
.number()
|
||||
.default(10 * 60)
|
||||
.transform((val) => (process.env.CMS_ENVIRONMENT === "test" ? 60 : val)),
|
||||
REDIS_API_HOST: z.string().optional(),
|
||||
REDIS_API_KEY: z.string().optional(),
|
||||
BRANCH:
|
||||
@@ -195,14 +170,10 @@ export const env = createEnv({
|
||||
ADOBE_SCRIPT_SRC: process.env.ADOBE_SCRIPT_SRC,
|
||||
ADOBE_SDK_SCRIPT_SRC: process.env.ADOBE_SDK_SCRIPT_SRC,
|
||||
ENABLE_GTMSCRIPT: process.env.ENABLE_GTMSCRIPT,
|
||||
API_BASEURL: process.env.API_BASEURL,
|
||||
BUILD_ID: process.env.BUILD_ID,
|
||||
CMS_ACCESS_TOKEN: process.env.CMS_ACCESS_TOKEN,
|
||||
CMS_API_KEY: process.env.CMS_API_KEY,
|
||||
CMS_ENVIRONMENT: process.env.CMS_ENVIRONMENT,
|
||||
CMS_PREVIEW_TOKEN: process.env.CMS_PREVIEW_TOKEN,
|
||||
CMS_PREVIEW_URL: process.env.CMS_PREVIEW_URL,
|
||||
CMS_URL: process.env.CMS_URL,
|
||||
CMS_BRANCH: process.env.CMS_BRANCH,
|
||||
CURITY_CLIENT_ID_USER: process.env.CURITY_CLIENT_ID_USER,
|
||||
CURITY_CLIENT_ID_SERVICE: process.env.CURITY_CLIENT_ID_SERVICE,
|
||||
@@ -218,11 +189,9 @@ export const env = createEnv({
|
||||
NEXTAUTH_URL: process.env.NEXTAUTH_URL,
|
||||
AUTH_URL: process.env.AUTH_URL,
|
||||
NODE_ENV: process.env.NODE_ENV,
|
||||
PRINT_QUERY: process.env.PRINT_QUERY,
|
||||
PUBLIC_URL: process.env.NEXT_PUBLIC_PUBLIC_URL,
|
||||
REVALIDATE_SECRET: process.env.REVALIDATE_SECRET,
|
||||
SITEMAP_SYNC_SECRET: process.env.SITEMAP_SYNC_SECRET,
|
||||
SALESFORCE_PREFERENCE_BASE_URL: process.env.SALESFORCE_PREFERENCE_BASE_URL,
|
||||
SEAMLESS_LOGIN_DA:
|
||||
process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_DA,
|
||||
SEAMLESS_LOGIN_DE:
|
||||
@@ -249,7 +218,6 @@ export const env = createEnv({
|
||||
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_SV,
|
||||
SHOW_SIGNUP_FLOW: process.env.SHOW_SIGNUP_FLOW,
|
||||
WEBVIEW_ENCRYPTION_KEY: process.env.WEBVIEW_ENCRYPTION_KEY,
|
||||
BOOKING_ENCRYPTION_KEY: process.env.BOOKING_ENCRYPTION_KEY,
|
||||
GOOGLE_STATIC_MAP_KEY: process.env.GOOGLE_STATIC_MAP_KEY,
|
||||
GOOGLE_STATIC_MAP_SIGNATURE_SECRET:
|
||||
process.env.GOOGLE_STATIC_MAP_SIGNATURE_SECRET,
|
||||
@@ -262,15 +230,10 @@ export const env = createEnv({
|
||||
SENTRY_ENVIRONMENT: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
|
||||
SENTRY_SERVER_SAMPLERATE: process.env.SENTRY_SERVER_SAMPLERATE,
|
||||
|
||||
SAS_API_ENDPOINT: process.env.SAS_API_ENDPOINT,
|
||||
SAS_AUTH_ENDPOINT: process.env.SAS_AUTH_ENDPOINT,
|
||||
SAS_OCP_APIM: process.env.SAS_OCP_APIM,
|
||||
SAS_AUTH_CLIENTID: process.env.SAS_AUTH_CLIENTID,
|
||||
SAS_POINT_TRANSFER_ENABLED: process.env.SAS_POINT_TRANSFER_ENABLED,
|
||||
|
||||
CACHE_TIME_HOTELS: process.env.CACHE_TIME_HOTELS,
|
||||
CACHE_TIME_CITY_SEARCH: process.env.CACHE_TIME_CITY_SEARCH,
|
||||
|
||||
REDIS_API_HOST: process.env.REDIS_API_HOST,
|
||||
REDIS_API_KEY: process.env.REDIS_API_KEY,
|
||||
BRANCH: process.env.BRANCH,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { type NextMiddleware, NextResponse } from "next/server"
|
||||
|
||||
import { findLang } from "@scandic-hotels/common/utils/languages"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { isValidSession } from "@scandic-hotels/trpc/utils/session"
|
||||
|
||||
import { SEARCHTYPE } from "@/constants/booking"
|
||||
@@ -17,7 +17,7 @@ import type { MiddlewareMatcher } from "@/types/middleware"
|
||||
export const middleware: NextMiddleware = async (request) => {
|
||||
// Redirect user to login if reward nights search and not logged in
|
||||
const isRedemption =
|
||||
request.nextUrl.searchParams.get(SEARCHTYPE) === REDEMPTION
|
||||
request.nextUrl.searchParams.get(SEARCHTYPE) === SEARCH_TYPE_REDEMPTION
|
||||
const session = await auth() // Check for user session
|
||||
if (isRedemption && !isValidSession(session)) {
|
||||
const lang = findLang(request.nextUrl.pathname)!
|
||||
|
||||
@@ -76,11 +76,7 @@
|
||||
"embla-carousel": "^8.6.0",
|
||||
"embla-carousel-react": "^8.6.0",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fetch-retry": "^6.0.0",
|
||||
"flat": "^6.0.1",
|
||||
"fuse.js": "^7.1.0",
|
||||
"graphql": "^16.11.0",
|
||||
"graphql-request": "^7.1.2",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"html-react-parser": "^5.2.3",
|
||||
"ics": "^3.8.1",
|
||||
@@ -106,11 +102,9 @@
|
||||
"react-intl": "^7.1.11",
|
||||
"react-to-print": "^3.1.0",
|
||||
"server-only": "^0.0.1",
|
||||
"slugify": "^1.6.6",
|
||||
"sonner": "^2.0.3",
|
||||
"supercluster": "^8.0.1",
|
||||
"usehooks-ts": "3.1.1",
|
||||
"uuid": "^11.1.0",
|
||||
"zod": "^3.24.4",
|
||||
"zustand": "^4.5.2"
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@ import { produce } from "immer"
|
||||
import { useContext } from "react"
|
||||
import { create, useStore } from "zustand"
|
||||
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
|
||||
import { AvailabilityEnum } from "@scandic-hotels/trpc/enums/selectHotel"
|
||||
|
||||
@@ -120,7 +120,7 @@ export function createRatesStore({
|
||||
activeRoom = unselectedRoomIndex
|
||||
}
|
||||
|
||||
const isRedemptionBooking = booking.searchType === REDEMPTION
|
||||
const isRedemptionBooking = booking.searchType === SEARCH_TYPE_REDEMPTION
|
||||
|
||||
const defaultCurrency = findDefaultCurrency(roomsAvailability)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { notFound } from "next/navigation"
|
||||
|
||||
import { safeTry } from "@scandic-hotels/common/utils/safeTry"
|
||||
import { REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
import { generateChildrenString } from "@scandic-hotels/trpc/routers/hotels/helpers"
|
||||
import {
|
||||
type HotelLocation,
|
||||
@@ -101,6 +101,6 @@ export async function getHotelSearchDetails(
|
||||
cityIdentifier,
|
||||
hotel,
|
||||
noOfRooms: rooms?.length ?? 0,
|
||||
redemption: params.searchType === REDEMPTION,
|
||||
redemption: params.searchType === SEARCH_TYPE_REDEMPTION,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user