Merged in fix/correct-booking-url-array-syntax (pull request #2294)

Fix correct array types in booking flow urls

* Fix correct array types in booking flow urls


Approved-by: Joakim Jäderberg
This commit is contained in:
Anton Gunnarsson
2025-06-05 07:50:01 +00:00
parent d3ba9d4a99
commit 4831982e14

View File

@@ -49,6 +49,10 @@ const keyRenameMap = {
child: "childrenInRoom", child: "childrenInRoom",
searchtype: "searchType", searchtype: "searchType",
} }
const typeHints = {
filters: "COMMA_SEPARATED_ARRAY",
packages: "COMMA_SEPARATED_ARRAY",
} as const
const adultsSchema = z.coerce.number().min(1).max(6).catch(0) const adultsSchema = z.coerce.number().min(1).max(6).catch(0)
const childAgeSchema = z.coerce.number().catch(-1) const childAgeSchema = z.coerce.number().catch(-1)
const childBedSchema = z.coerce.number().catch(-1) const childBedSchema = z.coerce.number().catch(-1)
@@ -60,6 +64,7 @@ export function parseBookingWidgetSearchParams(
try { try {
const result = parseSearchParams(searchParams, { const result = parseSearchParams(searchParams, {
keyRenameMap, keyRenameMap,
typeHints,
schema: z.object({ schema: z.object({
city: z.string().optional(), city: z.string().optional(),
hotelId: z.string().optional(), hotelId: z.string().optional(),
@@ -99,6 +104,7 @@ export function parseSelectHotelSearchParams(
try { try {
const result = parseSearchParams(searchParams, { const result = parseSearchParams(searchParams, {
keyRenameMap, keyRenameMap,
typeHints,
schema: z.object({ schema: z.object({
city: z.string(), city: z.string(),
hotelId: z.string().optional(), hotelId: z.string().optional(),
@@ -136,6 +142,7 @@ export function parseSelectRateSearchParams(
try { try {
const result = parseSearchParams(searchParams, { const result = parseSearchParams(searchParams, {
keyRenameMap, keyRenameMap,
typeHints,
schema: z.object({ schema: z.object({
city: z.string().optional(), city: z.string().optional(),
hotelId: z.string(), hotelId: z.string(),
@@ -190,6 +197,7 @@ export function parseDetailsSearchParams(
try { try {
const result = parseSearchParams(searchParams, { const result = parseSearchParams(searchParams, {
keyRenameMap, keyRenameMap,
typeHints,
schema: z.object({ schema: z.object({
city: z.string().optional(), city: z.string().optional(),
hotelId: z.string(), hotelId: z.string(),
@@ -236,6 +244,7 @@ export function serializeBookingSearchParams(
return serializeSearchParams(obj, { return serializeSearchParams(obj, {
keyRenameMap: reversedKeyRenameMap, keyRenameMap: reversedKeyRenameMap,
initialSearchParams, initialSearchParams,
typeHints,
}) })
} }