diff --git a/src/Traits/Configuration/FilterConfiguration.php b/src/Traits/Configuration/FilterConfiguration.php index 7e8400b86..059637361 100644 --- a/src/Traits/Configuration/FilterConfiguration.php +++ b/src/Traits/Configuration/FilterConfiguration.php @@ -2,26 +2,4 @@ namespace Rappasoft\LaravelLivewireTables\Traits\Configuration; -trait FilterConfiguration -{ - public function setFiltersStatus(bool $status): self - { - $this->filtersStatus = $status; - - return $this; - } - - public function setFiltersEnabled(): self - { - $this->setFiltersStatus(true); - - return $this; - } - - public function setFiltersDisabled(): self - { - $this->setFiltersStatus(false); - - return $this; - } -} +trait FilterConfiguration {} diff --git a/src/Traits/Core/Filters/HandlesFilterTraits.php b/src/Traits/Core/Filters/HandlesFilterTraits.php index d4f3c114e..249c303e3 100644 --- a/src/Traits/Core/Filters/HandlesFilterTraits.php +++ b/src/Traits/Core/Filters/HandlesFilterTraits.php @@ -9,5 +9,6 @@ trait HandlesFilterTraits HasFilterMenuStyling, HasFilterPillsStyling, HasFilterQueryString, + HasFiltersStatus, HasFiltersVisibility; } diff --git a/src/Traits/Core/Filters/HasFiltersStatus.php b/src/Traits/Core/Filters/HasFiltersStatus.php new file mode 100644 index 000000000..9558b896f --- /dev/null +++ b/src/Traits/Core/Filters/HasFiltersStatus.php @@ -0,0 +1,47 @@ +filtersStatus; + } + + public function filtersAreEnabled(): bool + { + return $this->getFiltersStatus() === true; + } + + public function filtersAreDisabled(): bool + { + return $this->getFiltersStatus() === false; + } + + public function setFiltersStatus(bool $status): self + { + $this->filtersStatus = $status; + + return $this; + } + + public function setFiltersEnabled(): self + { + $this->setFiltersStatus(true); + + return $this; + } + + public function setFiltersDisabled(): self + { + $this->setFiltersStatus(false); + + return $this; + } +} diff --git a/src/Traits/Helpers/FilterHelpers.php b/src/Traits/Helpers/FilterHelpers.php index 714eebfd5..f2924c883 100644 --- a/src/Traits/Helpers/FilterHelpers.php +++ b/src/Traits/Helpers/FilterHelpers.php @@ -11,21 +11,6 @@ trait FilterHelpers { - public function getFiltersStatus(): bool - { - return $this->filtersStatus; - } - - public function filtersAreEnabled(): bool - { - return $this->getFiltersStatus() === true; - } - - public function filtersAreDisabled(): bool - { - return $this->getFiltersStatus() === false; - } - public function hasFilters(): bool { return $this->getFiltersCount() > 0; diff --git a/src/Traits/WithFilters.php b/src/Traits/WithFilters.php index 9d099b3aa..19ff8306b 100644 --- a/src/Traits/WithFilters.php +++ b/src/Traits/WithFilters.php @@ -14,9 +14,6 @@ trait WithFilters FilterHelpers; use HandlesFilterTraits; - #[Locked] - public bool $filtersStatus = true; - #[Locked] public int $filterCount; diff --git a/tests/Unit/Traits/Core/Filters/FilterStatusTest.php b/tests/Unit/Traits/Core/Filters/FilterStatusTest.php new file mode 100644 index 000000000..9021a0a1b --- /dev/null +++ b/tests/Unit/Traits/Core/Filters/FilterStatusTest.php @@ -0,0 +1,85 @@ +assertTrue($this->basicTable->filtersAreEnabled()); + } + + public function test_can_check_if_filters_can_be_disabled_when_enbled(): void + { + + $mock = new class extends PetsTable + { + public function configure(): void + { + parent::configure(); + $this->setFiltersEnabled(); + } + + public function setFiltersToEnabled() + { + $this->setFiltersEnabled(); + } + + public function setFiltersToDisabled() + { + $this->setFiltersDisabled(); + } + }; + + $mock->configure(); + $mock->boot(); + + $this->assertTrue($mock->filtersAreEnabled()); + $this->assertFalse($mock->filtersAreDisabled()); + + $mock->setFiltersToDisabled(); + + $this->assertFalse($mock->filtersAreEnabled()); + $this->assertTrue($mock->filtersAreDisabled()); + + } + + public function test_can_check_if_filters_can_be_enabled_when_disabled(): void + { + + $mock = new class extends PetsTable + { + public function configure(): void + { + parent::configure(); + $this->setFiltersDisabled(); + } + + public function setFiltersToEnabled() + { + $this->setFiltersEnabled(); + } + + public function setFiltersToDisabled() + { + $this->setFiltersDisabled(); + } + }; + + $mock->configure(); + $mock->boot(); + + $this->assertTrue($mock->filtersAreDisabled()); + $this->assertFalse($mock->filtersAreEnabled()); + + $mock->setFiltersToEnabled(); + $this->assertTrue($mock->filtersAreEnabled()); + $this->assertFalse($mock->filtersAreDisabled()); + + } +}