feat(sw-452): updated typing on util
This commit is contained in:
@@ -47,8 +47,8 @@ export default function FlexibilityOption({
|
||||
|
||||
function onChange() {
|
||||
const rate = {
|
||||
roomTypeCode: roomTypeCode,
|
||||
roomType: roomType,
|
||||
roomTypeCode,
|
||||
roomType,
|
||||
priceName: name,
|
||||
public: publicPrice,
|
||||
member: memberPrice,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useState } from "react"
|
||||
|
||||
import RateSummary from "./RateSummary"
|
||||
import RoomCard from "./RoomCard"
|
||||
import { getHotelReservationQueryParams } from "./utils"
|
||||
import getHotelReservationQueryParams from "./utils"
|
||||
|
||||
import styles from "./roomSelection.module.css"
|
||||
|
||||
|
||||
@@ -1,23 +1,28 @@
|
||||
import { SelectRateSearchParams } from "@/types/components/hotelReservation/selectRate/selectRate"
|
||||
|
||||
function getHotelReservationQueryParams(searchParams: URLSearchParams) {
|
||||
const searchParamsObject: SelectRateSearchParams = Array.from(
|
||||
const searchParamsObject: Record<string, unknown> = 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
|
||||
).reduce<Record<string, unknown>>(
|
||||
(acc, [key, value]) => {
|
||||
const keys = key.replace(/\]/g, "").split(/\[|\./) // Split keys by '[' or '.'
|
||||
keys.reduce((nestedAcc, k, i) => {
|
||||
if (i === keys.length - 1) {
|
||||
// Convert value to number if the key is 'adults' or 'age'
|
||||
;(nestedAcc as Record<string, unknown>)[k] =
|
||||
k === "adults" || k === "age" ? Number(value) : value
|
||||
} else {
|
||||
if (!nestedAcc[k]) {
|
||||
nestedAcc[k] = isNaN(Number(keys[i + 1])) ? {} : [] // Initialize as object or array
|
||||
}
|
||||
}
|
||||
}
|
||||
return nestedAcc[k]
|
||||
}, acc)
|
||||
return acc
|
||||
}, {} as SelectRateSearchParams)
|
||||
return searchParamsObject
|
||||
return nestedAcc[k] as Record<string, unknown>
|
||||
}, acc)
|
||||
return acc
|
||||
},
|
||||
{} as Record<string, unknown>
|
||||
)
|
||||
return searchParamsObject as SelectRateSearchParams
|
||||
}
|
||||
|
||||
export { getHotelReservationQueryParams }
|
||||
export default getHotelReservationQueryParams
|
||||
|
||||
Reference in New Issue
Block a user