using Microsoft.AspNetCore.Mvc; using CalendarServer.Features.Menu.Models; using CalendarServer.Features.Menu.Services; namespace CalendarServer.Features.Menu; /// /// ViewComponent for rendering the side menu based on user role. /// public class SideMenuViewComponent : ViewComponent { private readonly IMenuService _menuService; public SideMenuViewComponent(IMenuService menuService) { _menuService = menuService; } public IViewComponentResult Invoke(UserRole? role = null) { // Default to Admin for demo (in real app, get from auth) var userRole = role ?? UserRole.Admin; var currentUrl = HttpContext.Request.Path.Value; var groups = _menuService.GetMenuForRole(userRole, currentUrl); var viewModel = new SideMenuViewModel { Groups = groups, CurrentUserRole = userRole }; return View(viewModel); } }