Iceshrimp.NET/Iceshrimp.Frontend/Components/StateButton.razor
2024-09-13 21:44:31 +02:00

28 lines
No EOL
1 KiB
Text

<button @onclick="OnClick" class="@ExtraClasses">
@(State switch
{
StateEnum.Initial => Initial,
StateEnum.Loading => Loading,
StateEnum.Failed => Failed,
StateEnum.Success => Success,
_ => throw new ArgumentOutOfRangeException()
})
</button>
@code {
[Parameter] [EditorRequired] public required EventCallback OnClick { get; set; }
[Parameter] [EditorRequired] public required RenderFragment Initial { get; set; }
[Parameter] [EditorRequired] public required RenderFragment Loading { get; set; }
[Parameter] [EditorRequired] public required RenderFragment Failed { get; set; }
[Parameter] [EditorRequired] public required RenderFragment Success { get; set; }
[Parameter] public string? ExtraClasses { get; set; }
public StateEnum State { get; set; }
public enum StateEnum
{
Initial,
Loading,
Failed,
Success
}
}