FIX contact parameter not working

This commit is contained in:
Frede Hundewadt 2023-05-22 18:09:37 +02:00
parent 0d22adecb1
commit e1a358f8b7
7 changed files with 113 additions and 128 deletions

View file

@ -14,34 +14,11 @@
*@ *@
@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components
@using Wonky.Client.Components @using Wonky.Client.Components
@using Wonky.Entity.Configuration
@attribute [Authorize(Roles = "Advisor")] @attribute [Authorize(Roles = "Advisor")]
@page "/advisor/customers/{CompanyId}" @page "/advisor/customers/{CompanyId}"
<PageTitle>Stamkort for @Company.Name</PageTitle> <PageTitle>Stamkort for @Company.Name</PageTitle>
@*
<div class="led-container">
<div class="led-box">
<div class="led-green"></div>
<p>Green LED</p>
</div>
<div class="led-box">
<div class="led-yellow"></div>
<p>Yellow LED</p>
</div>
<div class="led-box">
<div class="led-red"></div>
<p>Red LED</p>
</div>
<div class="led-box">
<div class="led-blue"></div>
<p>Blue LED</p>
</div>
</div>
*@
@if (!string.IsNullOrWhiteSpace(Company.Account)) @if (!string.IsNullOrWhiteSpace(Company.Account))
{ {
@if (!string.IsNullOrWhiteSpace(Company.Blocked)) @if (!string.IsNullOrWhiteSpace(Company.Blocked))
@ -253,7 +230,7 @@
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label> <label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
<div id="contacts" class="col-sm-11"> <div id="contacts" class="col-sm-11">
<div class="list-group"> <div class="list-group">
<div class="list-group-item list-group-item-action bg-dark text-white" onclick="@(() => OpenContactPopup(DefaultContact))"> <div class="list-group-item list-group-item-action bg-dark text-white" @onclick="@(() => OpenContactPopup(DefaultContact))">
<div class="row"> <div class="row">
<div class="col-sm-4">Stilling</div> <div class="col-sm-4">Stilling</div>
<div class="col-sm-4">Navn</div> <div class="col-sm-4">Navn</div>
@ -267,7 +244,7 @@
{ {
@foreach (var contact in Contacts) @foreach (var contact in Contacts)
{ {
<div class="list-group-item list-group-item-action" onclick="@(() => OpenContactPopup(contact))"> <div class="list-group-item list-group-item-action" @onclick="@(() => OpenContactPopup(contact))">
<div class="row g-2"> <div class="row g-2">
<div class="col-sm-4">@contact.JobTitle</div> <div class="col-sm-4">@contact.JobTitle</div>
<div class="col-sm-4">@contact.FirstName @contact.LastName</div> <div class="col-sm-4">@contact.FirstName @contact.LastName</div>
@ -318,7 +295,7 @@
<button type="button" class="btn btn-outline-dark" onclick="@ToggleVisibility">@ToggleButtonText</button> <button type="button" class="btn btn-outline-dark" onclick="@ToggleVisibility">@ToggleButtonText</button>
</div> </div>
<div class="col-sm-4 d-grid"> <div class="col-sm-4 d-grid">
@if (AppInfo.Value.Rc) @if (AppInfo!.Value!.Rc)
{ {
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a> <a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
} }
@ -333,5 +310,6 @@
<VatLookupDkModal VatAddress="CompanyVatAddress" EntityName="@Company.Name" VatNumber="@Company.VatNumber" <VatLookupDkModal VatAddress="CompanyVatAddress" EntityName="@Company.Name" VatNumber="@Company.VatNumber"
@ref="VatLookupPopup" OnSelectedCompany="SelectedCompanyCallback"/> @ref="VatLookupPopup" OnSelectedCompany="SelectedCompanyCallback"/>
<ContactModal ParamContact="@SelectedContact" CompanyName="@Company.Name"
@ref="ContactPopup" OnSaveClicked="WriteContactCallback" OnDeleteClicked="DeleteContactCallback"/> <ContactViewEditModal SelectedContact="SelectedContact" CompanyName="@Company.Name"
@ref="ContactViewPopup" OnSaveClicked="WriteContactCallback" OnDeleteClicked="DeleteContactCallback"/>

View file

@ -72,13 +72,13 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
private bool ErpEditDisabled { get; set; } = true; private bool ErpEditDisabled { get; set; } = true;
private bool VatEditDisabled { get; set; } = true; private bool VatEditDisabled { get; set; } = true;
private List<ContactDto> Contacts { get; set; } = new(); private List<ContactDto> Contacts { get; set; } = new();
private VatLookupDkModal VatLookupPopup { get; set; } = new();
private ContactDto SelectedContact { get; set; } = new();
private ContactDto DefaultContact { get; set; } = new();
private ContactModal ContactPopup { get; set; } = new();
private UserManagerEditView UserInfo { get; set; } = new(); private UserManagerEditView UserInfo { get; set; } = new();
private string ToggleButtonText { get; set; } = ""; private string ToggleButtonText { get; set; } = "";
private bool Kanvas { get; set; } private bool Kanvas { get; set; }
private ContactDto SelectedContact { get; set; } = new();
private ContactDto DefaultContact { get; set; } = new();
private ContactViewEditModal ContactViewPopup { get; set; } = new();
private VatLookupDkModal VatLookupPopup { get; set; } = new();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
@ -88,6 +88,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
// initialize default contact // initialize default contact
DefaultContact = new ContactDto { CompanyId = CompanyId, ContactId = "", FirstName = "" }; DefaultContact = new ContactDto { CompanyId = CompanyId, ContactId = "", FirstName = "" };
// setup form context // setup form context
ErpContext = new EditContext(Company); ErpContext = new EditContext(Company);
@ -171,16 +172,19 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
Working = false; Working = false;
} }
private void ToggleErpEdit() private void ToggleErpEdit()
{ {
ErpEditDisabled = !ErpEditDisabled; ErpEditDisabled = !ErpEditDisabled;
} }
private void ToggleVatEdit() private void ToggleVatEdit()
{ {
VatEditDisabled = !VatEditDisabled; VatEditDisabled = !VatEditDisabled;
} }
private async Task ToggleVisibility() private async Task ToggleVisibility()
{ {
Company.IsHidden = Company.IsHidden == 0 ? 1 : 0; Company.IsHidden = Company.IsHidden == 0 ? 1 : 0;
@ -190,6 +194,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
await CustomerRepo.UpdateCrmData(CompanyId, Company); await CustomerRepo.UpdateCrmData(CompanyId, Company);
} }
private async Task RequestErpUpdate() private async Task RequestErpUpdate()
{ {
if (Working) if (Working)
@ -199,10 +204,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
Working = false; Working = false;
} }
/// <summary>
/// Fetch contacts from backend
/// </summary>
/// <param name="companyId"></param>
private async Task FetchContacts(string companyId) private async Task FetchContacts(string companyId)
{ {
// load contacts // load contacts
@ -211,18 +213,13 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
Contacts = Contacts.OrderBy(x => x.FirstName).ToList(); Contacts = Contacts.OrderBy(x => x.FirstName).ToList();
} }
/// <summary>
/// Show Vat Lookup modal
/// </summary>
private void OpenVatLookupModal() private void OpenVatLookupModal()
{ {
VatLookupPopup.Show(); VatLookupPopup.Show();
} }
/// <summary>
/// Callback to update company properties
/// </summary>
/// <param name="regInfo"></param>
private void SelectedCompanyCallback(VirkRegInfo regInfo) private void SelectedCompanyCallback(VirkRegInfo regInfo)
{ {
Logger.LogDebug("CrmCompanyView => SelectCompanyCallback => {}", JsonSerializer.Serialize(regInfo)); Logger.LogDebug("CrmCompanyView => SelectCompanyCallback => {}", JsonSerializer.Serialize(regInfo));
@ -244,24 +241,22 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
Company.VatNumber = regInfo.VatNumber; Company.VatNumber = regInfo.VatNumber;
} }
/// <summary>
/// Open contact edit popup
/// </summary>
/// <param name="contact"></param>
private void OpenContactPopup(ContactDto contact) private void OpenContactPopup(ContactDto contact)
{ {
// write contact to debug log // write contact to debug log
Logger.LogDebug("CompanyView => SaveContactCallback <= {}", JsonSerializer.Serialize(contact)); Logger.LogDebug("CompanyView => OpenContactPopup => contact => {}", JsonSerializer.Serialize(contact));
// object to pass on to the popup // object to pass on to the popup
SelectedContact = contact; SelectedContact = contact;
Logger.LogDebug("CompanyView => OpenContactPopup => SelectedContact => {}", JsonSerializer.Serialize(SelectedContact));
// show the popup // show the popup
ContactPopup.Show(); ContactViewPopup.Show();
} }
/// <summary>
/// Callback for writing contact to backend
/// </summary>
/// <param name="contact"></param>
private async Task WriteContactCallback(ContactDto contact) private async Task WriteContactCallback(ContactDto contact)
{ {
Working = true; Working = true;

View file

@ -122,7 +122,7 @@
<i class="bi-clipboard-plus"></i> <i class="bi-clipboard-plus"></i>
</label> </label>
<input class="form-control text-muted" id="qrlink" type="text" readonly value="@Workplace.ShortUrl"/> <input class="form-control text-muted" id="qrlink" type="text" readonly value="@Workplace.ShortUrl"/>
<button type="button" class="@_buttonStyle" @onclick="@OnCopyLink">@_buttonText</button> <button type="button" class="@_copyButtonStyle" @onclick="@OnCopyLink">@_copyButtonText</button>
</div> </div>
</div> </div>
<div class="col-sm-12 col-md-6"> <div class="col-sm-12 col-md-6">
@ -153,7 +153,7 @@
<a class="btn btn-dark btn-sm" href="@docView.ApvDocLink" target="_blank"><i class="bi-filetype-html"></i> Kemisk Risiko Vurdering</a> <a class="btn btn-dark btn-sm" href="@docView.ApvDocLink" target="_blank"><i class="bi-filetype-html"></i> Kemisk Risiko Vurdering</a>
</div> </div>
<div class="col-sm-1"> <div class="col-sm-1">
<button type="button" class="btn btn-danger btn-sm" @onclick="@(() => OnRemoveVariant(docView.ProductId, docView.VariantId))"> <button type="button" class="btn btn-danger btn-sm" @onclick="@(() => OnConfirmDeleteVariant(docView))">
<i class="bi-trash"></i> <i class="bi-trash"></i>
</button> </button>
</div> </div>
@ -178,3 +178,4 @@
} }
<ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveWorkplace" @ref="ConfirmDeleteWorkplace"/> <ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveWorkplace" @ref="ConfirmDeleteWorkplace"/>
<ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveVariant" @ref="ConfirmDeleteVariant"/>

View file

@ -55,15 +55,16 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
private WorkplaceInventory WorkplaceInventory { get; set; } = new(); private WorkplaceInventory WorkplaceInventory { get; set; } = new();
private List<DocView> DocViews { get; set; } = new(); private List<DocView> DocViews { get; set; } = new();
private ConfirmDeleteModal ConfirmDeleteWorkplace { get; set; } private ConfirmDeleteModal ConfirmDeleteWorkplace { get; set; }
private ConfirmDeleteModal ConfirmDeleteProduct { get; set; } private ConfirmDeleteModal ConfirmDeleteVariant { get; set; }
private string DeleteMessage { get; set; } = ""; private string DeleteMessage { get; set; } = "";
private string LinkRecipients { get; set; } = ""; private string LinkRecipients { get; set; } = "";
private const string CopyText = "Kopier"; private const string CopyText = "Kopier";
private const string CopyStyle = "btn btn-primary"; private const string CopyStyle = "btn btn-primary";
private const string SuccessText = "Kopieret"; private const string CopySuccessText = "Kopieret";
private const string SuccessStyle = "btn btn-success"; private const string CopySuccessStyle = "btn btn-success";
private string _buttonText = CopyText; private string _copyButtonText = CopyText;
private string _buttonStyle = CopyStyle; private string _copyButtonStyle = CopyStyle;
private DocView SelectedProduct { get; set; } = new();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@ -136,23 +137,26 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
{ {
await Clipboard.CopyToClipboard(Workplace.ShortUrl); await Clipboard.CopyToClipboard(Workplace.ShortUrl);
_buttonText = SuccessText; _copyButtonText = CopySuccessText;
_buttonStyle = SuccessStyle; _copyButtonStyle = CopySuccessStyle;
StateHasChanged(); StateHasChanged();
await Task.Delay(TimeSpan.FromSeconds(2)); await Task.Delay(TimeSpan.FromSeconds(2));
_buttonText = CopyText; _copyButtonText = CopyText;
_buttonStyle = CopyStyle; _copyButtonStyle = CopyStyle;
} }
private async Task OnSubmitUpdate() private async Task OnSubmitUpdate()
{ {
Working = true; Working = true;
await Workplaces.UpdateWorkplace(CompanyId, Workplace); await Workplaces.UpdateWorkplace(CompanyId, Workplace);
Working = false; Working = false;
Toaster.ShowSuccess("Arbejdssted er opdateret"); Toaster.ShowSuccess("Arbejdssted er opdateret");
} }
@ -160,7 +164,9 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
private void OnConfirmDeleteWorkplace() private void OnConfirmDeleteWorkplace()
{ {
DeleteMessage = $"Bekræft at du sletter<br/><strong>{Workplace.Name}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig."; DeleteMessage = $"Bekræft at du sletter<br/><strong>{Workplace.Name}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig.";
Logger.LogDebug("ConfirmDeleteWorkplace"); Logger.LogDebug("ConfirmDeleteWorkplace");
ConfirmDeleteWorkplace.Show(); ConfirmDeleteWorkplace.Show();
} }
@ -168,35 +174,58 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
private async Task RemoveWorkplace() private async Task RemoveWorkplace()
{ {
Logger.LogDebug("DeleteWorkplace"); Logger.LogDebug("DeleteWorkplace");
Working = true; Working = true;
await Workplaces.DeleteWorkplace(CompanyId, WorkplaceId); await Workplaces.DeleteWorkplace(CompanyId, WorkplaceId);
Toaster.ShowInfo("Arbejdssted er slettet."); Toaster.ShowInfo("Arbejdssted er slettet.");
Navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces"); Navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces");
} }
private async Task OnRemoveVariant(string productId, string variantId) private void OnConfirmDeleteVariant(DocView selectedProduct)
{ {
// delete the apb and apv SelectedProduct = selectedProduct;
var product = WorkplaceInventory
.Products.First(x => x.ProductId == productId);
var variant = product.Variants.First(x => x.VariantId == variantId);
Logger.LogDebug("variant => {}", JsonSerializer.Serialize(variant, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
foreach (var doc in variant.Docs) DeleteMessage = $"Bekræft at du sletter<br/><strong>{selectedProduct.VariantName}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig.";
Logger.LogDebug("ConfirmDeleteProduct");
ConfirmDeleteVariant.Show();
}
private async Task RemoveVariant()
{
if (Working)
{ {
await WorkplaceRepo.DeleteWorkplaceDocuments(CompanyId, WorkplaceId, doc.DocumentId); return;
} }
Working = true;
var product = WorkplaceInventory
.Products
.First(x => x.ProductId == SelectedProduct.ProductId);
await WorkplaceRepo
.DeleteWorkplaceDocuments(CompanyId, WorkplaceId, SelectedProduct.ApbDocId, SelectedProduct.ApvDocId);
WorkplaceInventory.Products.Remove(product); WorkplaceInventory.Products.Remove(product);
DocViews = GenerateDocumentListView(); DocViews = GenerateDocumentListView();
Toaster.ShowInfo("Produkt dokumenter er slettet."); Toaster.ShowInfo("Produkt dokumenter er slettet.");
Working = false;
} }
private List<DocView> GenerateDocumentListView() private List<DocView> GenerateDocumentListView()
{ {
var docViews = new List<DocView>(); var docViews = new List<DocView>();
var docProducts = WorkplaceInventory.Products.OrderBy(x => x.TradingName).ToList(); var docProducts = WorkplaceInventory.Products.OrderBy(x => x.TradingName).ToList();
foreach (var product in docProducts) foreach (var product in docProducts)

View file

@ -24,54 +24,50 @@
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button> <button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<EditForm Model="Contact" OnValidSubmit="SubmitContact"> <EditForm Model="SelectedContact" OnValidSubmit="SubmitContact">
<DataAnnotationsValidator/> <DataAnnotationsValidator/>
<InputText type="hidden" @bind-Value="@Contact.CompanyId"/> <InputText type="hidden" @bind-Value="@SelectedContact.CompanyId"/>
<InputText type="hidden" @bind-Value="@Contact.ContactId"/> <InputText type="hidden" @bind-Value="@SelectedContact.ContactId"/>
<div class="row g-3"> <div class="row g-3">
<div class="col-sm-6"> <div class="col-sm-6">
<label for="firstName">Fornavn</label> <label for="firstName">Fornavn</label>
<InputText id="firstName" class="form-control" @bind-Value="Contact.FirstName"/> <InputText id="firstName" class="form-control" @bind-Value="SelectedContact.FirstName"/>
<ValidationMessage For="@(() => Contact.FirstName)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.FirstName)"></ValidationMessage>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="lastName">Efternavn</label> <label for="lastName">Efternavn</label>
<InputText id="lastName" class="form-control" @bind-Value="Contact.LastName"/> <InputText id="lastName" class="form-control" @bind-Value="SelectedContact.LastName"/>
<ValidationMessage For="@(() => Contact.LastName)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.LastName)"></ValidationMessage>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="jobTitle">Job Titel</label> <label for="jobTitle">Job Titel</label>
<InputText id="jobTitle" class="form-control" @bind-Value="Contact.JobTitle"/> <InputText id="jobTitle" class="form-control" @bind-Value="SelectedContact.JobTitle"/>
<ValidationMessage For="@(() => Contact.JobTitle)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.JobTitle)"></ValidationMessage>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="phone">Direkte nr.</label> <label for="phone">Direkte nr.</label>
<InputText id="phone" class="form-control" @bind-Value="Contact.PhoneDirect"/> <InputText id="phone" class="form-control" @bind-Value="SelectedContact.PhoneDirect"/>
<ValidationMessage For="@(() => Contact.PhoneDirect)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.PhoneDirect)"></ValidationMessage>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="email">Epost</label> <label for="email">Epost</label>
<InputText id="email" class="form-control" @bind-Value="Contact.Email" /> <InputText id="email" class="form-control" @bind-Value="SelectedContact.Email"/>
<ValidationMessage For="@(() => Contact.Email)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.Email)"></ValidationMessage>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="mobile">Mobil</label> <label for="mobile">Mobil</label>
<InputText id="mobile" class="form-control" @bind-Value="Contact.Mobile" /> <InputText id="mobile" class="form-control" @bind-Value="SelectedContact.Mobile"/>
<ValidationMessage For="@(() => Contact.Mobile)"></ValidationMessage> <ValidationMessage For="@(() => SelectedContact.Mobile)"></ValidationMessage>
</div> </div>
</div> </div>
<div class="row mt-3"> <div class="row mt-3">
<div class="col-sm-6"> <div class="col-sm-6">
@if (string.IsNullOrWhiteSpace(Contact.ContactId)) <button type="button" class="btn btn-danger"
{ onclick="@DeleteContact"
<button type="button" class="btn btn-danger" disabled>Slet</button> disabled="@(string.IsNullOrWhiteSpace(SelectedContact.ContactId))">Slet</button>
}
else
{
<button type="button" class="btn btn-danger" @onclick="DeleteContact">Slet</button>
}
</div> </div>
<div class="col-sm-6 text-end"> <div class="col-sm-6 text-end">
<button type="button" class="btn btn-secondary" onclick="@Hide">Afbryd</button>
<button type="submit" class="btn btn-primary">Gem</button> <button type="submit" class="btn btn-primary">Gem</button>
</div> </div>
</div> </div>

View file

@ -27,51 +27,36 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Shared; namespace Wonky.Client.Shared;
public partial class ContactModal public partial class ContactViewEditModal
{ {
[Parameter] public ContactDto ParamContact { get; set; } = new(); // ##############################################################
[Inject] public ILogger<ContactViewEditModal> Logger { get; set; }
// ##############################################################
[Parameter] public ContactDto SelectedContact { get; set; }
[Parameter] public string CompanyName { get; set; } = ""; [Parameter] public string CompanyName { get; set; } = "";
[Parameter] public ICrmContactRepository ContactRepo { get; set; }
[Parameter] public HttpInterceptorService Interceptor { get; set; }
[Parameter] public EventCallback<ContactDto> OnSaveClicked { get; set; } [Parameter] public EventCallback<ContactDto> OnSaveClicked { get; set; }
[Parameter] public EventCallback<string> OnDeleteClicked { get; set; } [Parameter] public EventCallback<string> OnDeleteClicked { get; set; }
private ContactDto Contact { get; set; } = new();
// ##############################################################
private string _modalDisplay = ""; private string _modalDisplay = "";
private bool _showBackdrop; private bool _showBackdrop;
private bool DisableDelete { get; set; }
private bool FormInvalid { get; set; }
protected override void OnParametersSet()
{
Contact = new ContactDto
{
CompanyId = ParamContact.CompanyId,
ContactId = ParamContact.ContactId,
FirstName = ParamContact.FirstName,
LastName = ParamContact.LastName,
JobTitle = ParamContact.JobTitle,
PhoneDirect = ParamContact.PhoneDirect
};
}
protected override void OnInitialized()
{
if (string.IsNullOrWhiteSpace(Contact.ContactId))
DisableDelete = true;
}
private void DeleteContact() private void DeleteContact()
{ {
OnDeleteClicked.InvokeAsync(Contact.ContactId); OnDeleteClicked.InvokeAsync(SelectedContact.ContactId);
Hide(); Hide();
} }
private void SubmitContact() private void SubmitContact()
{ {
OnSaveClicked.InvokeAsync(Contact); OnSaveClicked.InvokeAsync(SelectedContact);
Hide(); Hide();
} }
public void Show() public void Show()
{ {
_modalDisplay = "block;"; _modalDisplay = "block;";
@ -79,11 +64,12 @@ public partial class ContactModal
StateHasChanged(); StateHasChanged();
} }
private void Hide() private void Hide()
{ {
_modalDisplay = "none;"; _modalDisplay = "none;";
_showBackdrop = false; _showBackdrop = false;
Contact = new ContactDto(); SelectedContact = new ContactDto();
StateHasChanged(); StateHasChanged();
} }
} }

View file

@ -1,7 +1,7 @@
{ {
"appInfo": { "appInfo": {
"name": "Wonky Online", "name": "Wonky Online",
"version": "146.2", "version": "146.5",
"rc": true, "rc": true,
"sandBox": true, "sandBox": true,
"image": "grumpy-coder.png" "image": "grumpy-coder.png"