feat(BOOK-53): Added component for SEO filters and support filter switching

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Erik Tiekstra
2025-09-19 08:26:41 +00:00
parent 0e30a2d218
commit 7c92a8fc9a
30 changed files with 339 additions and 111 deletions

View File

@@ -69,7 +69,7 @@ export function createDestinationDataStore({
return create<DestinationDataState>((set) => ({
actions: {
updateActiveFiltersAndSort(filterSlugs, sort) {
updateActiveFiltersAndSort(filterSlugs, sort, filterSlugFromUrl) {
return set(
produce((state: DestinationDataState) => {
const newSort =
@@ -79,6 +79,10 @@ export function createDestinationDataStore({
const filters = flattenedFilters.filter((filter) =>
filterSlugs.includes(filter.slug)
)
const filterFromUrl =
flattenedFilters.find(
(filter) => filter.slug === filterSlugFromUrl
) ?? null
const filteredHotels = getFilteredHotels(state.allHotels, filters)
const sortedHotels = getSortedHotels(filteredHotels, newSort)
const filteredCities = state.allHotels.length
@@ -121,6 +125,7 @@ export function createDestinationDataStore({
state.activeHotels = sortedHotels
state.activeCities = sortedCities
state.filterFromUrl = filterFromUrl
state.pendingFilters = filters
state.pendingSort = newSort
state.pendingHotelCount = filteredHotels.length