From 98455fd166f3cd2bb88c100924c410fdc409d971 Mon Sep 17 00:00:00 2001 From: bender Date: Mon, 9 Mar 2026 08:22:30 +0000 Subject: [PATCH] Update src/components/sections/metrics/MetricCardTwo.tsx --- .../sections/metrics/MetricCardTwo.tsx | 201 ++---------------- 1 file changed, 23 insertions(+), 178 deletions(-) diff --git a/src/components/sections/metrics/MetricCardTwo.tsx b/src/components/sections/metrics/MetricCardTwo.tsx index f05289c..1f4cd18 100644 --- a/src/components/sections/metrics/MetricCardTwo.tsx +++ b/src/components/sections/metrics/MetricCardTwo.tsx @@ -1,183 +1,28 @@ -"use client"; - -import { memo } from "react"; -import CardStack from "@/components/cardStack/CardStack"; -import { cls, shouldUseInvertedText } from "@/lib/utils"; -import { useTheme } from "@/providers/themeProvider/ThemeProvider"; -import type { LucideIcon } from "lucide-react"; -import type { ButtonConfig, GridVariant, CardAnimationTypeWith3D, TitleSegment, ButtonAnimationType } from "@/components/cardStack/types"; -import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants"; - -type MetricCardTwoGridVariant = Extract; - -type Metric = { - id: string; - value: string; - description: string; -}; +import React from "react"; +import { CardStack } from "@/components/cardStack/CardStack"; interface MetricCardTwoProps { - metrics: Metric[]; - carouselMode?: "auto" | "buttons"; - gridVariant: MetricCardTwoGridVariant; - uniformGridCustomHeightClasses?: string; - animationType: CardAnimationTypeWith3D; - title: string; - titleSegments?: TitleSegment[]; - description: string; - tag?: string; - tagIcon?: LucideIcon; - tagAnimation?: ButtonAnimationType; - buttons?: ButtonConfig[]; - buttonAnimation?: ButtonAnimationType; - textboxLayout: TextboxLayout; - useInvertedBackground: InvertedBackground; - ariaLabel?: string; - className?: string; - containerClassName?: string; - cardClassName?: string; - textBoxTitleClassName?: string; - textBoxTitleImageWrapperClassName?: string; - textBoxTitleImageClassName?: string; - textBoxDescriptionClassName?: string; - valueClassName?: string; - metricDescriptionClassName?: string; - gridClassName?: string; - carouselClassName?: string; - controlsClassName?: string; - textBoxClassName?: string; - textBoxTagClassName?: string; - textBoxButtonContainerClassName?: string; - textBoxButtonClassName?: string; - textBoxButtonTextClassName?: string; + metrics?: any[]; + title?: string; + description?: string; + animationType?: string; + textboxLayout?: string; + useInvertedBackground?: boolean; } -interface MetricCardItemProps { - metric: Metric; - shouldUseLightText: boolean; - cardClassName?: string; - valueClassName?: string; - metricDescriptionClassName?: string; +export default function MetricCardTwo({ + metrics = [], + title = "Metrics", description = "Key metrics", animationType = "slide-up", textboxLayout = "default", useInvertedBackground = false, +}: MetricCardTwoProps) { + const items = metrics.map((metric) => ({ + id: metric.id, + label: metric.label, + detail: metric.value, + })); + + return ( +
+ +
+ ); } - -const MetricCardItem = memo(({ - metric, - shouldUseLightText, - cardClassName = "", - valueClassName = "", - metricDescriptionClassName = "", -}: MetricCardItemProps) => { - return ( -
-

- {metric.value} -

-

- {metric.description} -

-
- ); -}); - -MetricCardItem.displayName = "MetricCardItem"; - -const MetricCardTwo = ({ - metrics, - carouselMode = "buttons", - gridVariant, - uniformGridCustomHeightClasses, - animationType, - title, - titleSegments, - description, - tag, - tagIcon, - tagAnimation, - buttons, - buttonAnimation, - textboxLayout, - useInvertedBackground, - ariaLabel = "Metrics section", - className = "", - containerClassName = "", - cardClassName = "", - textBoxTitleClassName = "", - textBoxTitleImageWrapperClassName = "", - textBoxTitleImageClassName = "", - textBoxDescriptionClassName = "", - valueClassName = "", - metricDescriptionClassName = "", - gridClassName = "", - carouselClassName = "", - controlsClassName = "", - textBoxClassName = "", - textBoxTagClassName = "", - textBoxButtonContainerClassName = "", - textBoxButtonClassName = "", - textBoxButtonTextClassName = "", -}: MetricCardTwoProps) => { - const theme = useTheme(); - const shouldUseLightText = shouldUseInvertedText(useInvertedBackground, theme.cardStyle); - - const customUniformHeight = gridVariant === "uniform-all-items-equal" - ? "min-h-70 2xl:min-h-80" - : uniformGridCustomHeightClasses; - - const customGridRows = (gridVariant === "bento-grid" || gridVariant === "bento-grid-inverted") - ? "md:grid-rows-[14rem_14rem] 2xl:grid-rows-[17rem_17rem]" - : undefined; - - return ( - - {metrics.map((metric, index) => ( - - ))} - - ); -}; - -MetricCardTwo.displayName = "MetricCardTwo"; - -export default MetricCardTwo;