refactor(datatable): menjadikan dinamis kolom pengatur sorting

This commit is contained in:
Yoga Pangestu 2025-11-13 20:17:52 +07:00
parent 58e2c04116
commit fac455e7f1
2 changed files with 14 additions and 5 deletions

View File

@ -3,6 +3,7 @@
namespace App\Livewire\Datatable\Studio\Manage; namespace App\Livewire\Datatable\Studio\Manage;
use App\Models\Purchase; use App\Models\Purchase;
use App\Traits\Datatable\WithAppendColumn;
use App\Traits\Datatable\WithConfiguration; use App\Traits\Datatable\WithConfiguration;
use App\Traits\Datatable\WithPrependColumn; use App\Traits\Datatable\WithPrependColumn;
use App\Traits\WithMediaHandler; use App\Traits\WithMediaHandler;
@ -13,10 +14,14 @@
class PurchasesTable extends DataTableComponent class PurchasesTable extends DataTableComponent
{ {
use WithConfiguration, WithMediaHandler, WithPrependColumn; use WithAppendColumn, WithConfiguration, WithMediaHandler, WithPrependColumn;
protected $model = Purchase::class; protected $model = Purchase::class;
protected string $sortColumn = 'purchase_date';
protected string $sortDirection = 'desc';
public function columns(): array public function columns(): array
{ {
return [ return [

View File

@ -33,11 +33,15 @@ public function configure(): void
// Sorting // Sorting
->setSortingPillsDisabled() ->setSortingPillsDisabled()
->setSingleSortingEnabled() ->setSingleSortingEnabled();
->setDefaultSort('created_at', 'desc')
$defaultColumn = property_exists($this, 'sortColumn') ? $this->sortColumn : 'created_at';
$defaultDirection = property_exists($this, 'sortDirection') ? $this->sortDirection : 'desc';
$this->setDefaultSort($defaultColumn, $defaultDirection);
// Filter // Filter
->setFilterPillsDisabled() $this->setFilterPillsDisabled()
->setFilterPopoverAttributes( ->setFilterPopoverAttributes(
[ [
'class' => 'w-50', 'class' => 'w-50',