"use client"; import { memo } from "react"; import type { ComponentType, SVGProps } from "react"; import MutualAidArt from "../../../../public/assets/case-study/case-study-mutual-aid.svg"; import FoodNotBombsArt from "../../../../public/assets/case-study/case-study-food-not-bombs.svg"; import BoulderCountyStreetMedicsArt from "../../../../public/assets/case-study/case-study-boulder-county-street-medics.svg"; import type { CaseStudyProps } from "./CaseStudy.types"; const SURFACE_CLASS: Record = { lavender: "bg-[var(--color-surface-invert-brand-lavender)]", neutral: "bg-[var(--color-surface-invert-secondary)]", rose: "bg-[var(--color-surface-invert-brand-red)]", }; /** * Inline SVGR components avoid the network round-trip the prior `next/image` * version required, so the illustration paints with the colored tile shell. */ const SURFACE_ART: Record< CaseStudyProps["surface"], ComponentType> > = { lavender: MutualAidArt, neutral: FoodNotBombsArt, rose: BoulderCountyStreetMedicsArt, }; const SURFACE_ART_DATA_KEY: Record = { lavender: "case-study-mutual-aid", neutral: "case-study-food-not-bombs", rose: "case-study-boulder-county-street-medics", }; /** Figma: ~23px corner (“Card / CaseStudy” shells). */ const CASE_TILE_RADIUS_CLASS = "rounded-[23.093px]"; function CaseStudyView({ surface, imageAlt = "", visual, className = "", }: CaseStudyProps) { const Art = SURFACE_ART[surface]; return (
{visual ? (
{visual}
) : ( )}
); } CaseStudyView.displayName = "CaseStudyView"; export default memo(CaseStudyView);