diff --git a/packages/tables/src/Concerns/HasFilters.php b/packages/tables/src/Concerns/HasFilters.php index 4425351d28..20182ecfd6 100644 --- a/packages/tables/src/Concerns/HasFilters.php +++ b/packages/tables/src/Concerns/HasFilters.php @@ -60,7 +60,7 @@ trait HasFilters $this->resetPage(); } - public function removeTableFilter(string $filterName, ?string $field = null, bool $shouldTriggerUpdatedFiltersHook = true): void + public function removeTableFilter(string $filterName, ?string $field = null, bool $isRemovingAllFilters = false): void { $filter = $this->getTable()->getFilter($filterName); $filterResetState = $filter->getResetState(); @@ -82,11 +82,17 @@ trait HasFilters }); } - if (! $shouldTriggerUpdatedFiltersHook) { + if ($isRemovingAllFilters) { return; } - $this->updatedTableFilters(); + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + + $this->handleTableFilterUpdates(); } public function removeTableFilters(): void @@ -96,20 +102,32 @@ trait HasFilters foreach ($filters as $filterName => $filter) { $this->removeTableFilter( $filterName, - shouldTriggerUpdatedFiltersHook: false, + isRemovingAllFilters: true, ); } - $this->updatedTableFilters(); - $this->resetTableSearch(); $this->resetTableColumnSearches(); + + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + + $this->handleTableFilterUpdates(); } public function resetTableFiltersForm(): void { $this->getTableFiltersForm()->fill(); + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + $this->handleTableFilterUpdates(); }