@props(['column', 'align' => 'left']) {{-- Klikalny nagłówek tabeli z sortowaniem. - 'column' : klucz sortowania (musi być na whiteliście w kontrolerze). - 'align' : left | right | center (domyślnie left). Zachowuje bieżące filtry (cały query string), resetuje paginację (?page). Strzałka: aktywna kolumna = kierunek (rosnąco/malejąco), pozostałe = neutralna. --}} @php $activeSort = request('sort'); $activeDir = request('dir', 'asc') === 'desc' ? 'desc' : 'asc'; $isActive = $activeSort === $column; $nextDir = $isActive && $activeDir === 'asc' ? 'desc' : 'asc'; $query = array_merge(request()->except('page'), ['sort' => $column, 'dir' => $nextDir]); $url = request()->url() . '?' . http_build_query($query); $alignClass = ['left' => 'text-left', 'right' => 'text-right', 'center' => 'text-center'][$align] ?? 'text-left'; $justifyClass = ['left' => 'justify-start', 'right' => 'justify-end', 'center' => 'justify-center'][$align] ?? 'justify-start'; $arrow = $isActive ? ($activeDir === 'asc' ? '▲' : '▼') : '↕'; @endphp