"use client"; import React, { memo } from "react"; import MediaContent from "@/components/shared/MediaContent"; import { useCardAnimation } from "@/components/cardStack/hooks/useCardAnimation"; import { cls, shouldUseInvertedText } from "@/lib/utils"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { CardAnimationType } from "@/components/cardStack/types"; import type { InvertedBackground } from "@/providers/themeProvider/config/constants"; type MediaProps = | { imageSrc: string; imageAlt?: string; videoSrc?: never; videoAriaLabel?: never; } | { videoSrc: string; videoAriaLabel?: string; imageSrc?: never; imageAlt?: never; }; type BannerMedia = MediaProps & { title: string; }; type GridCard = { title: string; description: string; }; type BottomMedia = MediaProps; interface BannerGridAboutProps { bannerMedia: BannerMedia; cards: GridCard[]; bottomMedia: BottomMedia; animationType: CardAnimationType; useInvertedBackground: InvertedBackground; ariaLabel?: string; className?: string; containerClassName?: string; bannerCardClassName?: string; bannerMediaClassName?: string; bannerTitleClassName?: string; gridClassName?: string; cardClassName?: string; cardTitleClassName?: string; cardDescriptionClassName?: string; bottomMediaCardClassName?: string; bottomMediaClassName?: string; } interface GridCardItemProps { card: GridCard; shouldUseLightText: boolean; cardClassName?: string; cardTitleClassName?: string; cardDescriptionClassName?: string; } const GridCardItem = memo(({ card, shouldUseLightText, cardClassName = "", cardTitleClassName = "", cardDescriptionClassName = "", }: GridCardItemProps) => { return (
{card.description}