created daystate

This commit is contained in:
beo3000 2025-11-13 21:30:02 +01:00
parent 99505c1cb4
commit df85efcfd2
11 changed files with 109 additions and 6 deletions

View File

@ -8,6 +8,7 @@
@using KoogleApp.Components.Dialogs
@using KoogleApp.Model.EventMessages
@using KoogleApp.Model.Framework
@using KoogleApp.Store.Day
@using KoogleApp.Store.Game
@using KoogleApp.Store.Game.ThrowPanel
@using KoogleApp.Store.Game.UndoRedo
@ -23,7 +24,7 @@
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject IMyEventAggregator EventAggregator
@inject IState<ThrowPanelState> ThrowPanelState
@inject IState<UndoRedoState> UndoRedoState
@inject IState<DayState> DayState
@inject IDispatcher Dispatcher
@inject IDialogService DialogService
@ -56,7 +57,14 @@
@switch (_gameView)
{
case GameView.Throw:
<ThrowPanel />
if (DayState.Value.Status == DayStatus.New)
{
<p>todo</p>
}
else
{
<ThrowPanel />
}
break;
case GameView.Board:
<BoardPanel />
@ -89,6 +97,8 @@
// if (!ThrowPanelState.Value.IsConnected)
{
Dispatcher.Dispatch(new ConnectToHubAction());
Dispatcher.Dispatch(new InitializeDayAction());
Dispatcher.Dispatch(new UpdateUndoRedoStateAction());
}
}

View File

@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="Fluxor.Blazor.Web" Version="6.8.0" />
<PackageReference Include="Fluxor.Blazor.Web.ReduxDevTools" Version="6.8.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.10" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.10" />

View File

@ -3,6 +3,7 @@ using KoogleApp.Data;
using KoogleApp.Data.Repository;
using KoogleApp.Hub;
using System.Reflection;
using Fluxor.Blazor.Web.ReduxDevTools;
namespace KoogleApp.Services
{
@ -11,7 +12,8 @@ namespace KoogleApp.Services
public static IServiceCollection AddAppServices(this IServiceCollection services)
{
services.AddFluxor(x =>
x.ScanAssemblies(typeof(ServiceExtension).Assembly));
x.ScanAssemblies(typeof(ServiceExtension).Assembly)
.UseReduxDevTools());
services.AddScopedEventAggregator();
services.AddScoped<SessionStorage>();

View File

@ -0,0 +1,4 @@
namespace KoogleApp.Store.Day
{
public record InitializeDayAction();
}

View File

@ -0,0 +1,23 @@
using Fluxor;
using Fluxor.Blazor.Web;
using KoogleApp.Data;
namespace KoogleApp.Store.Day
{
public class DayStateEffects
{
private readonly SharedDataService _dataService;
public DayStateEffects(SharedDataService dataService)
{
_dataService = dataService;
}
[EffectMethod]
public async Task HandleInitializeDayAction(InitializeDayAction action, IDispatcher dispatcher)
{
}
}
}

View File

@ -0,0 +1,24 @@
using Fluxor;
using KoogleApp.Data;
namespace KoogleApp.Store.Day
{
public class DayStateFeature : Feature<DayState>
{
private readonly SharedDataService _dataService;
public DayStateFeature(SharedDataService dataService)
{
_dataService = dataService;
}
public override string GetName() => "DayState";
protected override DayState GetInitialState()
{
return new DayState();
}
}
}

View File

@ -0,0 +1,10 @@
using Fluxor;
namespace KoogleApp.Store.Day
{
public static class DayStateReducers
{
//[ReducerMethod]
}
}

View File

@ -0,0 +1,23 @@
using System.Diagnostics.CodeAnalysis;
using Fluxor;
using MudBlazor;
namespace KoogleApp.Store.Day
{
public enum DayStatus
{
New,
Started,
Finished
}
//[FeatureState]
public record DayState(int Number, DateTime Date, DayStatus Status)
{
public DayState() : this(Number: 0, Date: DateTime.Today, Status: DayStatus.New)
{
}
}
}

View File

@ -3,11 +3,11 @@ using KoogleApp.Data;
namespace KoogleApp.Store.Player
{
public class PlayerEffects
public class PlayerStateEffects
{
private readonly SharedDataService _dataService;
public PlayerEffects(SharedDataService dataService)
public PlayerStateEffects(SharedDataService dataService)
{
_dataService = dataService;
}

View File

@ -3,7 +3,7 @@ using System;
namespace KoogleApp.Store.Player
{
public class PlayersStateReducers
public static class PlayersStateReducers
{
[ReducerMethod]
public static PlayersState OnPlayersLoaded(PlayersState state, PlayersLoadedAction action)

View File

@ -11,4 +11,10 @@ Update Database:
## TODOs
- Redo State after start / lode or game stop
## Fluxor:
- https://dev.to/mr_eking/advanced-blazor-state-management-using-fluxor-part-5-14j2
-