Help with Filament v3 Navigation Sorting: Positioning Single Items Between and After Groups
Hi! I'm using Filament v3 and trying to sort my navigation to have Dashboard, Users, Transactions, AppSettings (group with Settings Item 1 and 2), Settings Item 3 (single item), Tools (group), and Final Item (single item). I'm facing issues with:
1. Single items (e.g., Settings Item 3) appearing before groups due to
items()
rendering before groups()
.
2. Duplicate AppSettings group, possibly from resources with navigationGroup
.
I tried using pseudo-groups with empty labels (NavigationGroup::make('')
) to position single items after groups, but I want to confirm if this is the best approach. Here's my current AdminPanelProvider
navigation code:
```php
->navigation(function (NavigationBuilder $navigation) {
return $navigation->items([
NavigationItem::make('Dashboard')->url(fn (): string => Dashboard::getUrl())->icon('heroicon-o-home')->sort(1),
NavigationItem::make('Transactions')->url(fn (): string => TransactionResource::getUrl())->icon('heroicon-o-currency-dollar')->sort(2),
])->groups([
NavigationGroup::make('AppSettings')->icon('heroicon-o-cog')->collapsible()->collapsed()->items([
NavigationItem::make('Settings Item 1')->url(fn (): string => '/admin/settings-1')->icon('heroicon-o-cog')->sort(1),
NavigationItem::make('Settings Item 2')->url(fn (): string => '/admin/settings-2')->icon('heroicon-o-cog')->sort(2),
]),
NavigationGroup::make('')->items([
NavigationItem::make('Settings Item 3')->url(fn (): string => '/admin/settings-3')->icon('heroicon-o-cog')->sort(1),
]),
NavigationGroup::make('Tools')->icon('heroicon-o-wrench-screwdriver')->collapsible()->collapsed()
]);
})
Any advice on:
A cleaner way to position single items between/after groups without pseudo-groups?
Preventing duplicate groups (e.g., AppSettings) when using resources with navigationGroup?0 Replies