28 lines
580 B
C#
28 lines
580 B
C#
using static Shogi.UI.Shared.Events;
|
|
|
|
namespace Shogi.UI.Pages.Home.Account;
|
|
|
|
public class AccountState
|
|
{
|
|
public event AsyncEventHandler<LoginEventArgs>? LoginChangedEvent;
|
|
|
|
public User? User { get; private set; }
|
|
|
|
public Task SetUser(User? user)
|
|
{
|
|
User = user;
|
|
return EmitLoginChangedEvent();
|
|
}
|
|
|
|
private async Task EmitLoginChangedEvent()
|
|
{
|
|
if (LoginChangedEvent is not null)
|
|
{
|
|
await LoginChangedEvent.Invoke(new LoginEventArgs
|
|
{
|
|
User = User
|
|
});
|
|
}
|
|
}
|
|
}
|