feat(BOOK-56): Added content related to destination filters

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Erik Tiekstra
2025-09-25 08:10:30 +00:00
parent 9032789fd0
commit 7714761c77
21 changed files with 379 additions and 172 deletions

View File

@@ -12,6 +12,7 @@ import {
} from "@/utils/tracking/destinationPage"
import {
getActiveDestinationFilter,
getBasePathNameWithoutFilters,
getFilteredCities,
getFilteredHotels,
@@ -19,6 +20,7 @@ import {
isValidSortOption,
} from "./helper"
import type { DestinationFilter } from "@scandic-hotels/trpc/types/destinationsData"
import type { HotelFilter } from "@scandic-hotels/trpc/types/hotel"
import type {
@@ -38,9 +40,11 @@ export function createDestinationDataStore({
const defaultSort =
sortItems.find((s) => s.isDefault)?.value ?? sortItems[0].value
const allFilters = mergeHotelFiltersAndSeoFilters(hotelFilters, seoFilters)
const allSeoFilters = Object.values(seoFilters).flat()
const allFlattenedFilters = Object.values(allFilters).flat<HotelFilter[]>()
const allFilterSlugs = allFlattenedFilters.map((filter) => filter.slug)
const activeFilters: HotelFilter[] = []
let activeSeoFilter: DestinationFilter | null = null
let filterFromUrl: HotelFilter | null = null
const basePathnameWithoutFilters = getBasePathNameWithoutFilters(
@@ -55,6 +59,7 @@ export function createDestinationDataStore({
) ?? null
if (filterFromUrl) {
activeFilters.push(filterFromUrl)
activeSeoFilter = getActiveDestinationFilter(filterFromUrl, allSeoFilters)
}
}
@@ -129,6 +134,10 @@ export function createDestinationDataStore({
state.activeCities = sortedCities
state.filterFromUrl = filterFromUrl
state.activeSeoFilter = getActiveDestinationFilter(
filterFromUrl,
allSeoFilters
)
state.pendingFilters = filters
state.pendingSort = newSort
state.pendingHotelCount = filteredHotels.length
@@ -204,6 +213,7 @@ export function createDestinationDataStore({
activeFilters,
pendingFilters: activeFilters,
allFilters,
activeSeoFilter,
filterFromUrl,
basePathnameWithoutFilters,
sortItems,