63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
namespace RpgRoller.Components.Pages;
|
|
|
|
public sealed class FormState<TModel>
|
|
where TModel : new()
|
|
{
|
|
public TModel Model { get; } = new();
|
|
public Dictionary<string, string> Errors { get; } = [];
|
|
public string? ErrorMessage { get; set; }
|
|
|
|
public void ResetValidation()
|
|
{
|
|
Errors.Clear();
|
|
ErrorMessage = null;
|
|
}
|
|
}
|
|
|
|
public sealed class FormSubmissionResult
|
|
{
|
|
public Dictionary<string, string> Errors { get; init; } = [];
|
|
public string? ErrorMessage { get; init; }
|
|
public bool IsSuccess => Errors.Count == 0 && string.IsNullOrWhiteSpace(ErrorMessage);
|
|
}
|
|
|
|
public sealed class RegisterFormModel
|
|
{
|
|
public string Username { get; set; } = string.Empty;
|
|
public string DisplayName { get; set; } = string.Empty;
|
|
public string Password { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class LoginFormModel
|
|
{
|
|
public string Username { get; set; } = string.Empty;
|
|
public string Password { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class CampaignFormModel
|
|
{
|
|
public string Name { get; set; } = string.Empty;
|
|
public string RulesetId { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class CharacterFormModel
|
|
{
|
|
public string Name { get; set; } = string.Empty;
|
|
public string CampaignId { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class SkillFormModel
|
|
{
|
|
public string Name { get; set; } = string.Empty;
|
|
public string DiceRollDefinition { get; set; } = string.Empty;
|
|
public int WildDice { get; set; }
|
|
public bool AllowFumble { get; set; }
|
|
}
|
|
|
|
public enum HomeViewMode
|
|
{
|
|
Loading,
|
|
Anonymous,
|
|
Workspace
|
|
}
|