import { AlertCircle, BarChart3 } from "lucide-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import type { DashboardMarketIndexItem } from "@/features/dashboard/types/dashboard.types"; import { formatCurrency, formatSignedCurrency, formatSignedPercent, getChangeToneClass, } from "@/features/dashboard/utils/dashboard-format"; import { cn } from "@/lib/utils"; interface MarketSummaryProps { items: DashboardMarketIndexItem[]; isLoading: boolean; error: string | null; } /** * @description 코스피/코스닥 지수 요약 카드입니다. * @see features/dashboard/components/DashboardContainer.tsx 우측 상단 영역에서 호출합니다. */ export function MarketSummary({ items, isLoading, error }: MarketSummaryProps) { return ( {/* ========== TITLE ========== */} 시장 요약 KOSPI/KOSDAQ 주요 지수 변동을 보여줍니다. {isLoading && items.length === 0 && (

지수 데이터를 불러오는 중입니다.

)} {error && (

{error}

)} {items.map((item) => { const toneClass = getChangeToneClass(item.change); return (

{item.market}

{item.name}

{formatCurrency(item.price)}

{formatSignedCurrency(item.change)} {formatSignedPercent(item.changeRate)}
); })} {!isLoading && items.length === 0 && !error && (

표시할 지수 데이터가 없습니다.

)}
); }