A Laravel Nova filter that renders into clickable pills.
digital-creative/nova-pill-filter is a Laravel package for a laravel nova filter that renders into clickable pills..
It currently has 16 GitHub stars and 61.340 downloads on Packagist (latest version v1.0.1).
Install it with composer require digital-creative/nova-pill-filter.
Discover more Laravel packages by digital-creative
or browse all Laravel packages to compare alternatives.
Last updated
A Laravel Nova filter that renders into clickable pills.
You can install the package via composer:
composer require digital-creative/nova-pill-filter
Create a filter as usual and extend the DigitalCreative\PillFilter\PillFilter class
use DigitalCreative\PillFilter\PillFilter;
class MyFilter extends PillFilter {
public function apply(Request $request, $query, $values)
{
// $values will always be an array
}
public function options(NovaRequest $request): array
{
return [
'Display Text 1' => 'value-1',
'Display Text 2' => 'value-2'
];
}
}
and use it as usual on the filters methods within your resource class:
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()
];
}
}
By default, multiple items can be selected, you can restrict it to a single item at time by calling ->single()
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()->single()
];
}
}
Additionally, you can customize the mode the filter is displayed, by default it wraps to show all pills at once, however
there is also a drag and stack mode:
| Drag Mode | Stack Mode | Wrap Mode |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 


class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()->dragMode(),
MyFilter::make()->stackMode(),
MyFilter::make()->wrapMode(),
];
}
}
Please give a ⭐️ if this project helped you!
Help card that comes with Nova.The MIT License (MIT). Please see License File for more information.