Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate Filter Code Appropriately #2146

Merged
merged 4 commits into from
Jan 4, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix styling
lrljoe authored and github-actions[bot] committed Jan 4, 2025
commit 32e129e35903a2f47be62a6a52f1d27525c832ff
2 changes: 0 additions & 2 deletions src/Traits/Configuration/FilterConfiguration.php
Original file line number Diff line number Diff line change
@@ -24,6 +24,4 @@ public function setFiltersDisabled(): self

return $this;
}


}
2 changes: 1 addition & 1 deletion src/Traits/Core/Filters/HandlesFilterTraits.php
Original file line number Diff line number Diff line change
@@ -10,4 +10,4 @@ trait HandlesFilterTraits
HasFilterPillsStyling,
HasFilterQueryString,
HasFiltersVisibility;
}
}
4 changes: 2 additions & 2 deletions src/Traits/Core/Filters/HasFilterGenericData.php
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@

namespace Rappasoft\LaravelLivewireTables\Traits\Core\Filters;

use Rappasoft\LaravelLivewireTables\DataTransferObjects\FilterGenericData;
use Livewire\Attributes\Computed;
use Rappasoft\LaravelLivewireTables\DataTransferObjects\FilterGenericData;

trait HasFilterGenericData
{
@@ -33,4 +33,4 @@ public function getFilterGenericData(): array

return $this->filterGenericData;
}
}
}
7 changes: 2 additions & 5 deletions src/Traits/Core/Filters/HasFilterMenuStyling.php
Original file line number Diff line number Diff line change
@@ -10,7 +10,6 @@

trait HasFilterMenuStyling
{

#[Locked]
public string $filterLayout = 'popover';

@@ -23,8 +22,7 @@ trait HasFilterMenuStyling

protected ?Closure $filterSlidedownRowCallback;


/**
/**
* Used to set attributes for the Filter Popover
*/
public function setFilterPopoverAttributes(array $filterPopoverAttributes): self
@@ -100,7 +98,7 @@ public function setFilterSlideDownDefaultStatusEnabled(): self
return $this;
}

/**
/**
* Used to get attributes for the Filter Popover
*
* @return array<mixed>
@@ -211,5 +209,4 @@ public function getFiltersByRow(): array

return $orderedFilters;
}

}
3 changes: 1 addition & 2 deletions src/Traits/Core/Filters/HasFilterPillsStyling.php
Original file line number Diff line number Diff line change
@@ -59,5 +59,4 @@ public function hasAppliedVisibleFiltersForPills(): bool
->reject(fn (Filter $filter) => $filter->isHiddenFromPills())
->count() > 0;
}

}
}
2 changes: 1 addition & 1 deletion src/Traits/Core/Filters/HasFilterQueryString.php
Original file line number Diff line number Diff line change
@@ -81,4 +81,4 @@ public function setQueryStringAliasForFilter(string $alias): self

return $this;
}
}
}
5 changes: 2 additions & 3 deletions src/Traits/Core/Filters/HasFiltersVisibility.php
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ public function getVisibleFilters(): Collection
{
return $this->getFilters()->reject(fn (Filter $filter) => $filter->isHiddenFromMenus());
}

#[Locked]
public bool $filtersVisibilityStatus = true;

@@ -61,5 +61,4 @@ public function setFiltersVisibilityDisabled(): self

return $this;
}

}
}
14 changes: 4 additions & 10 deletions src/Traits/Core/Filters/ManagesFilters.php
Original file line number Diff line number Diff line change
@@ -6,16 +6,14 @@
use Rappasoft\LaravelLivewireTables\Events\FilterApplied;

trait ManagesFilters
{

{
// Set in JS
public array $filterComponents = [];

// Set in Frontend
public array $appliedFilters = [];


/**
/**
* Sets Filter Default Values
*/
public function mountManagesFilters(): void
@@ -39,8 +37,7 @@ public function bootedManagesFilters(): void
{
$this->setBuilder($this->builder());

foreach($this->filterComponents as $filterKey => $value)
{
foreach ($this->filterComponents as $filterKey => $value) {
$this->appliedFilters[$filterKey] = $value;
}
}
@@ -71,7 +68,6 @@ public function applyFilters(): Builder
return $this->getBuilder();
}


