|
17 | 17 | use Livewire\Component; |
18 | 18 | use Livewire\WithPagination; |
19 | 19 | use Maatwebsite\Excel\Facades\Excel; |
| 20 | +use Mediconesystems\LivewireDatatables\Column; |
20 | 21 | use Mediconesystems\LivewireDatatables\ColumnSet; |
21 | 22 | use Mediconesystems\LivewireDatatables\Exports\DatatableExport; |
22 | 23 | use Mediconesystems\LivewireDatatables\Traits\WithCallbacks; |
@@ -438,8 +439,12 @@ public function getFreshColumnsProperty() |
438 | 439 | { |
439 | 440 | $columns = $this->processedColumns->columnsArray(); |
440 | 441 |
|
441 | | - if (($name = collect($columns)->pluck('name')->duplicates()) && collect($columns)->pluck('name')->duplicates()->count()) { |
442 | | - throw new Exception('Duplicate Column Name: ' . $name->first()); |
| 442 | + $duplicates = collect($columns)->reject(function ($column) { |
| 443 | + return in_array($column['type'], Column::UNSORTABLE_TYPES); |
| 444 | + })->pluck('name')->duplicates(); |
| 445 | + |
| 446 | + if ($duplicates->count()) { |
| 447 | + throw new Exception('Duplicate Column Name(s): ' . implode(', ', $duplicates->toArray())); |
443 | 448 | } |
444 | 449 |
|
445 | 450 | return $columns; |
@@ -501,8 +506,7 @@ public function initialiseSort() |
501 | 506 | $this->sort = $this->defaultSort() |
502 | 507 | ? $this->defaultSort()['key'] |
503 | 508 | : collect($this->freshColumns)->reject(function ($column) { |
504 | | - // list all column types that are not sortable by SQL: |
505 | | - return in_array($column['type'], ['checkbox', 'label']) || $column['hidden']; |
| 509 | + return in_array($column['type'], Column::UNSORTABLE_TYPES) || $column['hidden']; |
506 | 510 | })->keys()->first(); |
507 | 511 |
|
508 | 512 | $this->getSessionStoredSort(); |
|
0 commit comments