KoogleApp/KoogleApp/Components/Controls/ThrowPanel.razor

104 lines
2.7 KiB
Plaintext

@using KoogleApp.Model
@using KoogleApp.Store.Game
@using KoogleApp.Store.Game.ThrowPanel
@inherits FluxorComponent
@inject IState<ThrowPanelState> ThrowPanelState
@inject IDispatcher Dispatcher
@if (ThrowPanelState.Value.IsStated)
{
<MudGrid>
<NumberPinPanel />
<MudItem xs="4">
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
<MudButton OnClick="SinkLeftClick">
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleLeft" Color="Color.Error"
Style="font-size: 3rem;"/>
Gosse
</MudButton>
</MudPaper>
</MudItem>
<MudItem xs="4">
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
<MudButton OnClick="ThrowClick">
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleUp" Color="Color.Success"
Style="font-size: 3rem;"/>
Wurf
</MudButton>
</MudPaper>
</MudItem>
<MudItem xs="4">
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
<MudButton OnClick="SinkRightClick">
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleRight" Color="Color.Error"
Style="font-size: 3rem;"/>
Gosse
</MudButton>
</MudPaper>
</MudItem>
</MudGrid>
}
@code {
[Parameter]
public EventCallback<ThrowEventArgs> OnClick { get; set; }
[Parameter]
public EventCallback<ThrowPanelState> OnStateChanged { get; set; }
// [Parameter]
// public ThrowPanelState? PanelState { get; set; }
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
Dispatcher.Dispatch(new LoadStateFromSessionAction());
}
base.OnAfterRender(firstRender);
}
private async Task OnNumberPinStateChanged(ThrowPanelState state)
{
await OnStateChanged.InvokeAsync(state);
}
private async Task SinkLeftClick(MouseEventArgs obj)
{
await DoThrow(true, false);
}
private async Task SinkRightClick(MouseEventArgs obj)
{
await DoThrow(false, true);
}
private async Task DoThrow(bool leftSink, bool rightSink)
{
var ev = new ThrowEventArgs
{
LeftSink = leftSink,
RightSink = rightSink
};
// if (GetDisabledState())
// return;
await OnClick.InvokeAsync(ev);
// Activatable?.Activate(this, ev);
}
private void ThrowClick(MouseEventArgs obj)
{
}
}