public function updatedFilterComponents(string|array|null $value, string $filterName): void
{
$this->resetComputedPage();
@@ -101,6 +97,4 @@ public function updatedFilterComponents(string|array|null $value, string $filter
}

}


}
}
5 changes: 3 additions & 2 deletions src/Traits/Helpers/FilterHelpers.php
Original file line number Diff line number Diff line change
@@ -2,12 +2,12 @@

namespace Rappasoft\LaravelLivewireTables\Traits\Helpers;

use Illuminate\Support\Collection;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Livewire\Attributes\{Computed,On};
use Rappasoft\LaravelLivewireTables\Events\FilterApplied;
use Rappasoft\LaravelLivewireTables\Views\Filter;
use Rappasoft\LaravelLivewireTables\Views\Filters\{MultiSelectFilter,MultiSelectDropdownFilter};
use Rappasoft\LaravelLivewireTables\Views\Filters\{MultiSelectDropdownFilter, MultiSelectFilter};

trait FilterHelpers
{
@@ -45,6 +45,7 @@ public function getFiltersCount(): int
if (! isset($this->filterCount)) {
$this->filterCount = $this->getFilters()->count();
}

return $this->filterCount;
}

4 changes: 2 additions & 2 deletions src/Traits/Helpers/QueryHelpers.php
Original file line number Diff line number Diff line change
@@ -9,10 +9,10 @@ trait QueryHelpers
{
public function getBuilder(): Builder
{
if(!isset($this->builder))
{
if (! isset($this->builder)) {
$this->setBuilder($this->builder());
}

return $this->builder;
}

1 change: 0 additions & 1 deletion src/Traits/WithData.php
Original file line number Diff line number Diff line change
@@ -16,7 +16,6 @@

trait WithData
{

/**
* Retrieves the rows for the executed query
*/
3 changes: 1 addition & 2 deletions src/Traits/WithFilters.php
Original file line number Diff line number Diff line change
@@ -5,8 +5,8 @@
use Illuminate\Support\Collection;
use Livewire\Attributes\Locked;
use Rappasoft\LaravelLivewireTables\Traits\Configuration\FilterConfiguration;
use Rappasoft\LaravelLivewireTables\Traits\Helpers\FilterHelpers;
use Rappasoft\LaravelLivewireTables\Traits\Core\Filters\HandlesFilterTraits;
use Rappasoft\LaravelLivewireTables\Traits\Helpers\FilterHelpers;

trait WithFilters
{
@@ -26,5 +26,4 @@ public function filters(): array
{
return [];
}

}
2 changes: 1 addition & 1 deletion tests/TestCase.php
Original file line number Diff line number Diff line change
@@ -97,7 +97,7 @@ protected function setupBasicTable()
$view = view('livewire-tables::datatable');
$this->basicTable = new PetsTable;
$this->basicTable->mountManagesFilters();
$this->basicTable->boot();
$this->basicTable->boot();
$this->basicTable->bootedManagesFilters();
$this->basicTable->bootedComponentUtilities();
$this->basicTable->bootedWithColumns();
24 changes: 12 additions & 12 deletions tests/Unit/Traits/Helpers/SessionStorageHelpersTest.php
Original file line number Diff line number Diff line change
@@ -46,21 +46,21 @@ public function test_can_store_for_fikers(): void
'breed_select_filter' => null,
], $this->basicTable->filterComponents);
$this->assertSame(['breed' => ['1'],
'species' => [],
'breed_id_filter' => null,
'pet_name_filter' => null,
'last_visit_date_filter' => null,
'last_visit_datetime_filter' => null,
'breed_select_filter' => null], $this->basicTable->getStoredFilterValues());
'species' => [],
'breed_id_filter' => null,
'pet_name_filter' => null,
'last_visit_date_filter' => null,
'last_visit_datetime_filter' => null,
'breed_select_filter' => null], $this->basicTable->getStoredFilterValues());

$this->basicTable->setFilter('breed', ['2']);
$this->assertSame(['breed' => ['2'],
'species' => [],
'breed_id_filter' => null,
'pet_name_filter' => null,
'last_visit_date_filter' => null,
'last_visit_datetime_filter' => null,
'breed_select_filter' => null], $this->basicTable->filterComponents);
'species' => [],
'breed_id_filter' => null,
'pet_name_filter' => null,
'last_visit_date_filter' => null,
'last_visit_datetime_filter' => null,
'breed_select_filter' => null], $this->basicTable->filterComponents);
$this->assertSame(['2'], $this->basicTable->getAppliedFilterWithValue('breed'));
$this->assertSame(['breed' => ['2']], $this->basicTable->getStoredFilterValues());