Skip to content

Commit 11e95ba

Browse files
committed
Fixes for Filter Trait Tidy Up
1 parent 0359bb8 commit 11e95ba

File tree

6 files changed

+60
-56
lines changed

6 files changed

+60
-56
lines changed

src/Traits/Core/HasCustomAttributes.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,29 @@ public function setCustomAttributes(string $propertyName, array $customAttribute
4646

4747
return $this;
4848
}
49+
50+
protected function mergeCustomAttributes(string $propertyName, array $customAttributes): self
51+
{
52+
$mergedArray = array_merge($this->{$propertyName}, $customAttributes);
53+
ksort($mergedArray);
54+
$this->{$propertyName} = $mergedArray;
55+
56+
return $this;
57+
}
58+
59+
protected function mergeCustomAttributesClassic(string $propertyName, array $customAttributes): self
60+
{
61+
$attributes = [...$this->getCustomAttributes(propertyName: $propertyName, default: false, classicMode: true), ...$customAttributes];
62+
ksort($attributes);
63+
return $this->setCustomAttributes($propertyName, $attributes);
64+
}
65+
66+
protected function mergeCustomAttributesModern(string $propertyName, array $customAttributes): self
67+
{
68+
$attributes = [...$this->getCustomAttributes(propertyName: $propertyName, default: false, classicMode: false), ...$customAttributes];
69+
ksort($attributes);
70+
return $this->setCustomAttributes($propertyName, $attributes);
71+
}
4972

