'use client'; import React from 'react'; interface SplitProgressBarProps { totalVolume: number; hostShare: number; taken: number; reserved: number; showLabels?: boolean; height?: 'sm' | 'md' | 'lg'; } export default function SplitProgressBar({ totalVolume, hostShare, taken, reserved, showLabels = true, height = 'md', }: SplitProgressBarProps) { const available = totalVolume - hostShare - taken - reserved; const hostPercent = (hostShare / totalVolume) * 100; const takenPercent = (taken / totalVolume) * 100; const reservedPercent = (reserved / totalVolume) * 100; const availablePercent = (available / totalVolume) * 100; const heightClass = height === 'sm' ? 'h-3' : height === 'lg' ? 'h-8' : 'h-5'; return (
{/* Host Share - Grey */} {hostPercent > 0 && (
{height !== 'sm' && hostPercent > 10 && 'Host'}
)} {/* Taken - Orange/Red */} {takenPercent > 0 && (
{height !== 'sm' && takenPercent > 8 && `${taken}cl`}
)} {/* Reserved/Pending - Yellow */} {reservedPercent > 0 && (
{height !== 'sm' && reservedPercent > 8 && `${reserved}cl`}
)} {/* Available - Green */} {availablePercent > 0 && (
{height !== 'sm' && availablePercent > 8 && `${available}cl`}
)}
{showLabels && (
Host ({hostShare}cl)
{taken > 0 && (
Vergeben ({taken}cl)
)} {reserved > 0 && (
Reserviert ({reserved}cl)
)}
Verfügbar ({available}cl)
)}
); }