Files
FoodsharingOnboarding/FoodsharingSiegen.Server/Dialogs/AddProspectModal.razor
2022-05-31 15:08:55 +02:00

67 lines
1.8 KiB
Plaintext

@using FoodsharingSiegen.Contracts.Entity
@code {
private Modal ModalReference { get; set; } = null!;
private Prospect Prospect { get; set; } = new();
private string? Header { get; set; }
private string? SaveButtonText { get; set; }
private bool IsUpdateMode { get; set; }
[Parameter] public EventCallback<Prospect> OnAdd { get; set; }
[Parameter] public EventCallback<Prospect> OnUpdate { get; set; }
public async Task Show()
{
Prospect = new Prospect();
Header = "Neuling hinzufügen";
SaveButtonText = "Hinzufügen";
await ModalReference.Show();
}
public async Task Show(Prospect? prospect)
{
if (prospect == null) return;
Prospect = prospect;
IsUpdateMode = true;
Header = $"{Prospect.Name} bearbeiten";
SaveButtonText = "Speichern";
await ModalReference.Show();
}
private async Task SaveClick()
{
if (IsUpdateMode)
await OnUpdate.InvokeAsync(Prospect);
else
await OnAdd.InvokeAsync(Prospect);
await ModalReference.Hide();
}
}
<Modal @ref="@ModalReference">
<ModalContent Centered Size="ModalSize.Small">
<ModalHeader>
<ModalTitle>@Header</ModalTitle>
<CloseButton />
</ModalHeader>
<ModalBody>
<Field>
<FieldLabel>Name</FieldLabel>
<TextEdit @bind-Text="Prospect.Name" />
</Field>
<Field>
<FieldLabel>Foodsharing-ID</FieldLabel>
<NumericEdit TValue="int" @bind-Value="Prospect.FsId"></NumericEdit>
</Field>
</ModalBody>
<ModalFooter>
<Button Color="Color.Primary" Clicked="@SaveClick">@SaveButtonText</Button>
</ModalFooter>
</ModalContent>
</Modal>