diff --git a/resources/views/layouts/partials/sidebar.blade.php b/resources/views/layouts/partials/sidebar.blade.php
index 7bbae35..14ddefe 100644
--- a/resources/views/layouts/partials/sidebar.blade.php
+++ b/resources/views/layouts/partials/sidebar.blade.php
@@ -17,10 +17,22 @@
@php
+ // Menentukan apakah sebuah menu (atau anaknya) aktif berdasarkan request('menu_id')
+ function isActiveMenu($menu, $currentId) {
+ if (!$currentId) return false;
+ if ((string)$menu->id === (string)$currentId) return true;
+ foreach ($menu->children as $child) {
+ if (isActiveMenu($child, $currentId)) return true;
+ }
+ return false;
+ }
+
function renderMenu($menus) {
+ $currentMenuId = request('menu_id');
foreach ($menus as $menu) {
$collapseId = "sidebar-" . $menu->id;
$hasChildren = $menu->children->count() > 0;
+ $isActive = isActiveMenu($menu, $currentMenuId);
// Pastikan route tersedia dan boleh ditampilkan
$menuUrl = '#';
@@ -28,14 +40,14 @@
if (Route::has($menu->url)) {
$menuUrl = route($menu->url, ['menu_id' => $menu->id]);
} else {
- $menuUrl = $menu->url . '?menu_id=' . $menu->id;
+ $menuUrl = $menu->url . (strpos($menu->url, '?') !== false ? '&' : '?') . 'menu_id=' . $menu->id;
}
}
- echo '';
- echo '';
if ($hasChildren) {
- echo '
+ echo '
';
renderMenu($menu->children);
echo '
';
@@ -72,4 +84,52 @@
@for ($i = 0; $i < 20; $i++)
@endfor
-
\ No newline at end of file
+
+
+
\ No newline at end of file