73 lines
2.1 KiB
Plaintext
73 lines
2.1 KiB
Plaintext
@using KoogleApp.Store.Game.Participants
|
|
@using KoogleApp.Store.Player
|
|
|
|
@inherits FluxorComponent
|
|
|
|
@inject IState<ParticipantsState> ParticipantsState
|
|
@inject IState<PlayersState> PlayersState
|
|
@inject IDispatcher Dispatcher
|
|
|
|
<MudSelect T="PlayerState" Label="" HelperText="aktuellen Spieler auswählen"
|
|
@bind-Value="Selected"
|
|
Converter="converter">
|
|
@foreach (var player in PlayersState.Value.Players.Where(p => ParticipantsState.Value.PlayerIds.Contains(p.Id)))
|
|
{
|
|
<MudSelectItem T="PlayerState" Value="@player">@player.Name</MudSelectItem>
|
|
}
|
|
</MudSelect>
|
|
|
|
@code {
|
|
Converter<PlayerState> converter = new Converter<PlayerState>
|
|
{
|
|
SetFunc = value => value?.Name,
|
|
GetFunc = text => null,
|
|
};
|
|
|
|
// PlayerState? _selected => ValueSelector(PlayersState.Value); // PlayersState.Value.Players.FirstOrDefault(_ => _.Id == ParticipantsState.Value.PlayerIds.First());
|
|
|
|
|
|
PlayerState? Selected
|
|
{
|
|
get
|
|
{
|
|
if (ParticipantsState.Value != null && ParticipantsState.Value.PlayerIds.Length > 0)
|
|
{
|
|
return PlayersState.Value.Players.FirstOrDefault(_ => _.Id == ParticipantsState.Value.PlayerIds.First());
|
|
}
|
|
return null;
|
|
}
|
|
set
|
|
{
|
|
if (value != null)
|
|
Dispatcher.Dispatch(new SelectedPlayerChangedAction(ParticipantsState.Value, value.Id));
|
|
}
|
|
}
|
|
|
|
// [Parameter, EditorRequired]
|
|
// public Action<PlayerState?> OnPlayerSelected
|
|
// {
|
|
// get;
|
|
// set;
|
|
// } = null!;
|
|
|
|
[Parameter]
|
|
public Func<PlayersState, PlayerState> ValueSelector
|
|
{
|
|
get;
|
|
set;
|
|
} = null!;
|
|
|
|
// protected override void OnAfterRender(bool firstRender)
|
|
// {
|
|
// if (firstRender)
|
|
// {
|
|
// if (ParticipantsState.Value.PlayerIds.Length > 0)
|
|
// {
|
|
// _selected = PlayersState.Value.Players.FirstOrDefault(_ => _.Id == ParticipantsState.Value.PlayerIds.First());
|
|
// StateHasChanged();
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
}
|