5073
public function getCustomAttributesBagFromArray(array $attributesArray): ComponentAttributeBag
5174
{

src/Traits/Filters/HandlesFilterTraits.php

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/Traits/Filters/HasFilterQueryString.php

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ trait HasFilterQueryString
1111

1212
protected ?string $queryStringAliasForFilter;
1313

14-
protected function queryStringHasQueryStringForFilter(): array
14+
protected function queryStringHasFilterQueryString(): array
1515
{
1616
return ($this->queryStringForFilterIsEnabled()) ?
1717
[
@@ -29,56 +29,47 @@ protected function setupQueryStringStatusForFilter(): void
2929

3030
public function hasQueryStringStatusForFilter(): bool
3131
{
32-
return isset($this->queryStringStatusForFilter);
32+
return $this->hasQueryStringConfigStatus('filters');
3333
}
3434

3535
public function getQueryStringStatusForFilter(): bool
3636
{
37-
return $this->queryStringStatusForFilter ?? true;
37+
return $this->getQueryStringConfigStatus('filters');
3838
}
3939

4040
public function queryStringForFilterIsEnabled(): bool
4141
{
42-
$this->setupQueryStringStatusForFilter();
4342

4443
return $this->getQueryStringStatusForFilter() && $this->filtersAreEnabled();
4544
}
4645

4746
public function setQueryStringStatusForFilter(bool $status): self
4847
{
49-
$this->queryStringStatusForFilter = $status;
50-
51-
return $this;
48+
return $this->setQueryStringConfigStatus('filters', $status);
5249
}
5350

5451
public function setQueryStringForFilterEnabled(): self
5552
{
56-
$this->setQueryStringStatusForFilter(true);
57-
58-
return $this;
53+
return $this->setQueryStringStatusForFilter(true);
5954
}
6055

6156
public function setQueryStringForFilterDisabled(): self
6257
{
63-
$this->setQueryStringStatusForFilter(false);
64-
65-
return $this;
58+
return $this->setQueryStringStatusForFilter(false);
6659
}
6760

6861
public function hasQueryStringAliasForFilter(): bool
6962
{
70-
return isset($this->queryStringAliasForFilter);
63+
return $this->hasQueryStringConfigAlias('filters');
7164
}
7265

7366
public function getQueryStringAliasForFilter(): string
7467
{
75-
return $this->queryStringAliasForFilter ?? $this->getQueryStringAlias().'-filters';
68+
return $this->getQueryStringConfigAlias('filters');
7669
}
7770

7871
public function setQueryStringAliasForFilter(string $alias): self
7972
{
80-
$this->queryStringAliasForFilter = $alias;
81-
82-
return $this;
73+
return $this->setQueryStringConfigAlias('filters', $alias);
8374
}
8475
}

src/Traits/WithFilters.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,32 @@
22

33
namespace Rappasoft\LaravelLivewireTables\Traits;
44

5-
use Rappasoft\LaravelLivewireTables\Traits\Filters\HandlesFilterTraits;
5+
use Illuminate\Support\Collection;
6+
use Livewire\Attributes\Locked;
7+
use Rappasoft\LaravelLivewireTables\Traits\Filters\{HasFiltersStatus, HasFilterGenericData, HasFilterMenu, HasFilterPills, HasFilterQueryString, HasFiltersVisibility, ManagesFilters,Configuration\FilterConfiguration, Helpers\FilterHelpers};
68

79
trait WithFilters
810
{
9-
use HandlesFilterTraits;
11+
use FilterConfiguration,
12+
FilterHelpers,
13+
HasFiltersStatus,
14+
HasFilterGenericData,
15+
HasFilterMenu,
16+
HasFilterPills,
17+
HasFilterQueryString,
18+
HasFiltersVisibility,
19+
ManagesFilters;
20+
21+
// Set in JS
22+
public array $filterComponents = [];
23+
24+
// Set in Frontend
25+
public array $appliedFilters = [];
26+
27+
#[Locked]
28+
public int $filterCount;
29+
30+
protected ?Collection $filterCollection;
1031

1132
public function filters(): array
1233
{

src/Traits/WithQueryString.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ trait WithQueryString
1414
#[Locked]
1515
public array $queryStringConfig = [
1616
'columns' => ['status' => false, 'alias' => null],
17-
'filter' => ['status' => false, 'alias' => null],
17+
'filters' => ['status' => false, 'alias' => null],
1818
'search' => ['status' => true, 'alias' => null],
1919
'sorts' => ['status' => true, 'alias' => null],
2020
];

tests/Unit/Traits/Styling/FilterPopoverStylingTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ final class FilterPopoverStylingTest extends TestCase
1010
{
1111
public function test_filter_popover_attributes_returns_default_if_not_set(): void
1212
{
13-
$this->assertSame(['class' => '', 'default-width' => true, 'default-colors' => true, 'default-styling' => true], $this->basicTable->getFilterPopoverAttributes());
13+
$this->assertSame(['class' => '', 'default-colors' => true, 'default-styling' => true, 'default-width' => true], $this->basicTable->getFilterPopoverAttributes());
1414
}
1515

1616
public function test_filter_popover_attributes_can_be_changed(): void
1717
{
18-
$this->assertSame(['class' => '', 'default-width' => true, 'default-colors' => true, 'default-styling' => true], $this->basicTable->getFilterPopoverAttributes());
18+
$this->assertSame(['class' => '', 'default-colors' => true, 'default-styling' => true, 'default-width' => true], $this->basicTable->getFilterPopoverAttributes());
1919

2020
$this->basicTable->setFilterPopoverAttributes(['class' => 'bg-blue-500']);
2121

22-
$this->assertSame(['class' => 'bg-blue-500', 'default-width' => true, 'default-colors' => true, 'default-styling' => true], $this->basicTable->getFilterPopoverAttributes());
22+
$this->assertSame(['class' => 'bg-blue-500', 'default-colors' => true, 'default-styling' => true, 'default-width' => true], $this->basicTable->getFilterPopoverAttributes());
2323

2424
$this->basicTable->setFilterPopoverAttributes(['class' => 'bg-red-500', 'default-colors' => false]);
2525

26-
$this->assertSame(['class' => 'bg-red-500', 'default-width' => true, 'default-colors' => false, 'default-styling' => true], $this->basicTable->getFilterPopoverAttributes());
26+
$this->assertSame(['class' => 'bg-red-500', 'default-colors' => false, 'default-styling' => true, 'default-width' => true], $this->basicTable->getFilterPopoverAttributes());
2727

2828
}
2929
}

0 commit comments

Comments
 (0)