@page "/" @rendermode InteractiveServer @using TodoTicketApp.Models @using TodoTicketApp.Services @inject ITicketService TicketService @inject NavigationManager Nav Ticket Dashboard
@{ bool dividerShown = false; } @foreach (var ticket in TicketService.GetPendingTickets()) { // Sobald das erste wartende Ticket auftaucht und der Trenner noch nicht da ist: @if (ticket.IsWaitingForFeedback && !dividerShown) {

Wartende Tickets
dividerShown = true; // Trenner wurde gezeichnet, nicht nochmal anzeigen }
@ticket.Priority
@ticket.Title
@ticket.CreatedAt.ToLocalTime().ToString("g")

@(ticket.Description.Length > 200 ? ticket.Description.Substring(0, 200) + "..." : ticket.Description)

}
@code { private string newTicketTitle = ""; private async Task HandleKeyUp(KeyboardEventArgs e) { if (e.Key == "Enter" && !string.IsNullOrWhiteSpace(newTicketTitle)) { var newTicket = new Ticket { Title = newTicketTitle }; TicketService.AddTicket(newTicket); newTicketTitle = ""; // Hier könnten wir direkt auf die Detailseite navigieren: // Nav.NavigateTo($"/ticket/edit/{newTicket.Id}"); } } private void ToggleWaitingStatus(Ticket ticket) { // Status umkehren ticket.IsWaitingForFeedback = !ticket.IsWaitingForFeedback; // In der Datenbank speichern TicketService.UpdateTicket(ticket); // UI explizit anweisen, sich neu zu sortieren StateHasChanged(); } private void Complete(Guid id) { TicketService.CompleteTicket(id); StateHasChanged(); } private void GoToDetails(Guid id) => Nav.NavigateTo($"/ticket/edit/{id}"); }