fix(SW-925) disable filter if there are no availablePackages

This commit is contained in:
Pontus Dreij
2024-11-20 10:14:06 +01:00
parent 10d2e094e4
commit 37098d23cf
4 changed files with 30 additions and 10 deletions

View File

@@ -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

View File

@@ -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],

View File

@@ -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;
} }

View File

@@ -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