@php $storeLocked = \App\Support\StoreGate::isLocked(); $sidebarBadges = \App\Support\GudangBadgeCounter::counts(); $menuGroups = [ [ 'label' => 'Utama', 'items' => [ ['route' => 'gudang.dashboard', 'icon' => 'space_dashboard', 'text' => 'Dashboard Gudang'], ], ], [ 'label' => 'Persediaan', 'items' => [ ['route' => 'gudang.stok', 'icon' => 'inventory_2', 'text' => 'Data Stok'], ['route' => 'gudang.barang-masuk', 'icon' => 'archive', 'text' => 'Barang Masuk'], ['route' => 'gudang.barang-keluar', 'icon' => 'unarchive', 'text' => 'Barang Keluar'], ['route' => 'gudang.pemindahan', 'icon' => 'swap_horiz', 'text' => 'Pemindahan Stok', 'badge' => 'pemindahan'], ['route' => 'gudang.pemeriksaan', 'icon' => 'fact_check', 'text' => 'Pemeriksaan Stok', 'badge' => 'stok_menipis'], ['route' => 'gudang.stok-rusak', 'icon' => 'report', 'text' => 'Stok Rusak'], ['route' => 'gudang.riwayat-stok', 'icon' => 'history', 'text' => 'Riwayat Stok'], ['route' => 'gudang.bahan-produk', 'icon' => 'category', 'text' => 'Bahan Produk'], ['route' => 'gudang.kekurangan', 'icon' => 'assignment', 'text' => 'Kekurangan'], ], ], [ 'label' => 'Operasional', 'items' => [ ['route' => 'gudang.permintaan', 'icon' => 'send', 'text' => 'Permintaan', 'badge' => 'permintaan'], ['route' => 'gudang.notifikasi', 'icon' => 'notifications', 'text' => 'Notifikasi', 'badge' => 'notifikasi'], ], ], [ 'label' => 'Akun', 'items' => [ ['route' => 'gudang.profil', 'icon' => 'person', 'text' => 'Profil'], ], ], ]; @endphp
@foreach ($menuGroups as $group) @php $collapsible = count($group['items']) >= 3; $isActive = collect($group['items'])->contains(fn ($item) => request()->routeIs($item['route'])); $groupBadgeKeys = collect($group['items'])->filter(fn ($item) => ! empty($item['badge']))->pluck('badge')->values(); $groupHasBadges = $groupBadgeKeys->contains(fn ($key) => ($sidebarBadges[$key] ?? 0) > 0); @endphp
@if ($collapsible) @else
{{ $group['label'] }}
@endif
@foreach ($group['items'] as $item) @php $locked = $storeLocked && ! in_array($item['route'], ['gudang.dashboard', 'gudang.profil'], true); $isActive = request()->routeIs($item['route']); @endphp @if ($locked)
{{ $item['icon'] }} {{ $item['text'] }} lock
@else {{ $item['icon'] }} {{ $item['text'] }} {{ $item['text'] }} @if (! empty($item['badge']) && (($sidebarBadges[$item['badge']] ?? 0) > 0)) {{ min(99, $sidebarBadges[$item['badge']]) }} @elseif (! empty($item['badge'])) @endif @endif @endforeach
@endforeach