-
- {getHeadingText(intl, location, allFilters, activeFilters[0])}
-
+ {heading}
- {!activeFilters.length && (
+ {!hasActiveFilter ? (
{preamble}
- )}
+ ) : null}
{children}
)
diff --git a/apps/scandic-web/providers/DestinationDataProvider/index.tsx b/apps/scandic-web/providers/DestinationDataProvider/index.tsx
index 624a412bc..03b750ae2 100644
--- a/apps/scandic-web/providers/DestinationDataProvider/index.tsx
+++ b/apps/scandic-web/providers/DestinationDataProvider/index.tsx
@@ -14,6 +14,8 @@ import type { DestinationDataProviderProps } from "@/types/providers/destination
export default function DestinationDataProvider({
allCities = [],
allHotels,
+ allFilters,
+ filterFromUrl,
sortItems,
children,
}: DestinationDataProviderProps) {
@@ -25,6 +27,8 @@ export default function DestinationDataProvider({
storeRef.current = createDestinationDataStore({
allCities,
allHotels,
+ allFilters,
+ filterFromUrl,
pathname,
sortItems,
searchParams,
diff --git a/apps/scandic-web/stores/destination-data/index.ts b/apps/scandic-web/stores/destination-data/index.ts
index 6fc710685..6d5eec251 100644
--- a/apps/scandic-web/stores/destination-data/index.ts
+++ b/apps/scandic-web/stores/destination-data/index.ts
@@ -12,7 +12,6 @@ import {
getBasePathNameWithoutFilters,
getFilteredCities,
getFilteredHotels,
- getFiltersFromHotels,
getSortedCities,
getSortedHotels,
isValidSortOption,
@@ -27,18 +26,19 @@ import type {
export function createDestinationDataStore({
allCities,
allHotels,
+ allFilters,
+ filterFromUrl,
pathname,
sortItems,
searchParams,
}: InitialState) {
const defaultSort =
sortItems.find((s) => s.isDefault)?.value ?? sortItems[0].value
- const allFilters = getFiltersFromHotels(allHotels)
const allFilterSlugs = Object.values(allFilters).flatMap((filter: Filter[]) =>
filter.map((f) => f.slug)
)
- const activeFilters: string[] = []
+ const activeFilters: string[] = filterFromUrl ? [filterFromUrl] : []
const basePathnameWithoutFilters = getBasePathNameWithoutFilters(
pathname,
allFilterSlugs
diff --git a/apps/scandic-web/types/providers/destination-data.ts b/apps/scandic-web/types/providers/destination-data.ts
index 308c0531d..39dbfc454 100644
--- a/apps/scandic-web/types/providers/destination-data.ts
+++ b/apps/scandic-web/types/providers/destination-data.ts
@@ -1,9 +1,14 @@
import type { DestinationPagesHotelData } from "@/types/hotel"
-import type { SortItem } from "../components/destinationFilterAndSort"
+import type {
+ CategorizedFilters,
+ SortItem,
+} from "../components/destinationFilterAndSort"
import type { DestinationCityListItem } from "../trpc/routers/contentstack/destinationCityPage"
export interface DestinationDataProviderProps extends React.PropsWithChildren {
allHotels: DestinationPagesHotelData[]
allCities?: DestinationCityListItem[]
+ allFilters: CategorizedFilters
+ filterFromUrl?: string
sortItems: SortItem[]
}
diff --git a/apps/scandic-web/types/stores/destination-data.ts b/apps/scandic-web/types/stores/destination-data.ts
index 855e4595b..e113af1a7 100644
--- a/apps/scandic-web/types/stores/destination-data.ts
+++ b/apps/scandic-web/types/stores/destination-data.ts
@@ -44,7 +44,11 @@ export interface DestinationDataState {
}
export interface InitialState
- extends Pick