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)
{