@php
// ambil maksimal 4 user
$topUsers = array_slice($topUsers ?? [], 0, 4);
$maxTop =
collect($topUsers)
->map(function ($u) {
return (float) preg_replace('/[^0-9.]/', '', (string) ($u['total'] ?? 0));
})
->max() ?? 0;
@endphp
{{-- top users --}}
@forelse($topUsers as $i => $user)
@php
$username = (string) ($user['username'] ?? '-');
$initial = strtoupper(substr($username, 0, 1));
$totalRaw = (float) preg_replace('/[^0-9.]/', '', (string) ($user['total'] ?? 0));
$pct = $maxTop > 0 ? max(10, min(100, round(($totalRaw / $maxTop) * 100))) : 10;
$rank = $i + 1;
$rankBg = match ($rank) {
1 => 'rgba(250,204,21,.16)',
2 => 'rgba(148,163,184,.16)',
3 => 'rgba(251,146,60,.16)',
default => 'rgba(99,102,241,.16)',
};
$rankColor = match ($rank) {
1 => '#fde047',
2 => '#cbd5e1',
3 => '#fdba74',
default => '#a5b4fc',
};
@endphp
{{-- rank --}}
#{{ $rank }}
{{-- avatar --}}
{{ $initial }}
{{-- username --}}
{{ $username }}
Deposit Member
{{-- amount --}}
{{ $user['total'] }}
Volume
{{-- progress --}}
@empty
No Leaderboard Data
Data deposit belum tersedia
@endforelse