feat: grouping sort direction hiding

This commit is contained in:
Simeon Benson
2024-05-16 19:49:09 +07:00
parent 3ba14e7793
commit e22b2c3ff6
4 changed files with 52 additions and 38 deletions
@@ -2,7 +2,7 @@
'dropdownOnDesktop' => false,
'groups',
'triggerAction',
'groupingDirectionVisible' => true,
'groupingDirectionHidden' => false,
])
@php
@@ -72,23 +72,24 @@
</x-filament::input.wrapper>
</label>
<label x-cloak x-show="group" class="grid gap-y-2">
<span class="{{ $labelClasses }}">
{{ __('filament-tables::table.grouping.fields.direction.label') }}
</span>
@if ($groupingDirectionHidden)
<label x-cloak x-show="group" class="grid gap-y-2">
<span class="{{ $labelClasses }}">
{{ __('filament-tables::table.grouping.fields.direction.label') }}
</span>
<x-filament::input.wrapper>
<x-filament::input.select x-model="direction">
<option value="asc">
{{ __('filament-tables::table.grouping.fields.direction.options.asc') }}
</option>
<x-filament::input.wrapper>
<x-filament::input.select x-model="direction">
<option value="asc">
{{ __('filament-tables::table.grouping.fields.direction.options.asc') }}
</option>
<option value="desc">
{{ __('filament-tables::table.grouping.fields.direction.options.desc') }}
</option>
</x-filament::input.select>
</x-filament::input.wrapper>
</label>
<option value="desc">
{{ __('filament-tables::table.grouping.fields.direction.options.desc') }}
</option>
</x-filament::input.select>
</x-filament::input.wrapper>
</label>
@endif
</div>
</x-filament::dropdown>
@@ -117,25 +118,24 @@
</x-filament::input.wrapper>
</label>
<label x-cloak x-show="group">
<span class="sr-only">
{{ __('filament-tables::table.grouping.fields.direction.label') }}
</span>
@if ($groupingDirectionHidden)
<label x-cloak x-show="group">
<span class="sr-only">
{{ __('filament-tables::table.grouping.fields.direction.label') }}
</span>
<x-filament::input.wrapper>
<x-filament::input.select x-model="direction">
<option value="asc">
{{ __('filament-tables::table.grouping.fields.direction.options.asc') }}
</option>
@if ($groupingDirectionVisible)
<x-filament::input.wrapper>
<x-filament::input.select x-model="direction">
<option value="asc">
{{ __('filament-tables::table.grouping.fields.direction.options.asc') }}
</option>
<option value="desc">
{{ __('filament-tables::table.grouping.fields.direction.options.desc') }}
</option>
</x-filament::input.select>
</x-filament::input.wrapper>
@endif
</label>
<option value="desc">
{{ __('filament-tables::table.grouping.fields.direction.options.desc') }}
</option>
</x-filament::input.select>
</x-filament::input.wrapper>
</label>
@endif
</div>
@endif
</div>
@@ -42,7 +42,7 @@
$isReorderable = $isReorderable();
$isReordering = $isReordering();
$areGroupingSettingsVisible = (! $isReordering) && count($groups) && (! $areGroupingSettingsHidden());
$isGroupingDirectionVisible = (! $isGroupingDirectionHidden());
$isGroupingDirectionHidden = (! $isGroupingDirectionHidden());
$isColumnSearchVisible = $isSearchableByColumn();
$isGlobalSearchVisible = $isSearchable();
$isSearchOnBlur = $isSearchOnBlur();
@@ -199,7 +199,7 @@
:dropdown-on-desktop="$areGroupingSettingsInDropdownOnDesktop()"
:groups="$groups"
:trigger-action="$getGroupRecordsTriggerAction()"
:grouping-direction-visible="$isGroupingDirectionVisible"
:grouping-direction-hidden="$isGroupingDirectionHidden"
/>
@endif
@@ -58,7 +58,7 @@ trait CanGroupRecords
return $this;
}
public function groupingSortDirectionHidden(bool | Closure $condition = true): static
public function groupingDirectionHidden(bool | Closure $condition = true): static
{
$this->isGroupingDirectionHidden = $condition;
@@ -0,0 +1,14 @@
<?php
use Filament\Tests\Tables\Fixtures\PostsTable;
use Filament\Tests\Tables\TestCase;
use function Filament\Tests\livewire;
uses(TestCase::class);
it('can hide group direction when `groupingDirectionHidden()` method called', function (): void {
livewire(PostsTable::class)->assertHasNoErrors()
->assertDontSee('<x-filament::input.select x-model="direction">')
->assertDontSee(__('filament-tables::table.grouping.fields.direction.options.asc'))
->assertDontSee(__('filament-tables::table.grouping.fields.direction.options.desc'));
});