public function getDefaultActiveTab(): string|int|null
{
return 'all';
}
public function getTabs(): array
{
$user = Auth::user();
$badgeCounts = $user->isAdmin()
? Wash::selectRaw('status, COUNT(*) as count')
->groupBy('status')
->pluck('count', 'status')
: Wash::where('user_id', Auth::id())
->selectRaw('status, COUNT(*) as count')
->groupBy('status')
->pluck('count', 'status');
return [
'all' => Tab::make()
->label('All')
->icon('fas-list')
->badge($badgeCounts->sum())
->badgeColor('success')
->modifyQueryUsing(fn (Builder $query) => $query),
...collect(WashStatus::cases())->mapWithKeys(fn ($status) => [
strtolower($status->value) => Tab::make()
->label($status->getLabel())
->icon($status->getIcon())
->badge($badgeCounts[$status->value] ?? 0)
->badgeColor($status->getSummaryColor())
->modifyQueryUsing(fn (Builder $query) => $query->where('status', $status->value)),
])->toArray(),
];
}
public function getDefaultActiveTab(): string|int|null
{
return 'all';
}
public function getTabs(): array
{
$user = Auth::user();
$badgeCounts = $user->isAdmin()
? Wash::selectRaw('status, COUNT(*) as count')
->groupBy('status')
->pluck('count', 'status')
: Wash::where('user_id', Auth::id())
->selectRaw('status, COUNT(*) as count')
->groupBy('status')
->pluck('count', 'status');
return [
'all' => Tab::make()
->label('All')
->icon('fas-list')
->badge($badgeCounts->sum())
->badgeColor('success')
->modifyQueryUsing(fn (Builder $query) => $query),
...collect(WashStatus::cases())->mapWithKeys(fn ($status) => [
strtolower($status->value) => Tab::make()
->label($status->getLabel())
->icon($status->getIcon())
->badge($badgeCounts[$status->value] ?? 0)
->badgeColor($status->getSummaryColor())
->modifyQueryUsing(fn (Builder $query) => $query->where('status', $status->value)),
])->toArray(),
];
}