import React, { useMemo } from 'react' import SparkLineWithTooltip from '../Charts/SparkLine/SparkLineWithTooltip' import { useMediaQuery } from '../../hooks/responsiveHooks' import Header from './Header' import ChangeMetric from './ComparisonMetric' import ContextualMetrics from './ContextualMetrics' import MetricsSummary from './MetricsSummary' import { type ScoreCardProps } from './ScoreCardType' import styles from './_score-card.module.scss' const ScoreCard = ({ containerClassName = '', header, changeMetric, sparklineGraph, contextualMetrics, metricsSummary, loading = false, backgroundColor = 'white', noBorder = false, qaTestId = 'score-card', }: ScoreCardProps) => { const isMobileView = useMediaQuery({ type: 'max', breakpoint: 'md' }) const parentContainerStyles = { ...(backgroundColor ? { backgroundColor: `var(--${backgroundColor})` } : {}), } // SparklineWithTooltip only uses standard chart colors const sparklineGraphColor = useMemo( () => changeMetric?.change ? changeMetric.change < 0 ? 'red' : 'green' : 'blue', [changeMetric?.change], ) return (
{/* Title and subtitle section on header */}
{/* Primary Metric with change value section */}
{sparklineGraph ? (
{sparklineGraph?.graphData ? ( ) : (
)}
) : null}
{/* Contextual Metric section */}
{contextualMetrics ? ( ) : null} {/* Optional Metric Summary with details link */} {metricsSummary ? ( ) : null}
) } export default ScoreCard