diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index f85e665b..b51c6926 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -64,14 +64,14 @@ public function boot(): void $counts = app(ApprovalService::class)->getBadgeCounts(auth()->id()); $menuBadges = [ 'byRoute' => [ - 'approvals.pending' => $counts['pending'], - 'approvals.drafts' => $counts['draft'], - 'approvals.references' => $counts['reference_unread'], + 'approvals.pending' => ['count' => $counts['pending'], 'color' => '#ef4444'], + 'approvals.drafts' => ['count' => $counts['draft'], 'color' => '#3b82f6'], + 'approvals.references' => ['count' => $counts['reference_unread'], 'color' => '#10b981'], ], 'byUrl' => [ - '/approval-mgmt/pending' => $counts['pending'], - '/approval-mgmt/drafts' => $counts['draft'], - '/approval-mgmt/references' => $counts['reference_unread'], + '/approval-mgmt/pending' => ['count' => $counts['pending'], 'color' => '#ef4444'], + '/approval-mgmt/drafts' => ['count' => $counts['draft'], 'color' => '#3b82f6'], + '/approval-mgmt/references' => ['count' => $counts['reference_unread'], 'color' => '#10b981'], ], ]; } catch (\Throwable $e) { diff --git a/resources/views/components/sidebar/menu-item.blade.php b/resources/views/components/sidebar/menu-item.blade.php index 474ae49f..7d366d08 100644 --- a/resources/views/components/sidebar/menu-item.blade.php +++ b/resources/views/components/sidebar/menu-item.blade.php @@ -24,14 +24,20 @@ // 메뉴 뱃지 확인 (라우트명 또는 URL 기준) $badgeCount = 0; + $badgeColor = '#ef4444'; if (isset($menuBadges)) { + $badge = null; // 라우트명으로 찾기 if ($routeName && isset($menuBadges['byRoute'][$routeName])) { - $badgeCount = $menuBadges['byRoute'][$routeName]; + $badge = $menuBadges['byRoute'][$routeName]; } // URL로 찾기 elseif ($menu->url && isset($menuBadges['byUrl'][$menu->url])) { - $badgeCount = $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 @@ -48,7 +54,8 @@ class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm {{ $activeClass }}" @endif {{ $menu->name }} @if($badgeCount > 0) - + {{ $badgeCount > 99 ? '99+' : $badgeCount }} @endif