From 22f735f034503bb5a9260848c99ddcf09ad22788 Mon Sep 17 00:00:00 2001 From: beo3000 Date: Sun, 11 Jan 2026 16:59:31 +0100 Subject: [PATCH] mod: collapsable day header --- .../Components/Pages/Days/DayDetails.razor | 152 +++++++++++------- 1 file changed, 90 insertions(+), 62 deletions(-) diff --git a/src/Koogle.Web/Components/Pages/Days/DayDetails.razor b/src/Koogle.Web/Components/Pages/Days/DayDetails.razor index 8ad6f14..53184fa 100644 --- a/src/Koogle.Web/Components/Pages/Days/DayDetails.razor +++ b/src/Koogle.Web/Components/Pages/Days/DayDetails.razor @@ -52,68 +52,76 @@ else - - - - - - - @Day.PostDate.ToString("dddd, dd. MMMM yyyy") - - @GetStatusLabel(Day.Status) - - - - - @if (Day.Status == DayStatus.Started && !GameState.Value.IsGameActive) - { - - Neues Spiel - - } - @if (GameState.Value.IsGameActive) - { - - Spiel beenden - - } - @if (Day.Status != DayStatus.Closed) - { - - @GetNextStatusLabel(Day.Status) - - } - @if (Day.Status == DayStatus.New) - { - - Löschen - - } - - - + + @if (!_isHeaderCollapsed) + { + + + + + + @Day.PostDate.ToString("dddd, dd. MMMM yyyy") + @Day.PostDate.ToString("dd.MM.yyyy") + + @GetStatusLabel(Day.Status) + + + + + @if (Day.Status == DayStatus.Started && !GameState.Value.IsGameActive) + { + + Neues Spiel + + } + @if (GameState.Value.IsGameActive) + { + + Spiel beenden + + } + @if (Day.Status != DayStatus.Closed) + { + + @GetNextStatusLabel(Day.Status) + + } + @if (Day.Status == DayStatus.New) + { + + Löschen + + } + + + + } - - + +
+ + @@ -464,6 +472,7 @@ else +
} @code { @@ -474,7 +483,21 @@ else private IReadOnlyList Expenses => DayState.Value.SelectedDayExpenses; private Guid? _selectedParticipantId; - private int _activeTabIndex = 0; + private int _activeTabIndexBacking = 0; + private int _activeTabIndex + { + get => _activeTabIndexBacking; + set + { + _activeTabIndexBacking = value; + // Auto-collapse header on game tabs (Eingabe=1, Tafel=2) + if (value is 1 or 2) + { + _isHeaderCollapsed = true; + } + } + } + private bool _isHeaderCollapsed = true; private DayParticipantDto? SelectedParticipant => Day?.Participants.FirstOrDefault(p => p.PersonId == _selectedParticipantId); private IReadOnlyList OneClickExpenses => DayState.Value.AvailableExpenses.Where(e => e.IsOneClick && !e.IsVariable).ToList(); @@ -522,6 +545,11 @@ else _selectedParticipantId = null; } + private void ToggleHeader() + { + _isHeaderCollapsed = !_isHeaderCollapsed; + } + private void NavigateBack() { NavigationManager.NavigateTo("/days");