Merged in fix/STAY-131-hide-ancillaries (pull request #3299)
fix: fix logic for identifying single use ancillaries * fix: fix logic for identifying single use ancillaries * fix: filter out empty categories of ancillaries Approved-by: Erik Tiekstra
This commit is contained in:
@@ -17,7 +17,8 @@ import type {
|
||||
export function useAncillaries(
|
||||
ancillariesPromise: Promise<Ancillaries | null>,
|
||||
packages: Packages | null,
|
||||
user: User | null
|
||||
user: User | null,
|
||||
alreadyAcquiredAncillaryCodes: string[]
|
||||
) {
|
||||
const intl = useIntl()
|
||||
const bookedRoom = useMyStayStore((state) => state.bookedRoom)
|
||||
@@ -86,9 +87,23 @@ export function useAncillaries(
|
||||
return null
|
||||
}
|
||||
|
||||
const uniqueAncillaries = generateUniqueAncillaries(allAncillaries)
|
||||
const allUniqueAncillaries = generateUniqueAncillaries(allAncillaries)
|
||||
|
||||
return { all: allAncillaries, unique: uniqueAncillaries }
|
||||
const availableByCategory = alreadyAcquiredAncillaryCodes.length
|
||||
? filterOutAlreadyAcquiredAncillaries(
|
||||
allAncillaries,
|
||||
alreadyAcquiredAncillaryCodes
|
||||
)
|
||||
: allAncillaries
|
||||
|
||||
const availableUniqueAncillaries =
|
||||
generateUniqueAncillaries(availableByCategory)
|
||||
|
||||
return {
|
||||
availableByCategory,
|
||||
allUnique: allUniqueAncillaries,
|
||||
availableUnique: availableUniqueAncillaries,
|
||||
}
|
||||
}
|
||||
|
||||
function mapAncillaries(
|
||||
@@ -183,3 +198,19 @@ function addBreakfastPackage(
|
||||
...ancillaries,
|
||||
]
|
||||
}
|
||||
|
||||
function filterOutAlreadyAcquiredAncillaries(
|
||||
ancillaries: Ancillaries,
|
||||
alreadyAcquiredAncillaryCodes: string[]
|
||||
): Ancillaries {
|
||||
return ancillaries.map((cat) => ({
|
||||
...cat,
|
||||
ancillaryContent: cat.ancillaryContent.filter((ancillary) =>
|
||||
ancillary.requiresQuantity
|
||||
? true
|
||||
: !alreadyAcquiredAncillaryCodes.includes(
|
||||
ancillary.loyaltyCode || ancillary.id
|
||||
)
|
||||
),
|
||||
}))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user