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 }