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:
Anton Gunnarsson
2025-06-30 12:08:19 +00:00
parent 8127cfc73b
commit 4e1cb01b84
53 changed files with 131 additions and 233 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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("|"),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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