using Microsoft.AspNetCore.Mvc; namespace PlanTempus.Application.Features.Dashboard.Components; public class NotificationListViewComponent : ViewComponent { public IViewComponentResult Invoke(string key) { var model = NotificationListCatalog.Get(key); return View(model); } } public class NotificationListViewModel { public required string Key { get; init; } public required string Title { get; init; } public required string ActionText { get; init; } public required IReadOnlyList NotificationKeys { get; init; } } public static class NotificationListCatalog { private static readonly Dictionary Lists = new() { ["recent-notifications"] = new NotificationListViewModel { Key = "recent-notifications", Title = "Notifikationer", ActionText = "Marker alle som læst", NotificationKeys = ["notif-1", "notif-2", "notif-3", "notif-4"] } }; public static NotificationListViewModel Get(string key) { if (Lists.TryGetValue(key, out var list)) return list; throw new KeyNotFoundException($"NotificationList with key '{key}' not found"); } }