feat(sw-453): fixed pr comments and default filter

This commit is contained in:
Pontus Dreij
2024-10-28 17:04:24 +01:00
parent c14b413a34
commit 62cf5dab80
17 changed files with 87 additions and 55 deletions

View File

@@ -1,6 +1,6 @@
"use client"
import { useCallback,useState } from "react"
import { useCallback, useState } from "react"
import { RoomsAvailability } from "@/server/routers/hotels/output"
@@ -9,8 +9,7 @@ import RoomSelection from "../RoomSelection"
import styles from "./rooms.module.css"
import { RoomPackageCodes } from "@/types/components/hotelReservation/selectRate/roomFilter"
import { RoomSelectionProps } from "@/types/components/hotelReservation/selectRate/roomSelection"
import type { RoomSelectionProps } from "@/types/components/hotelReservation/selectRate/roomSelection"
export default function Rooms({
roomsAvailability,
@@ -18,26 +17,35 @@ export default function Rooms({
user,
packages,
}: RoomSelectionProps) {
const [rooms, setRooms] = useState<RoomsAvailability>(roomsAvailability)
const defaultRooms = roomsAvailability.roomConfigurations.filter(
(room) => room.features.length === 0
)
const [rooms, setRooms] = useState<RoomsAvailability>({
...roomsAvailability,
roomConfigurations: defaultRooms,
})
console.log(rooms)
const handleFilter = useCallback(
(filter: Record<string, boolean | undefined>) => {
const selectedCodes = Object.keys(filter).filter((key) => filter[key])
if (selectedCodes.length === 0) {
setRooms(roomsAvailability)
setRooms({
...roomsAvailability,
roomConfigurations: defaultRooms,
})
return
}
const filteredRooms = roomsAvailability.roomConfigurations.filter(
(room) =>
room.features.some((feature) =>
selectedCodes.includes(feature.code as RoomPackageCodes)
)
room.features.some((feature) => selectedCodes.includes(feature.code))
)
setRooms({ ...roomsAvailability, roomConfigurations: filteredRooms })
},
[roomsAvailability]
[roomsAvailability, defaultRooms]
)
return (