From 826159ad5002a7e8be29f9a2062911e9b7b20177 Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 1 Oct 2026 21:26:13 +0400 Subject: [PATCH 1/2] Reset retained filter input values --- .../views/livewire/datatables/datatable.blade.php | 4 ++-- src/Livewire/LivewireDatatable.php | 5 ++++- tests/LivewireDatatableTemplateTest.php | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/resources/views/livewire/datatables/datatable.blade.php b/resources/views/livewire/datatables/datatable.blade.php index ccb5a5a9..5b178c03 100644 --- a/resources/views/livewire/datatables/datatable.blade.php +++ b/resources/views/livewire/datatables/datatable.blade.php @@ -142,11 +142,11 @@ class="ld-button ld-button--success px-3 py-2 text-xs font-medium tracking-wider
@if($column['filterable']) @if( is_iterable($column['filterable']) ) -
+
@include('datatables::filters.select', ['index' => $index, 'name' => $column['label'], 'options' => $column['filterable']])
@else -
+
@include('datatables::filters.' . ($column['filterView'] ?? $column['type']), ['index' => $index, 'name' => $column['label']])
@endif diff --git a/src/Livewire/LivewireDatatable.php b/src/Livewire/LivewireDatatable.php index b8a37448..eb3f0ffa 100644 --- a/src/Livewire/LivewireDatatable.php +++ b/src/Livewire/LivewireDatatable.php @@ -48,6 +48,7 @@ class LivewireDatatable extends Component public array $activeBooleanFilters = []; public array $activeTextFilters = []; public array $activeNumberFilters = []; + public int $filterInputGeneration = 0; public array $defaultFilters = []; public ?bool $hideHeader = false; public ?bool $hidePagination = false; @@ -196,6 +197,7 @@ public function applyToTable($options): void #[On('resetTable')] public function resetTable(): void { + $this->filterInputGeneration++; $this->perPage = config('livewire-datatables.default_per_page', 10); $this->sortIndex = $this->defaultSort(); $this->search = null; @@ -207,7 +209,7 @@ public function resetTable(): void $this->activeTextFilters = []; $this->activeBooleanFilters = []; $this->activeNumberFilters = []; - $this->hide = null; + $this->hide = []; $this->resetHiddenColumns(); $this->selected = []; } @@ -1057,6 +1059,7 @@ public function removeSelectFilter($column, $key = null): void public function clearAllFilters(): void { + $this->filterInputGeneration++; $this->activeDateFilters = []; $this->activeDatetimeFilters = []; $this->activeTimeFilters = []; diff --git a/tests/LivewireDatatableTemplateTest.php b/tests/LivewireDatatableTemplateTest.php index 8aaf39f0..4e84f2d8 100644 --- a/tests/LivewireDatatableTemplateTest.php +++ b/tests/LivewireDatatableTemplateTest.php @@ -84,6 +84,21 @@ public function number_filter_clear_actions_are_only_visible_for_entered_values( ->assertDontSeeHtml("wire:click=\"doNumberFilterStart('0', '')\""); } + #[Test] + public function clearing_filters_replaces_filter_inputs(): void + { + Livewire::test(NumberFilterDummyTable::class) + ->assertSeeHtml('wire:key="filter-0-0"') + ->call('doNumberFilterStart', 0, 10) + ->call('clearAllFilters') + ->assertSet('activeNumberFilters', []) + ->assertSeeHtml('wire:key="filter-0-1"') + ->call('doNumberFilterStart', 0, 20) + ->call('resetTable') + ->assertSet('activeNumberFilters', []) + ->assertSeeHtml('wire:key="filter-0-2"'); + } + #[Test] public function pagination_buttons_have_stable_spacing_and_accessible_state(): void { From 30fed614b6b47b4dd493b2df96cc6aa5fc13937c Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 1 Oct 2026 21:26:14 +0400 Subject: [PATCH 2/2] Prepare 3.2.7 release notes --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 783c9dc1..4781fc26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to `livewire-datatables` will be documented in this file +## 3.2.7 ( 2026-10-01 ) + +### What's Changed + +- Clear browser-retained filter input values after resetting filters or the whole table. +- Keep full table resets compatible with the typed hidden-column state. + ## 3.2.6 ( 2026-09-26 ) ### What's Changed