import { JsonToHtml } from "@scandic-hotels/design-system/JsonToHtml" import { BlocksEnums } from "@scandic-hotels/trpc/types/blocksEnum" import { AlertBlock } from "@/components/Blocks/Alert" import CardsGrid from "@/components/Blocks/CardsGrid" import CarouselCards from "@/components/Blocks/CarouselCards" import DynamicContent from "@/components/Blocks/DynamicContent" import ShortcutsList from "@/components/Blocks/ShortcutsList" import TextCols from "@/components/Blocks/TextCols" import UspGrid from "@/components/Blocks/UspGrid" import { VideoBlock } from "@/components/Blocks/Video" import { VideoCardBlock } from "@/components/Blocks/VideoCard" import AccordionSection from "./Accordion" import CardGallery from "./CardGallery" import Essentials from "./Essentials" import HotelListing from "./HotelListing" import Jotform from "./Jotform" import Table from "./Table" import type { BlocksProps } from "@/types/components/blocks" export default function Blocks({ blocks }: BlocksProps) { return blocks.map(async (block, idx) => { switch (block.typename) { case BlocksEnums.block.Accordion: return ( ) case BlocksEnums.block.Alert: return ( ) case BlocksEnums.block.CardsGrid: return ( ) case BlocksEnums.block.Content: if (!block.content) return null return ( ) case BlocksEnums.block.DynamicContent: return ( ) case BlocksEnums.block.CarouselCards: return ( ) case BlocksEnums.block.CardGallery: return ( ) case BlocksEnums.block.ContentPageHotelListing: const { heading, contentType, locationFilter, hotelsToInclude } = block.hotel_listing if (!locationFilter && !hotelsToInclude.length) { return null } return ( ) case BlocksEnums.block.Shortcuts: return ( ) case BlocksEnums.block.Table: return case BlocksEnums.block.TextCols: return case BlocksEnums.block.TextContent: return ( ) case BlocksEnums.block.UspGrid: return case BlocksEnums.block.Essentials: return case BlocksEnums.block.Jotform: return case BlocksEnums.block.VideoCard: return ( ) case BlocksEnums.block.Video: return ( ) default: return null } }) }