mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
Merge pull request #10901 from filamentphp/fix/remove-deferred-filters
fix: Remove deferred filters
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user