Newer
Older
hypermedia-blazorcrud / Blazorcrud.Client / Pages / Users / Form.razor
@Derek Comartin Derek Comartin on 12 Jul 1 KB Init
@inject Blazorcrud.Client.Shared.PageHistoryState PageHistoryState

<EditForm Model="@user" OnValidSubmit="@OnValidSubmit">
    <FluentValidator TValidator="UserValidator" />
    <div class="form-group">
        <label>First Name :</label>
        <div>
            <InputText @bind-Value="@user.FirstName" class="form-control col-sm-3" />
            <ValidationMessage For="@(() => user.FirstName)" />
        </div>
    </div>
    <div class="form-group">
        <label>Last Name :</label>
        <div>
            <InputText @bind-Value="@user.LastName" class="form-control col-sm-3" />
            <ValidationMessage For="@(() => user.LastName)" />
        </div>
    </div>
    <div class="form-group">
        <label>User Name :</label>
        <div>
            <InputText @bind-Value="@user.Username" class="form-control col-sm-3" />
            <ValidationMessage For="@(() => user.Username)" />
        </div>
    </div>
    <div class="form-group">
        <label>Password :</label>
        <div>
            <InputText @bind-Value="@user.Password" type="password" class="form-control col-sm-3" />
            <ValidationMessage For="@(() => user.Password)" />
        </div>
    </div>

    <div class="form-group">
        <button disabled="@loading" class="btn btn-primary">
            @if (loading) 
            {
                <span class="spinner-border spinner-border-sm mr-1"></span>
            }
            @ButtonText
        </button>
        @if (PageHistoryState.CanGoBack()){
            <NavLink href="@PageHistoryState.GetGoBackPage()" class="btn btn-link">Cancel</NavLink>
        }
        else{
            <NavLink href="/user/1" class="btn btn-link">Back</NavLink>
        }
    </div>

</EditForm>

@code {
    [Parameter]
    public User user { get; set; }
    [Parameter]
    public string ButtonText { get; set; } = "Save";
    [Parameter]
    public bool loading {get; set;} = false;
    [Parameter]
    public EventCallback OnValidSubmit { get; set; }
}