fix(SW-925) Fix default packages

This commit is contained in:
Pontus Dreij
2024-11-20 09:46:44 +01:00
parent a0627b9ac5
commit 10d2e094e4
6 changed files with 32 additions and 16 deletions

View File

@@ -108,7 +108,7 @@ export default async function SelectRatePage({
roomsAvailability={roomsAvailability}
roomCategories={roomCategories ?? []}
user={user}
packages={packages ?? []}
availablePackages={packages ?? []}
/>
</>
)

View File

@@ -26,6 +26,7 @@ export default function RoomFilter({
onFilter,
filterOptions,
}: RoomFilterProps) {
console.log(filterOptions)
const initialFilterValues = useMemo(
() =>
filterOptions.reduce(

View File

@@ -14,7 +14,7 @@ export default function RoomSelection({
roomsAvailability,
roomCategories,
user,
packages,
availablePackages,
selectedPackages,
setRateSummary,
rateSummary,
@@ -72,7 +72,7 @@ export default function RoomSelection({
roomCategories={roomCategories}
handleSelectRate={setRateSummary}
selectedPackages={selectedPackages}
packages={packages}
packages={availablePackages}
/>
</li>
))}
@@ -81,7 +81,7 @@ export default function RoomSelection({
<RateSummary
rateSummary={rateSummary}
isUserLoggedIn={isUserLoggedIn}
packages={packages}
packages={availablePackages}
roomsAvailability={roomsAvailability}
/>
)}

View File

@@ -11,6 +11,7 @@ import { filterDuplicateRoomTypesByLowestPrice } from "./utils"
import styles from "./rooms.module.css"
import {
DefaultFilterOptions,
RoomPackageCodeEnum,
type RoomPackageCodes,
} from "@/types/components/hotelReservation/selectRate/roomFilter"
@@ -25,8 +26,9 @@ export default function Rooms({
roomsAvailability,
roomCategories = [],
user,
packages,
availablePackages,
}: SelectRateProps) {
console.log(availablePackages)
const visibleRooms: RoomConfiguration[] =
filterDuplicateRoomTypesByLowestPrice(roomsAvailability.roomConfigurations)
const [rateSummary, setRateSummary] = useState<Rate | null>(null)
@@ -47,6 +49,15 @@ export default function Rooms({
(state) => state.setRoomsAvailable
)
const defaultPackages: DefaultFilterOptions[] = [
{ code: RoomPackageCodeEnum.PET_ROOM, description: "Pet friendly" },
{ code: RoomPackageCodeEnum.ALLERGY_ROOM, description: "Allergy friendly" },
{
code: RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
description: "Accessibility",
},
]
const handleFilter = useCallback(
(filter: Record<RoomPackageCodeEnum, boolean | undefined>) => {
const filteredPackages = Object.keys(filter).filter(
@@ -104,7 +115,9 @@ export default function Rooms({
const petRoomPackage =
(filteredPackages.includes(RoomPackageCodeEnum.PET_ROOM) &&
packages.find((pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM)) ||
availablePackages.find(
(pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM
)) ||
undefined
const features = filteredRooms.find((room) =>
@@ -124,7 +137,7 @@ export default function Rooms({
roomsAvailability,
visibleRooms,
rateSummary,
packages,
availablePackages,
noRoomsAvailable,
setNoRoomsAvailable,
setRoomsAvailable,
@@ -136,13 +149,13 @@ export default function Rooms({
<RoomFilter
numberOfRooms={rooms.roomConfigurations.length}
onFilter={handleFilter}
filterOptions={packages}
filterOptions={defaultPackages}
/>
<RoomSelection
roomsAvailability={rooms}
roomCategories={roomCategories}
user={user}
packages={packages}
availablePackages={availablePackages}
selectedPackages={selectedPackages}
setRateSummary={setRateSummary}
rateSummary={rateSummary}

View File

@@ -1,19 +1,21 @@
import { z } from "zod"
import {
getRoomPackagesSchema,
packagesSchema,
} from "@/server/routers/hotels/output"
import { packagesSchema } from "@/server/routers/hotels/output"
export enum RoomPackageCodeEnum {
PET_ROOM = "PETR",
ALLERGY_ROOM = "ALLG",
ACCESSIBILITY_ROOM = "ACCE",
}
export interface DefaultFilterOptions {
code: RoomPackageCodeEnum
description: string
}
export interface RoomFilterProps {
numberOfRooms: number
onFilter: (filter: Record<string, boolean | undefined>) => void
filterOptions: RoomPackageData
filterOptions: DefaultFilterOptions[]
}
export type RoomPackage = z.output<typeof packagesSchema>

View File

@@ -8,7 +8,7 @@ export interface RoomSelectionProps {
roomsAvailability: RoomsAvailability
roomCategories: RoomData[]
user: SafeUser
packages: RoomPackageData | undefined
availablePackages: RoomPackageData | undefined
selectedPackages: RoomPackageCodes[]
setRateSummary: (rateSummary: Rate) => void
rateSummary: Rate | null
@@ -18,5 +18,5 @@ export interface SelectRateProps {
roomsAvailability: RoomsAvailability
roomCategories: RoomData[]
user: SafeUser
packages: RoomPackageData
availablePackages: RoomPackageData
}