import React from 'react'; import { TrendingUp, TrendingDown, Minus, GripVertical, X } from 'lucide-react'; interface GrowthData { weekly: { value: number; change: number }; monthly: { value: number; change: number }; } interface MetricWidgetProps { title: string; value: number | string; growth: GrowthData; icon?: React.ReactNode; isEditing?: boolean; onRemove?: () => void; } const MetricWidget: React.FC = ({ title, value, growth, icon, isEditing, onRemove, }) => { const formatChange = (change: number) => { if (change === 0) return '0%'; return change > 0 ? `+${change.toFixed(1)}%` : `${change.toFixed(1)}%`; }; const getTrendIcon = (change: number) => { if (change > 0) return ; if (change < 0) return ; return ; }; const getTrendClass = (change: number) => { if (change > 0) return 'text-green-700 bg-green-50 dark:bg-green-900/30 dark:text-green-400'; if (change < 0) return 'text-red-700 bg-red-50 dark:bg-red-900/30 dark:text-red-400'; return 'text-gray-700 bg-gray-50 dark:bg-gray-700 dark:text-gray-300'; }; return (
{isEditing && ( <>
)}
{icon && {icon}}

{title}

{value}
Week: {getTrendIcon(growth.weekly.change)} {formatChange(growth.weekly.change)}
Month: {getTrendIcon(growth.monthly.change)} {formatChange(growth.monthly.change)}
); }; export default MetricWidget;