fix(SW-925) disable filter if there are no availablePackages
This commit is contained in:
@@ -26,7 +26,6 @@ export default function RoomFilter({
|
|||||||
onFilter,
|
onFilter,
|
||||||
filterOptions,
|
filterOptions,
|
||||||
}: RoomFilterProps) {
|
}: RoomFilterProps) {
|
||||||
console.log(filterOptions)
|
|
||||||
const initialFilterValues = useMemo(
|
const initialFilterValues = useMemo(
|
||||||
() =>
|
() =>
|
||||||
filterOptions.reduce(
|
filterOptions.reduce(
|
||||||
@@ -100,11 +99,13 @@ export default function RoomFilter({
|
|||||||
<form onSubmit={handleSubmit(submitFilter)}>
|
<form onSubmit={handleSubmit(submitFilter)}>
|
||||||
<div className={styles.roomsFilter}>
|
<div className={styles.roomsFilter}>
|
||||||
{filterOptions.map((option) => {
|
{filterOptions.map((option) => {
|
||||||
const { code, description } = option
|
const { code, description, itemCode } = option
|
||||||
const isPetRoom = code === RoomPackageCodeEnum.PET_ROOM
|
const isPetRoom = code === RoomPackageCodeEnum.PET_ROOM
|
||||||
const isAllergyRoom = code === RoomPackageCodeEnum.ALLERGY_ROOM
|
const isAllergyRoom = code === RoomPackageCodeEnum.ALLERGY_ROOM
|
||||||
const isDisabled =
|
const isDisabled =
|
||||||
(isAllergyRoom && petFriendly) || (isPetRoom && allergyFriendly)
|
(isAllergyRoom && petFriendly) ||
|
||||||
|
(isPetRoom && allergyFriendly) ||
|
||||||
|
!itemCode
|
||||||
|
|
||||||
const checkboxChip = (
|
const checkboxChip = (
|
||||||
<CheckboxChip
|
<CheckboxChip
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ export default function Rooms({
|
|||||||
user,
|
user,
|
||||||
availablePackages,
|
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)
|
||||||
@@ -50,11 +49,26 @@ export default function Rooms({
|
|||||||
)
|
)
|
||||||
|
|
||||||
const defaultPackages: DefaultFilterOptions[] = [
|
const defaultPackages: DefaultFilterOptions[] = [
|
||||||
{ code: RoomPackageCodeEnum.PET_ROOM, description: "Pet friendly" },
|
|
||||||
{ code: RoomPackageCodeEnum.ALLERGY_ROOM, description: "Allergy friendly" },
|
|
||||||
{
|
{
|
||||||
code: RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
|
code: RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
|
||||||
description: "Accessibility",
|
description: "Accessible Room",
|
||||||
|
itemCode: availablePackages.find(
|
||||||
|
(pkg) => pkg.code === RoomPackageCodeEnum.ACCESSIBILITY_ROOM
|
||||||
|
)?.itemCode,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: RoomPackageCodeEnum.ALLERGY_ROOM,
|
||||||
|
description: "Allergy Room",
|
||||||
|
itemCode: availablePackages.find(
|
||||||
|
(pkg) => pkg.code === RoomPackageCodeEnum.ALLERGY_ROOM
|
||||||
|
)?.itemCode,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: RoomPackageCodeEnum.PET_ROOM,
|
||||||
|
description: "Pet Room",
|
||||||
|
itemCode: availablePackages.find(
|
||||||
|
(pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM
|
||||||
|
)?.itemCode,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -102,6 +116,7 @@ export default function Rooms({
|
|||||||
notAvailableRooms.forEach((room) => {
|
notAvailableRooms.forEach((room) => {
|
||||||
room.status = "NotAvailable"
|
room.status = "NotAvailable"
|
||||||
})
|
})
|
||||||
|
|
||||||
setRooms({
|
setRooms({
|
||||||
...roomsAvailability,
|
...roomsAvailability,
|
||||||
roomConfigurations: [...filteredRooms, ...notAvailableRooms],
|
roomConfigurations: [...filteredRooms, ...notAvailableRooms],
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: var(--Spacing-x-half);
|
gap: var(--Spacing-x-half);
|
||||||
padding: var(--Spacing-x1) var(--Spacing-x-one-and-half);
|
padding: calc(var(--Spacing-x1) - 2px) var(--Spacing-x-one-and-half);
|
||||||
border: 1px solid var(--Base-Border-Subtle);
|
border: 1px solid var(--Base-Border-Subtle);
|
||||||
border-radius: var(--Corner-radius-Small);
|
border-radius: var(--Corner-radius-Small);
|
||||||
background-color: var(--Base-Surface-Secondary-light-Normal);
|
background-color: var(--Base-Surface-Secondary-light-Normal);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
height: 32px;
|
||||||
|
background-color: var(--Base-Surface-Secondary-light-Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
.label[data-selected="true"],
|
.label[data-selected="true"],
|
||||||
@@ -21,8 +23,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.label[data-disabled="true"] {
|
.label[data-disabled="true"] {
|
||||||
background-color: var(--Base-Button-Primary-Fill-Disabled);
|
background-color: var(--UI-Input-Controls-Surface-Disabled);
|
||||||
border-color: var(--Base-Button-Primary-Fill-Disabled);
|
border-color: var(--UI-Input-Controls-Border-Disabled);
|
||||||
|
color: var(--Base-Text-Disabled);
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export enum RoomPackageCodeEnum {
|
|||||||
export interface DefaultFilterOptions {
|
export interface DefaultFilterOptions {
|
||||||
code: RoomPackageCodeEnum
|
code: RoomPackageCodeEnum
|
||||||
description: string
|
description: string
|
||||||
|
itemCode: string | undefined
|
||||||
}
|
}
|
||||||
export interface RoomFilterProps {
|
export interface RoomFilterProps {
|
||||||
numberOfRooms: number
|
numberOfRooms: number
|
||||||
|
|||||||
Reference in New Issue
Block a user