Files
web/components/HotelReservation/SelectRate/RoomSelection/utils.ts
2024-10-15 15:48:23 +02:00

24 lines
837 B
TypeScript

import { SelectRateSearchParams } from "@/types/components/hotelReservation/selectRate/selectRate"
function getHotelReservationQueryParams(searchParams: URLSearchParams) {
const searchParamsObject: SelectRateSearchParams = Array.from(
searchParams.entries()
).reduce((acc, [key, value]) => {
const keys = key.replace(/\]/g, "").split(/\[|\./) // Split keys by '[' or '.'
keys.reduce((nestedAcc, k, i) => {
if (i === keys.length - 1) {
nestedAcc[k] = value // Assign value at the last key
} else {
if (!nestedAcc[k]) {
nestedAcc[k] = isNaN(Number(keys[i + 1])) ? {} : [] // Initialize as array or object
}
}
return nestedAcc[k]
}, acc)
return acc
}, {} as SelectRateSearchParams)
return searchParamsObject
}
export { getHotelReservationQueryParams }