@props([ 'headers' => [], // ['label' => 'Texto', 'align' => 'left|center|right', 'key' => 'campo_bd'] 'sortBy' => null, // columna actual de ordenación 'sortDir' => 'asc', ]) @php $alignClass = fn($align) => match($align ?? 'left') { 'right' => 'text-right', 'center' => 'text-center', default => 'text-left', }; $sortUrl = function($key) use ($sortBy, $sortDir) { $dir = ($sortBy === $key && $sortDir === 'asc') ? 'desc' : 'asc'; return request()->fullUrlWithQuery(['sort' => $key, 'dir' => $dir, 'page' => 1]); }; @endphp
| @if(!empty($header['key'])) @php $isActive = $sortBy === $header['key']; $nextDir = ($isActive && $sortDir === 'asc') ? 'desc' : 'asc'; @endphp {{ $header['label'] }} @if($isActive) @if($sortDir === 'asc') @else @endif @else @endif @else {{ $header['label'] }} @endif | @endforeach
|---|