Make tables legend an on-demand surface

This commit is contained in:
2026-03-21 15:15:28 +01:00
parent 0daef1f769
commit 6a5d024029
3 changed files with 26 additions and 1 deletions

View File

@@ -63,6 +63,8 @@
RollJumpValue="rollJumpValue"
DensityMode="densityMode"
OnTogglePin="TogglePinnedTableAsync"
IsLegendOpen="isLegendOpen"
OnToggleLegend="ToggleLegend"
OnModeChanged="UpdateReferenceModeAsync"
OnGroupChanged="UpdateSelectedGroupAsync"
OnColumnChanged="UpdateSelectedColumnAsync"
@@ -80,6 +82,11 @@
OnSelectCell="SelectCell"
OnOpenCuration="OpenCellCurationAsync"
OnOpenEditor="OpenCellEditorAsync" />
@if (isLegendOpen)
{
<TablesLegend LegendEntries="@(detail.Legend ?? Array.Empty<CriticalTableLegendEntry>())" />
}
</div>
}
</div>
@@ -167,6 +174,7 @@
private string rollJumpValue = string.Empty;
private string densityMode = TablesDensityMode.Comfortable;
private TablesCellSelection? selectedCell;
private bool isLegendOpen;
private bool hasResolvedStoredTableSelection;
private CriticalTableReference? SelectedTableReference =>
referenceData?.CriticalTables.FirstOrDefault(item => string.Equals(item.Key, selectedTableSlug, StringComparison.OrdinalIgnoreCase));
@@ -708,6 +716,12 @@
return Task.CompletedTask;
}
private Task ToggleLegend()
{
isLegendOpen = !isLegendOpen;
return Task.CompletedTask;
}
private void NormalizeViewStateForCurrentDetail()
{
referenceMode = NormalizeMode(referenceMode);

View File

@@ -8,6 +8,9 @@
<button type="button" class="btn btn-link" @onclick="() => OnTogglePin.InvokeAsync()">
@(IsPinned ? "Unpin table" : "Pin table")
</button>
<button type="button" class="btn btn-link" @onclick="() => OnToggleLegend.InvokeAsync()">
@(IsLegendOpen ? "Hide help" : "Reading help")
</button>
<p class="table-browser-edit-hint">Use the inspector to inspect, curate, or edit the selected result.</p>
</div>
</div>
@@ -143,6 +146,12 @@
[Parameter]
public EventCallback OnTogglePin { get; set; }
[Parameter]
public bool IsLegendOpen { get; set; }
[Parameter]
public EventCallback OnToggleLegend { get; set; }
[Parameter]
public EventCallback<string> OnModeChanged { get; set; }