Merge pull request #10901 from filamentphp/fix/remove-deferred-filters

fix: Remove deferred filters
This commit is contained in:
Dan Harrin
2024-01-18 15:07:06 +00:00
committed by GitHub
+24 -6
View File
@@ -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();
}