From 0d7a4d9ba5649f889492823d0f71f69e4ba1ebd8 Mon Sep 17 00:00:00 2001 From: beo3000 Date: Mon, 10 Nov 2025 16:03:02 +0100 Subject: [PATCH] dev --- .../Components/Controls/NumberPanel.razor | 9 +--- .../Components/Controls/NumberPinPanel.razor | 37 ++-------------- .../Components/Controls/ThrowPanel.razor | 6 +-- .../Components/Dialogs/StartGameDialog.razor | 42 ++++++++++++++++--- KoogleApp/Components/Pages/Game.razor | 26 ++++++------ KoogleApp/Store/Game/ThrowPanel/Reducers.cs | 17 +++++++- KoogleApp/ThrowPanelState.json | 16 +++---- 7 files changed, 78 insertions(+), 75 deletions(-) diff --git a/KoogleApp/Components/Controls/NumberPanel.razor b/KoogleApp/Components/Controls/NumberPanel.razor index 8653108..32a96f0 100644 --- a/KoogleApp/Components/Controls/NumberPanel.razor +++ b/KoogleApp/Components/Controls/NumberPanel.razor @@ -37,7 +37,7 @@ - @if (ShowNumbers) + @if (ThrowPanelState.Value.ThrowMode == ThrowMode.Reposition) { @@ -136,13 +136,6 @@ @code { - - [Parameter] - public bool ShowNumbers - { - get; - set; - } [Parameter] public bool CanSelectPlayer diff --git a/KoogleApp/Components/Controls/NumberPinPanel.razor b/KoogleApp/Components/Controls/NumberPinPanel.razor index 9cb9909..69bca8f 100644 --- a/KoogleApp/Components/Controls/NumberPinPanel.razor +++ b/KoogleApp/Components/Controls/NumberPinPanel.razor @@ -4,46 +4,15 @@ - + - + @code { - // [Parameter] - // public ThrowPanelState? ThrowPanelState { get; set; } - - - - PinPanel _pinPanel; - NumberPanel _numberPanel; - - [Parameter] - public bool ShowNumbers - { - get; - set; - } - - [Parameter] - public bool CanSelectPlayers - { - get; - set; - } - - // public void UpdatePanelState(ThrowPanelState state) - // { - // _pinPanel.UpdatePanelState(state); - - // } - + } diff --git a/KoogleApp/Components/Controls/ThrowPanel.razor b/KoogleApp/Components/Controls/ThrowPanel.razor index b409822..72622d5 100644 --- a/KoogleApp/Components/Controls/ThrowPanel.razor +++ b/KoogleApp/Components/Controls/ThrowPanel.razor @@ -10,11 +10,7 @@ @if (ThrowPanelState.Value.IsStated) { - - - + diff --git a/KoogleApp/Components/Dialogs/StartGameDialog.razor b/KoogleApp/Components/Dialogs/StartGameDialog.razor index 230adf6..ea17341 100644 --- a/KoogleApp/Components/Dialogs/StartGameDialog.razor +++ b/KoogleApp/Components/Dialogs/StartGameDialog.razor @@ -9,9 +9,12 @@ - - in die Vollen - Abräumen + + @foreach (var item in _items) + { + @item.Item1 + } @@ -21,10 +24,25 @@ @code { + private List> _items = new List>(); + + protected override void OnAfterRender(bool firstRender) + { + if (firstRender) + { + _items.Add(new Tuple("in die Vollen", ThrowMode.Reposition)); + _items.Add(new Tuple("Abräumen", ThrowMode.Decrease)); + + _valueThrowMode = _items[0]; + StateHasChanged(); + } + } + [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } - public ThrowMode ThrowMode { get; set; } = ThrowMode.Reposition; + // [Parameter] + private Tuple _valueThrowMode; [Parameter] public string Description { get; set; } = ""; @@ -36,7 +54,21 @@ // if (!string.IsNullOrEmpty(Description)) { // Snackbar.Add("Favorite added", Severity.Success); - MudDialog.Close(DialogResult.Ok(ThrowMode)); + MudDialog.Close(DialogResult.Ok(new StartParams(_valueThrowMode.Item2, 3))); } } + + private string ValueToString(ThrowMode item) + { + switch (item) + { + case ThrowMode.Reposition: + return "Abräumen"; + case ThrowMode.Decrease: + return "in die Vollen"; + default: + throw new ArgumentOutOfRangeException(nameof(item), item, null); + } + } + } diff --git a/KoogleApp/Components/Pages/Game.razor b/KoogleApp/Components/Pages/Game.razor index 79d0291..9742dc3 100644 --- a/KoogleApp/Components/Pages/Game.razor +++ b/KoogleApp/Components/Pages/Game.razor @@ -202,7 +202,7 @@ // await hubConnection.StartAsync(); - + } // private async Task OnBoardPanelStateChanged(ThrowPanelState state) @@ -239,18 +239,18 @@ private async Task UndoClick() { - // if (hubConnection is not null) - // { - // await hubConnection.SendAsync("RequestUndo", _userName); - // } + // if (hubConnection is not null) + // { + // await hubConnection.SendAsync("RequestUndo", _userName); + // } } private async Task RedoClick() { - // if (hubConnection is not null) - // { - // await hubConnection.SendAsync("RequestRedo", _userName); - // } + // if (hubConnection is not null) + // { + // await hubConnection.SendAsync("RequestRedo", _userName); + // } } private async Task StartStopClick() @@ -262,16 +262,16 @@ var options = new DialogOptions { - + }; - + var dialog = await DialogService.ShowAsync("Spiel starten", parameters, options); var result = await dialog.Result; - + var startParams = result.Data as StartParams; if (!result.Canceled) { - var action = new StartStopAction(ThrowPanelState.Value, new StartParams()); + var action = new StartStopAction(ThrowPanelState.Value, startParams); Dispatcher.Dispatch(action); } } diff --git a/KoogleApp/Store/Game/ThrowPanel/Reducers.cs b/KoogleApp/Store/Game/ThrowPanel/Reducers.cs index 46d4a1c..af83287 100644 --- a/KoogleApp/Store/Game/ThrowPanel/Reducers.cs +++ b/KoogleApp/Store/Game/ThrowPanel/Reducers.cs @@ -41,9 +41,22 @@ namespace KoogleApp.Store.Game.ThrowPanel } [ReducerMethod] - public static ThrowPanelState OnStartStop(ThrowPanelState state, StartStopAction stopAction) + public static ThrowPanelState OnStartStop(ThrowPanelState state, StartStopAction startStopAction) { - return state with { IsStated = !state.IsStated }; + if (state.IsStated) + { + return state with { IsStated = false }; + } + + if (startStopAction.StartParams != null) + return state with + { + IsStated = !state.IsStated, + ThrowMode = startStopAction.StartParams.ThrowMode, + ThrowsPerRound = startStopAction.StartParams.ThrowsPerRound + }; + + return state; } [ReducerMethod] diff --git a/KoogleApp/ThrowPanelState.json b/KoogleApp/ThrowPanelState.json index 497f0ec..fb3e902 100644 --- a/KoogleApp/ThrowPanelState.json +++ b/KoogleApp/ThrowPanelState.json @@ -1,12 +1,12 @@ { - "IsStated": false, - "BellValue": true, - "Pin1Value": false, - "Pin2Value": false, - "Pin3Value": false, - "Pin4Value": false, - "Pin5Value": false, - "Pin6Value": false, + "IsStated": true, + "BellValue": false, + "Pin1Value": true, + "Pin2Value": true, + "Pin3Value": true, + "Pin4Value": true, + "Pin5Value": true, + "Pin6Value": true, "Pin7Value": true, "Pin8Value": true, "Pin9Value": true,