@page "/ajout/manuel"
@inject ServiceLivresApi Api
@inject NavigationManager Navigation

<PageTitle>MaBibli — saisie manuelle</PageTitle>

<h1 class="titre-page">Saisie manuelle</h1>

<p class="message-discret">
    Pour les livres sans ISBN, ou dont aucune notice ne convient. L'ISBN reste facultatif.
</p>

<FormulaireLivre Saisie="_saisie"
                 LibelleValidation="Ajouter au catalogue"
                 Erreur="@_erreur"
                 EnCours="_enregistrement"
                 OnValider="EnregistrerAsync"
                 OnAnnuler="Retour" />

@code {
    private readonly EnregistrementLivre _saisie = new();
    private bool _enregistrement;
    private string? _erreur;

    private async Task EnregistrerAsync()
    {
        _enregistrement = true;
        _erreur = null;

        var resultat = await Api.CreerAsync(_saisie);

        _enregistrement = false;

        if (!resultat.EstOk)
        {
            _erreur = resultat.Erreur;
            return;
        }

        Navigation.NavigateTo("/");
    }

    private void Retour() => Navigation.NavigateTo("/");
}
