From 0611927bfb627cfa9dddde84c655deeaaed88e3f Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Tue, 8 Dec 2020 13:35:57 +0100 Subject: [PATCH] Created SubmitButton component --- .../Components/SubmitButton.razor | 3 + .../Components/SubmitButton.razor.cs | 62 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor new file mode 100644 index 0000000000..97194720fe --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor @@ -0,0 +1,3 @@ + diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs new file mode 100644 index 0000000000..b4a7e13afd --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs @@ -0,0 +1,62 @@ +using System; +using System.Threading.Tasks; +using Blazorise; +using Microsoft.AspNetCore.Components; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class SubmitButton : ComponentBase + { + protected bool Submiting { get; set; } + + [Parameter] + public string Form { get; set; } + + [Parameter] + public ButtonType Type { get; set; } = ButtonType.Submit; + + [Parameter] + public Color Color { get; set; } = Color.Primary; + + [Parameter] + public bool PreventDefaultOnSubmit { get; set; } = true; + + [Parameter] + public bool Block { get; set; } + + [Parameter] + public bool? Disabled { get; set; } + + [Parameter] + public EventCallback Clicked { get; set; } + + [Parameter] + public RenderFragment ChildContent { get; set; } + + protected bool IsDisabled + => Disabled == true || Submiting; + + protected bool IsLoading + => Submiting; + + protected virtual async Task OnClickedHandler() + { + try + { + Submiting = true; + + await Clicked.InvokeAsync(null); + } + catch (Exception) + { + throw; + } + finally + { + Submiting = false; + + await InvokeAsync(StateHasChanged); + } + } + } +}