mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
refactor: rewrite dashboard components to match prototype design
- Rewrite TrafficProgressBar with multi-segment gradient fill, flex-based zone tints, shimmer + highlight overlays, radial glow at fill edge - Rewrite SubscriptionCardActive with zone header, big percentage on right, connect device card with device dots, tariff/days-left two-column row, sparkline placeholder, traffic refresh controls - Rewrite SubscriptionCardExpired with red glow, grid pattern, gradient renew button, outline tariffs button - Rewrite TrialOfferCard with animated glow background, grid pattern, icon glow animation, price tag with old price, gradient CTA buttons - Rewrite StatsGrid with 2x2 card layout, icon+label+chevron header, big value numbers, zone-colored balance/earnings cards - Update Sparkline with color prop and last-point dot indicator - Update useAnimatedNumber to use easeOutExpo matching prototype - Add formatTraffic utility for MB/GB/TB unit formatting - Add mainHex to trafficZone for inline style support - Update animations to match prototype timing - Add new i18n keys for redesigned components
This commit is contained in:
9
src/utils/formatTraffic.ts
Normal file
9
src/utils/formatTraffic.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Format traffic amount with appropriate unit (MB/GB/TB).
|
||||
* Matches the prototype's formatBytes logic.
|
||||
*/
|
||||
export function formatTraffic(gb: number): string {
|
||||
if (gb >= 1000) return `${(gb / 1000).toFixed(1)} TB`;
|
||||
if (gb >= 1) return `${gb.toFixed(1)} GB`;
|
||||
return `${(gb * 1024).toFixed(0)} MB`;
|
||||
}
|
||||
Reference in New Issue
Block a user