import classNames from '~/lib/classNames' interface HorizontalBarChartProps { items: Array<{ label: string value: number // percentage total: string used: string type?: string }> maxValue?: number } export default function HorizontalBarChart({ items, maxValue = 100 }: HorizontalBarChartProps) { const getBarColor = (value: number) => { if (value >= 90) return 'bg-desert-red' if (value >= 75) return 'bg-desert-orange' if (value >= 50) return 'bg-desert-tan' return 'bg-desert-olive' } const getGlowColor = (value: number) => { if (value >= 90) return 'shadow-desert-red/50' if (value >= 75) return 'shadow-desert-orange/50' if (value >= 50) return 'shadow-desert-tan/50' return 'shadow-desert-olive/50' } return (
{items.map((item, index) => (
{item.label} {item.type && ( {item.type} )}
{item.used} / {item.total}
{/* Animated shine effect */} {/*
*/} {/*
*/}
15 ? 'left-3 text-desert-white drop-shadow-md' : 'right-3 text-desert-green' )} > {Math.round(item.value)}%
= 90 ? 'bg-desert-red' : item.value >= 75 ? 'bg-desert-orange' : 'bg-desert-olive' )} /> {item.value >= 90 ? 'Critical - Disk Almost Full' : item.value >= 75 ? 'Warning - Usage High' : 'Normal'}
))}
) }