diff --git a/cshare-app/src/components/StorageBar.jsx b/cshare-app/src/components/StorageBar.jsx new file mode 100644 index 0000000..59263aa --- /dev/null +++ b/cshare-app/src/components/StorageBar.jsx @@ -0,0 +1,61 @@ +import { formatFileSize } from '../data/mockData'; + +export function StorageBar({ used, total, byType }) { + const pct = Math.min(100, (used / total) * 100); + + return ( +
+
+ + Storage Used + + 85 ? 'var(--danger)' : 'var(--accent)', + }}> + {formatFileSize(used)} / {formatFileSize(total)} + +
+ + {/* Segmented bar */} +
+ {Object.entries(byType).map(([label, { size, color }]) => { + const segPct = (size / total) * 100; + return segPct > 0 ? ( +
+ ) : null; + })} +
+ + {/* Legend */} +
+ {Object.entries(byType).map(([label, { size, color }]) => ( +
+
+ + {label} {formatFileSize(size)} + +
+ ))} +
+
+ ); +}