diff --git a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigFieldDisplay.razor b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigFieldDisplay.razor index 9b2edef..7b6e1f2 100644 --- a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigFieldDisplay.razor +++ b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigFieldDisplay.razor @@ -34,7 +34,7 @@ @fragment(Descriptor) } - + } @@ -54,14 +54,14 @@ else {
  • + FieldKey="@FieldKey" ReadonlyBadgeAnchorId="@_readonlyBadgeAnchorId" RawValue="@value" HasPendingChange="@_hasPendingChange" />
  • } else {
  • @@ -70,11 +70,9 @@ else @code { [Parameter] public EffectiveConfigFieldDescriptor Descriptor { get; set; } = null!; + [Parameter] public string FieldKey { get; set; } = ""; [Parameter] public bool IsEditMode { get; set; } [Parameter] public bool IsActive { get; set; } - [Parameter] public string? ActiveFieldKey { get; set; } - [Parameter] public EventCallback OnActivateEdit { get; set; } - [Parameter] public EventCallback OnEditCommitted { get; set; } [CascadingParameter] public IEffectiveConfigEditSession? Session { get; set; } private readonly string _anchorId = "ec-help-" + Guid.NewGuid().ToString("N")[..8]; @@ -127,8 +125,6 @@ else var args = new EffectiveConfigEditCommittedArgs(Descriptor.SectionId, Descriptor.OptionName, _valueAtActivation, newValue, source?.FilePath); if (Ui != null) await Ui.CommitFieldAsync(args); - else if (OnEditCommitted.HasDelegate) - await OnEditCommitted.InvokeAsync(args); } _draftValue = null; } diff --git a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigOptionItem.razor b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigOptionItem.razor index 9a10ea0..1ef9f55 100644 --- a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigOptionItem.razor +++ b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigOptionItem.razor @@ -7,14 +7,14 @@ { - + } else { @DisplayValue - + } @@ -34,7 +34,8 @@ else [Parameter] public bool ShowEditableBadge { get; set; } /// When true, badge shows "pending" and warning style to indicate this field has an unsaved change. [Parameter] public bool HasPendingChange { get; set; } - [Parameter] public EventCallback OnActivateEdit { get; set; } + /// Field key for activation via context when editable badge is clicked. + [Parameter] public string FieldKey { get; set; } = ""; /// When true, add ec-field-editing class and show input when DisplayMode is Edit. [Parameter] public bool IsActive { get; set; } /// When Edit and not readonly: raised when the user changes the value. Not yet wired to save. diff --git a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigPanels.razor b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigPanels.razor index d0759a0..46b21ad 100644 --- a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigPanels.razor +++ b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigPanels.razor @@ -23,8 +23,7 @@ var isOpen = hasSearch || IsSectionOpen(view.SectionId); + IsEditMode="@IsEditMode" ActiveFieldKey="@ActiveFieldKey" /> } @@ -36,8 +35,6 @@ [Parameter] public EventCallback OnSectionToggle { get; set; } [Parameter] public bool IsEditMode { get; set; } [Parameter] public string? ActiveFieldKey { get; set; } - [Parameter] public EventCallback OnActivateField { get; set; } - [Parameter] public EventCallback OnFieldEditCommitted { get; set; } private bool IsSectionOpen(string id) => OpenSectionIds.Contains(id); diff --git a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigSection.razor b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigSection.razor index 4ac0199..889772e 100644 --- a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigSection.razor +++ b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/EffectiveConfigSection.razor @@ -22,8 +22,7 @@ + OnSectionToggle="OnSectionToggle" IsEditMode="@Session.IsEditMode" ActiveFieldKey="@Session.ActiveFieldKey" /> + } @@ -37,8 +33,6 @@ [Parameter] public EffectiveConfigDisplayMode DisplayMode { get; set; } = EffectiveConfigDisplayMode.View; [Parameter] public bool IsEditMode { get; set; } [Parameter] public string? ActiveFieldKey { get; set; } - [Parameter] public EventCallback OnActivateField { get; set; } - [Parameter] public EventCallback OnFieldEditCommitted { get; set; } private async Task ToggleSection() => await OnToggle.InvokeAsync(SectionId); } diff --git a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/OptionStateBadge.razor b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/OptionStateBadge.razor index 588ceb5..f86df2b 100644 --- a/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/OptionStateBadge.razor +++ b/src/DnsmasqWebUI/Components/Dnsmasq/EffectiveConfig/OptionStateBadge.razor @@ -22,7 +22,7 @@ else if (ShowEditableBadge) {