"use client"; import { memo } from "react"; import MediaContent from "@/components/shared/MediaContent"; import { cls, shouldUseInvertedText } from "@/lib/utils"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; type MediaItem = { imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; }; interface MediaGridAboutProps { title: string; description: string; mediaItems: MediaItem[]; imagePosition?: "left" | "right"; useInvertedBackground: "noInvert" | "invertDefault" | "invertCard"; ariaLabel?: string; className?: string; containerClassName?: string; contentCardClassName?: string; titleClassName?: string; descriptionClassName?: string; mediaCardClassName?: string; mediaGridClassName?: string; mediaClassName?: string; } const MediaGridAbout = ({ title, description, mediaItems, imagePosition = "right", useInvertedBackground, ariaLabel = "About section", className = "", containerClassName = "", contentCardClassName = "", titleClassName = "", descriptionClassName = "", mediaCardClassName = "", mediaGridClassName = "", mediaClassName = "", }: MediaGridAboutProps) => { const theme = useTheme(); const shouldUseLightText = shouldUseInvertedText(useInvertedBackground, theme.cardStyle); const contentCard = (

{title}

{description}

); const items = mediaItems.slice(0, 6); const itemCount = items.length; const getGridLayout = () => { switch (itemCount) { case 1: return "grid-cols-1"; case 2: return "grid-cols-1"; case 3: return "grid-cols-2"; case 4: return "grid-cols-2"; case 5: return "grid-cols-2"; case 6: return "grid-cols-2"; default: return "grid-cols-1"; } }; const getItemClassName = (index: number) => { if (itemCount === 3 && index === 2) return "col-span-2"; if (itemCount === 5 && index === 4) return "col-span-2"; return ""; }; const mediaCard = (
{items.map((item, index) => (
))}
); return (
{imagePosition === "left" ? ( <> {mediaCard} {contentCard} ) : ( <> {contentCard} {mediaCard} )}
); }; MediaGridAbout.displayName = "MediaGridAbout"; export default memo(MediaGridAbout);