<?php
namespace App\Sidebar;
use Shopper\Sidebar\Contracts\Builder\Menu;
use Shopper\Sidebar\Contracts\Builder\Group;
use Shopper\Sidebar\Contracts\Builder\Item;
use Shopper\Sidebar\Contracts\Sidebar;
class AdminSidebar implements Sidebar
{
public function __construct(private Menu $menu) {}
public function build(): void
{
$this->menu->group('Main', function (Group $group): void {
$group->weight(1);
$group->setAuthorized();
$group->setGroupItemsClass('space-y-1');
$group->item('Dashboard', function (Item $item): void {
$item->weight(1);
$item->setAuthorized();
$item->route('dashboard');
$item->setIcon('heroicon-o-home');
});
$group->item('Users', function (Item $item): void {
$item->weight(2);
$item->setAuthorized();
$item->route('users.index');
$item->setIcon('heroicon-o-users');
// Add sub-items
$item->item('All Users', function (Item $subItem): void {
$subItem->route('users.index');
});
$item->item('Create User', function (Item $subItem): void {
$subItem->route('users.create');
});
});
});
$this->menu->group('Settings', function (Group $group): void {
$group->weight(10);
$group->setAuthorized();
$group->item('General', function (Item $item): void {
$item->weight(1);
$item->route('settings.general');
$item->setIcon('heroicon-o-cog');
});
});
}
public function getMenu(): Menu
{
return $this->menu;
}
}