fix(SW-925) Fix default packages
This commit is contained in:
@@ -108,7 +108,7 @@ export default async function SelectRatePage({
|
|||||||
roomsAvailability={roomsAvailability}
|
roomsAvailability={roomsAvailability}
|
||||||
roomCategories={roomCategories ?? []}
|
roomCategories={roomCategories ?? []}
|
||||||
user={user}
|
user={user}
|
||||||
packages={packages ?? []}
|
availablePackages={packages ?? []}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ export default function RoomFilter({
|
|||||||
onFilter,
|
onFilter,
|
||||||
filterOptions,
|
filterOptions,
|
||||||
}: RoomFilterProps) {
|
}: RoomFilterProps) {
|
||||||
|
console.log(filterOptions)
|
||||||
const initialFilterValues = useMemo(
|
const initialFilterValues = useMemo(
|
||||||
() =>
|
() =>
|
||||||
filterOptions.reduce(
|
filterOptions.reduce(
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function RoomSelection({
|
|||||||
roomsAvailability,
|
roomsAvailability,
|
||||||
roomCategories,
|
roomCategories,
|
||||||
user,
|
user,
|
||||||
packages,
|
availablePackages,
|
||||||
selectedPackages,
|
selectedPackages,
|
||||||
setRateSummary,
|
setRateSummary,
|
||||||
rateSummary,
|
rateSummary,
|
||||||
@@ -72,7 +72,7 @@ export default function RoomSelection({
|
|||||||
roomCategories={roomCategories}
|
roomCategories={roomCategories}
|
||||||
handleSelectRate={setRateSummary}
|
handleSelectRate={setRateSummary}
|
||||||
selectedPackages={selectedPackages}
|
selectedPackages={selectedPackages}
|
||||||
packages={packages}
|
packages={availablePackages}
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
@@ -81,7 +81,7 @@ export default function RoomSelection({
|
|||||||
<RateSummary
|
<RateSummary
|
||||||
rateSummary={rateSummary}
|
rateSummary={rateSummary}
|
||||||
isUserLoggedIn={isUserLoggedIn}
|
isUserLoggedIn={isUserLoggedIn}
|
||||||
packages={packages}
|
packages={availablePackages}
|
||||||
roomsAvailability={roomsAvailability}
|
roomsAvailability={roomsAvailability}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { filterDuplicateRoomTypesByLowestPrice } from "./utils"
|
|||||||
import styles from "./rooms.module.css"
|
import styles from "./rooms.module.css"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
DefaultFilterOptions,
|
||||||
RoomPackageCodeEnum,
|
RoomPackageCodeEnum,
|
||||||
type RoomPackageCodes,
|
type RoomPackageCodes,
|
||||||
} from "@/types/components/hotelReservation/selectRate/roomFilter"
|
} from "@/types/components/hotelReservation/selectRate/roomFilter"
|
||||||
@@ -25,8 +26,9 @@ export default function Rooms({
|
|||||||
roomsAvailability,
|
roomsAvailability,
|
||||||
roomCategories = [],
|
roomCategories = [],
|
||||||
user,
|
user,
|
||||||
packages,
|
availablePackages,
|
||||||
}: SelectRateProps) {
|
}: SelectRateProps) {
|
||||||
|
console.log(availablePackages)
|
||||||
const visibleRooms: RoomConfiguration[] =
|
const visibleRooms: RoomConfiguration[] =
|
||||||
filterDuplicateRoomTypesByLowestPrice(roomsAvailability.roomConfigurations)
|
filterDuplicateRoomTypesByLowestPrice(roomsAvailability.roomConfigurations)
|
||||||
const [rateSummary, setRateSummary] = useState<Rate | null>(null)
|
const [rateSummary, setRateSummary] = useState<Rate | null>(null)
|
||||||
@@ -47,6 +49,15 @@ export default function Rooms({
|
|||||||
(state) => state.setRoomsAvailable
|
(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(
|
const handleFilter = useCallback(
|
||||||
(filter: Record<RoomPackageCodeEnum, boolean | undefined>) => {
|
(filter: Record<RoomPackageCodeEnum, boolean | undefined>) => {
|
||||||
const filteredPackages = Object.keys(filter).filter(
|
const filteredPackages = Object.keys(filter).filter(
|
||||||
@@ -104,7 +115,9 @@ export default function Rooms({
|
|||||||
|
|
||||||
const petRoomPackage =
|
const petRoomPackage =
|
||||||
(filteredPackages.includes(RoomPackageCodeEnum.PET_ROOM) &&
|
(filteredPackages.includes(RoomPackageCodeEnum.PET_ROOM) &&
|
||||||
packages.find((pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM)) ||
|
availablePackages.find(
|
||||||
|
(pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM
|
||||||
|
)) ||
|
||||||
undefined
|
undefined
|
||||||
|
|
||||||
const features = filteredRooms.find((room) =>
|
const features = filteredRooms.find((room) =>
|
||||||
@@ -124,7 +137,7 @@ export default function Rooms({
|
|||||||
roomsAvailability,
|
roomsAvailability,
|
||||||
visibleRooms,
|
visibleRooms,
|
||||||
rateSummary,
|
rateSummary,
|
||||||
packages,
|
availablePackages,
|
||||||
noRoomsAvailable,
|
noRoomsAvailable,
|
||||||
setNoRoomsAvailable,
|
setNoRoomsAvailable,
|
||||||
setRoomsAvailable,
|
setRoomsAvailable,
|
||||||
@@ -136,13 +149,13 @@ export default function Rooms({
|
|||||||
<RoomFilter
|
<RoomFilter
|
||||||
numberOfRooms={rooms.roomConfigurations.length}
|
numberOfRooms={rooms.roomConfigurations.length}
|
||||||
onFilter={handleFilter}
|
onFilter={handleFilter}
|
||||||
filterOptions={packages}
|
filterOptions={defaultPackages}
|
||||||
/>
|
/>
|
||||||
<RoomSelection
|
<RoomSelection
|
||||||
roomsAvailability={rooms}
|
roomsAvailability={rooms}
|
||||||
roomCategories={roomCategories}
|
roomCategories={roomCategories}
|
||||||
user={user}
|
user={user}
|
||||||
packages={packages}
|
availablePackages={availablePackages}
|
||||||
selectedPackages={selectedPackages}
|
selectedPackages={selectedPackages}
|
||||||
setRateSummary={setRateSummary}
|
setRateSummary={setRateSummary}
|
||||||
rateSummary={rateSummary}
|
rateSummary={rateSummary}
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
|
|
||||||
import {
|
import { packagesSchema } from "@/server/routers/hotels/output"
|
||||||
getRoomPackagesSchema,
|
|
||||||
packagesSchema,
|
|
||||||
} from "@/server/routers/hotels/output"
|
|
||||||
|
|
||||||
export enum RoomPackageCodeEnum {
|
export enum RoomPackageCodeEnum {
|
||||||
PET_ROOM = "PETR",
|
PET_ROOM = "PETR",
|
||||||
ALLERGY_ROOM = "ALLG",
|
ALLERGY_ROOM = "ALLG",
|
||||||
ACCESSIBILITY_ROOM = "ACCE",
|
ACCESSIBILITY_ROOM = "ACCE",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface DefaultFilterOptions {
|
||||||
|
code: RoomPackageCodeEnum
|
||||||
|
description: string
|
||||||
|
}
|
||||||
export interface RoomFilterProps {
|
export interface RoomFilterProps {
|
||||||
numberOfRooms: number
|
numberOfRooms: number
|
||||||
onFilter: (filter: Record<string, boolean | undefined>) => void
|
onFilter: (filter: Record<string, boolean | undefined>) => void
|
||||||
filterOptions: RoomPackageData
|
filterOptions: DefaultFilterOptions[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RoomPackage = z.output<typeof packagesSchema>
|
export type RoomPackage = z.output<typeof packagesSchema>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export interface RoomSelectionProps {
|
|||||||
roomsAvailability: RoomsAvailability
|
roomsAvailability: RoomsAvailability
|
||||||
roomCategories: RoomData[]
|
roomCategories: RoomData[]
|
||||||
user: SafeUser
|
user: SafeUser
|
||||||
packages: RoomPackageData | undefined
|
availablePackages: RoomPackageData | undefined
|
||||||
selectedPackages: RoomPackageCodes[]
|
selectedPackages: RoomPackageCodes[]
|
||||||
setRateSummary: (rateSummary: Rate) => void
|
setRateSummary: (rateSummary: Rate) => void
|
||||||
rateSummary: Rate | null
|
rateSummary: Rate | null
|
||||||
@@ -18,5 +18,5 @@ export interface SelectRateProps {
|
|||||||
roomsAvailability: RoomsAvailability
|
roomsAvailability: RoomsAvailability
|
||||||
roomCategories: RoomData[]
|
roomCategories: RoomData[]
|
||||||
user: SafeUser
|
user: SafeUser
|
||||||
packages: RoomPackageData
|
availablePackages: RoomPackageData
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user