@props(['menu', 'depth' => 0]) @php $sidebarMenuService = app(\App\Services\SidebarMenuService::class); $isActive = $sidebarMenuService->isMenuActive($menu); $paddingLeft = $depth > 0 ? ($depth * 0.75 + 0.75) . 'rem' : '0.75rem'; $url = $menu->url; if ($menu->is_external && $menu->external_url) { $url = $menu->external_url; } // 라우트명이 있으면 라우트 URL 사용 $routeName = $menu->getRouteName(); if ($routeName && !str_contains($routeName, '*') && \Route::has($routeName)) { $url = route($routeName); } $activeClass = $isActive ? 'bg-primary text-white hover:bg-primary' : 'text-gray-700 hover:bg-gray-100'; $target = $menu->is_external ? '_blank' : '_self'; // 즐겨찾기 여부 $isFavorited = isset($favoriteMenuIds) && in_array($menu->id, $favoriteMenuIds); // 메뉴 뱃지 확인 (라우트명 또는 URL 기준) $badgeCount = 0; $badgeColor = '#ef4444'; if (isset($menuBadges)) { $badge = null; // 라우트명으로 찾기 if ($routeName && isset($menuBadges['byRoute'][$routeName])) { $badge = $menuBadges['byRoute'][$routeName]; } // URL로 찾기 elseif ($menu->url && isset($menuBadges['byUrl'][$menu->url])) { $badge = $menuBadges['byUrl'][$menu->url]; } if ($badge) { $badgeCount = is_array($badge) ? ($badge['count'] ?? 0) : $badge; $badgeColor = is_array($badge) ? ($badge['color'] ?? '#ef4444') : '#ef4444'; } } @endphp