feat(SW-1907): Not rendering blocks when at least one filter is active on destination pages
Approved-by: Christian Andolf
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { useDestinationDataStore } from "@/stores/destination-data"
|
||||||
|
|
||||||
|
import AccordionSection from "@/components/Blocks/Accordion"
|
||||||
|
import JsonToHtml from "@/components/JsonToHtml"
|
||||||
|
|
||||||
|
import type { BlocksProps } from "@/types/components/blocks"
|
||||||
|
import { BlocksEnums } from "@/types/enums/blocks"
|
||||||
|
|
||||||
|
export default function Blocks({ blocks }: BlocksProps) {
|
||||||
|
const { activeFilters } = useDestinationDataStore((state) => ({
|
||||||
|
activeFilters: state.activeFilters,
|
||||||
|
}))
|
||||||
|
|
||||||
|
if (activeFilters.length) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return blocks.map((block, idx) => {
|
||||||
|
switch (block.typename) {
|
||||||
|
case BlocksEnums.block.Accordion:
|
||||||
|
return (
|
||||||
|
<AccordionSection
|
||||||
|
accordion={block.accordion.accordions}
|
||||||
|
title={block.accordion.title}
|
||||||
|
key={`${block.typename}-${idx}`}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
case BlocksEnums.block.Content:
|
||||||
|
return (
|
||||||
|
<section key={`${block.typename}-${idx}`}>
|
||||||
|
<JsonToHtml
|
||||||
|
nodes={block.content.json.children}
|
||||||
|
embeds={block.content.embedded_itemsConnection.edges}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
default:
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -4,10 +4,10 @@ import { Suspense } from "react"
|
|||||||
import { env } from "@/env/server"
|
import { env } from "@/env/server"
|
||||||
import { getDestinationCityPage } from "@/lib/trpc/memoizedRequests"
|
import { getDestinationCityPage } from "@/lib/trpc/memoizedRequests"
|
||||||
|
|
||||||
import Blocks from "@/components/Blocks"
|
|
||||||
import Breadcrumbs from "@/components/Breadcrumbs"
|
import Breadcrumbs from "@/components/Breadcrumbs"
|
||||||
import BreadcrumbsSkeleton from "@/components/TempDesignSystem/Breadcrumbs/BreadcrumbsSkeleton"
|
import BreadcrumbsSkeleton from "@/components/TempDesignSystem/Breadcrumbs/BreadcrumbsSkeleton"
|
||||||
|
|
||||||
|
import Blocks from "../Blocks"
|
||||||
import ExperienceList from "../ExperienceList"
|
import ExperienceList from "../ExperienceList"
|
||||||
import HotelDataContainer, { preload } from "../HotelDataContainer"
|
import HotelDataContainer, { preload } from "../HotelDataContainer"
|
||||||
import HotelListing from "../HotelListing"
|
import HotelListing from "../HotelListing"
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import { Suspense } from "react"
|
|||||||
|
|
||||||
import { getDestinationCountryPage } from "@/lib/trpc/memoizedRequests"
|
import { getDestinationCountryPage } from "@/lib/trpc/memoizedRequests"
|
||||||
|
|
||||||
import Blocks from "@/components/Blocks"
|
|
||||||
import Breadcrumbs from "@/components/Breadcrumbs"
|
import Breadcrumbs from "@/components/Breadcrumbs"
|
||||||
import BreadcrumbsSkeleton from "@/components/TempDesignSystem/Breadcrumbs/BreadcrumbsSkeleton"
|
import BreadcrumbsSkeleton from "@/components/TempDesignSystem/Breadcrumbs/BreadcrumbsSkeleton"
|
||||||
|
|
||||||
|
import Blocks from "../Blocks"
|
||||||
import CityDataContainer, { preload } from "../CityDataContainer"
|
import CityDataContainer, { preload } from "../CityDataContainer"
|
||||||
import CityListing from "../CityListing"
|
import CityListing from "../CityListing"
|
||||||
import ExperienceList from "../ExperienceList"
|
import ExperienceList from "../ExperienceList"
|
||||||
|
|||||||
Reference in New Issue
Block a user