Skip to content

Commit 65d3d99

Browse files
committed
Adding default slidedown capability
1 parent 7281989 commit 65d3d99

File tree

7 files changed

+118
-3
lines changed

7 files changed

+118
-3
lines changed

docs/filters/available-methods.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,31 @@ public function configure(): void
158158
}
159159
```
160160

161+
### setFilterSlideDownDefaultStatusEnabled
162+
163+
Set the filter slide down to visible by default
164+
165+
```php
166+
public function configure(): void
167+
{
168+
// Shorthand for $this->setFilterSlideDownDefaultStatus(true)
169+
$this->setFilterSlideDownDefaultStatusEnabled();
170+
}
171+
```
172+
173+
### setFilterSlideDownDefaultStatusDisabled
174+
175+
Set the filter slide down to invisible by default
176+
177+
```php
178+
public function configure(): void
179+
{
180+
// Shorthand for $this->setFilterSlideDownDefaultStatus(false)
181+
$this->setFilterSlideDownDefaultStatusDisabled();
182+
}
183+
```
184+
185+
161186
----
162187

163188
## Filter Methods

resources/views/components/wrapper.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
@endif
1414

1515
@if ($component->isFilterLayoutSlideDown())
16-
x-data="{ filtersOpen: false }"
16+
wire:ignore.self x-data="{ filtersOpen: $wire.filterSlideDownDefaultVisible }"
1717
@endif
1818
>
1919
@include('livewire-tables::includes.debug')

src/Traits/Configuration/FilterConfiguration.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,36 @@ public function setFilterLayoutSlideDown(): self
137137

138138
return $this;
139139
}
140+
141+
/**
142+
* @param bool $status
143+
*
144+
* @return $this
145+
*/
146+
public function setFilterSlideDownDefaultStatus(bool $status): self
147+
{
148+
$this->filterSlideDownDefaultVisible = $status;
149+
150+
return $this;
151+
}
152+
153+
/**
154+
* @return $this
155+
*/
156+
public function setFilterSlideDownDefaultStatusDisabled(): self
157+
{
158+
$this->setFilterSlideDownDefaultStatus(false);
159+
160+
return $this;
161+
}
162+
163+
/**
164+
* @return $this
165+
*/
166+
public function setFilterSlideDownDefaultStatusEnabled(): self
167+
{
168+
$this->setFilterSlideDownDefaultStatus(true);
169+
170+
return $this;
171+
}
140172
}

src/Traits/Helpers/FilterHelpers.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@ public function filtersVisibilityIsDisabled(): bool
3838
return $this->getFiltersVisibilityStatus() === false;
3939
}
4040

41+
public function getFilterSlideDownDefaultStatus(): bool
42+
{
43+
return $this->filterSlideDownDefaultVisible;
44+
}
45+
46+
public function filtersSlideDownIsDefaultVisible(): bool
47+
{
48+
return $this->getFilterSlideDownDefaultStatus() === true;
49+
}
50+
51+
public function filtersSlideDownIsDefaultHidden(): bool
52+
{
53+
return $this->getFilterSlideDownDefaultStatus() === false;
54+
}
55+
4156
public function getFilterPillsStatus(): bool
4257
{
4358
return $this->filterPillsStatus;
@@ -175,7 +190,7 @@ public function resetFilter($filter): void
175190
if (! $filter instanceof Filter) {
176191
$filter = $this->getFilterByKey($filter);
177192
}
178-
193+
179194
$this->setFilter($filter->getKey(), $filter->getDefaultValue());
180195
}
181196

src/Traits/WithFilters.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ trait WithFilters
1414
public bool $filtersStatus = true;
1515
public bool $filtersVisibilityStatus = true;
1616
public bool $filterPillsStatus = true;
17+
public bool $filterSlideDownDefaultVisible = false;
1718
public string $filterLayout = 'popover';
1819

1920
public function filters(): array

tests/Traits/Configuration/FilterConfigurationTest.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace Rappasoft\LaravelLivewireTables\Tests\Traits\Configuration;
44

5-
use Rappasoft\LaravelLivewireTables\Exceptions\DataTableConfigurationException;
65
use Rappasoft\LaravelLivewireTables\Tests\TestCase;
6+
use Rappasoft\LaravelLivewireTables\Exceptions\DataTableConfigurationException;
77

88
class FilterConfigurationTest extends TestCase
99
{
@@ -100,4 +100,26 @@ public function filters_layout_can_be_set(): void
100100

101101
$this->basicTable->setFilterLayout('popover');
102102
}
103+
104+
/** @test */
105+
public function filters_layout_popover_default_can_be_set(): void
106+
{
107+
$this->assertFalse($this->basicTable->filterSlideDownDefaultVisible);
108+
109+
$this->basicTable->setFilterSlideDownDefaultStatusEnabled();
110+
111+
$this->assertTrue($this->basicTable->filterSlideDownDefaultVisible);
112+
113+
$this->basicTable->setFilterSlideDownDefaultStatusDisabled();
114+
115+
$this->assertFalse($this->basicTable->filterSlideDownDefaultVisible);
116+
117+
$this->basicTable->setFilterSlideDownDefaultStatus(true);
118+
119+
$this->assertTrue($this->basicTable->filterSlideDownDefaultVisible);
120+
121+
$this->basicTable->setFilterSlideDownDefaultStatus(false);
122+
123+
$this->assertFalse($this->basicTable->filterSlideDownDefaultVisible);
124+
}
103125
}

tests/Traits/Helpers/FilterHelpersTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,4 +167,24 @@ public function can_check_if_filter_layout_is_slidedown(): void
167167

168168
$this->assertTrue($this->basicTable->isFilterLayoutSlideDown());
169169
}
170+
171+
/** @test */
172+
public function can_check_if_filter_layout_slidedown_is_visible(): void
173+
{
174+
$this->assertFalse($this->basicTable->getFilterSlideDownDefaultStatus());
175+
176+
$this->basicTable->setFilterSlideDownDefaultStatusEnabled();
177+
178+
$this->assertTrue($this->basicTable->getFilterSlideDownDefaultStatus());
179+
}
180+
181+
/** @test */
182+
public function can_check_if_filter_layout_slidedown_is_hidden(): void
183+
{
184+
$this->assertFalse($this->basicTable->getFilterSlideDownDefaultStatus());
185+
186+
$this->basicTable->setFilterSlideDownDefaultStatusDisabled();
187+
188+
$this->assertFalse($this->basicTable->getFilterSlideDownDefaultStatus());
189+
}
170190
}

0 commit comments

Comments
 (0)