"use client" import { useState } from "react" import { ContentCard } from "@scandic-hotels/design-system/ContentCard" import { Carousel } from "@/components/Carousel" import { Section } from "@/components/Section" import { SectionHeader } from "@/components/Section/Header" import SectionLink from "@/components/Section/Link" import TabFilters from "@/components/TabFilters" import styles from "./carouselCards.module.css" import type { CarouselCards as CarouselCardsBlock } from "@scandic-hotels/trpc/types/blocks" import type { VariantProps } from "class-variance-authority" import type { headingVariants } from "@/components/Section/Header/headingVariants" interface CarouselCardsProps extends Pick< CarouselCardsBlock, "carousel_cards" > { headingLevel?: "h1" | "h2" headingTypography?: VariantProps["typography"] } export default function CarouselCards({ carousel_cards, headingLevel = "h2", headingTypography = "Title/sm", }: CarouselCardsProps) { const { heading, preamble, enableFilters, defaultFilter, filterCategories, cards, link, } = carousel_cards const [activeFilter, setActiveFilter] = useState( enableFilters ? defaultFilter : null ) const filteredCards = !activeFilter ? cards : cards.filter( (card) => "filterId" in card && card.filterId === activeFilter ) return (
{filterCategories.length > 0 && activeFilter && ( )} {filteredCards.map((card, index) => ( ))}
) }