fix(SW-3075): Fixed issue where URLs rendered differently in source HTML in compared to client

Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-06-18 12:07:32 +00:00
parent c783f3a764
commit 2f38bdf0b1
8 changed files with 44 additions and 20 deletions

View File

@@ -47,6 +47,15 @@ const CITY_SORTING_STRATEGIES: Partial<
},
}
function sortFilters(filters: Filter[]): Filter[] {
return [...filters].sort((a, b) => {
// First sort by sortOrder
const orderDiff = a.sortOrder - b.sortOrder
// If sortOrder is the same, sort by name as secondary criterion
return orderDiff === 0 ? a.name.localeCompare(b.name) : orderDiff
})
}
export function getFilteredHotels(
hotels: DestinationPagesHotelData[],
filters: string[]
@@ -125,10 +134,7 @@ export function getFiltersFromHotels(
}
const filters = hotels.flatMap(({ hotel }) => hotel.detailedFacilities)
const sortedFilters = filters.sort((a, b) => b.sortOrder - a.sortOrder)
const uniqueFilterNames = [
...new Set(sortedFilters.map((filter) => filter.name)),
]
const uniqueFilterNames = [...new Set(filters.map((filter) => filter.name))]
const filterList = uniqueFilterNames
.map((filterName) => {
const filter = filters.find((filter) => filter.name === filterName)
@@ -137,18 +143,21 @@ export function getFiltersFromHotels(
name: filter.name,
slug: filter.slug,
filterType: filter.filter,
sortOrder: filter.sortOrder,
}
: null
})
.filter((filter): filter is Filter => !!filter)
const facilityFilters = filterList.filter((filter) =>
HOTEL_FACILITIES_FILTER_TYPE_NAMES.includes(filter.filterType)
)
const surroundingsFilters = filterList.filter((filter) =>
HOTEL_SURROUNDINGS_FILTER_TYPE_NAMES.includes(filter.filterType)
)
return {
facilityFilters: filterList.filter((filter) =>
HOTEL_FACILITIES_FILTER_TYPE_NAMES.includes(filter.filterType)
),
surroundingsFilters: filterList.filter((filter) =>
HOTEL_SURROUNDINGS_FILTER_TYPE_NAMES.includes(filter.filterType)
),
facilityFilters: sortFilters(facilityFilters),
surroundingsFilters: sortFilters(surroundingsFilters),
}
}