66 lines
1.8 KiB
Plaintext
66 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();
|
|
Header = "Neuling hinzufügen";
|
|
SaveButtonText = "Hinzufügen";
|
|
await ModalReference.Show();
|
|
}
|
|
|
|
public async Task Show(Prospect prospect)
|
|
{
|
|
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> |