Add permanent table index rail layout
This commit is contained in:
@@ -11,16 +11,7 @@
|
||||
<PageTitle>Critical Tables</PageTitle>
|
||||
|
||||
<section class="panel tables-page">
|
||||
<TablesPageHeader
|
||||
ReferenceData="referenceData"
|
||||
SelectedTableReference="SelectedTableReference"
|
||||
SelectedTableSlug="selectedTableSlug"
|
||||
IsTableMenuOpen="isTableMenuOpen"
|
||||
IsTableSelectionDisabled="IsTableSelectionDisabled"
|
||||
IsPinned="PinnedTablesState.IsPinned"
|
||||
OnToggleTableMenu="ToggleTableMenu"
|
||||
OnCloseTableMenu="CloseTableMenu"
|
||||
OnSelectTable="SelectTableAsync" />
|
||||
<TablesPageHeader />
|
||||
|
||||
@if (referenceData is null)
|
||||
{
|
||||
@@ -30,34 +21,49 @@
|
||||
{
|
||||
<p class="muted">No critical tables are available yet.</p>
|
||||
}
|
||||
else if (!hasResolvedStoredTableSelection)
|
||||
else
|
||||
{
|
||||
<p class="muted">Restoring table context...</p>
|
||||
}
|
||||
else if (isDetailLoading)
|
||||
{
|
||||
<p class="muted">Loading the selected table...</p>
|
||||
}
|
||||
else if (!string.IsNullOrWhiteSpace(detailError))
|
||||
{
|
||||
<p class="error-text">@detailError</p>
|
||||
}
|
||||
else if (tableDetail is null)
|
||||
{
|
||||
<p class="muted">The selected table could not be loaded.</p>
|
||||
}
|
||||
else if (tableDetail is { } detail)
|
||||
{
|
||||
<div class="table-shell">
|
||||
<TablesContextBar
|
||||
Detail="detail"
|
||||
IsPinned="PinnedTablesState.IsPinned(detail.Slug)"
|
||||
OnTogglePin="TogglePinnedTableAsync" />
|
||||
<div class="tables-reference-layout">
|
||||
<aside class="tables-reference-rail">
|
||||
<TablesIndexRail
|
||||
Tables="referenceData.CriticalTables"
|
||||
SelectedTableSlug="selectedTableSlug"
|
||||
IsPinned="PinnedTablesState.IsPinned"
|
||||
OnSelectTable="SelectTableAsync" />
|
||||
</aside>
|
||||
|
||||
<TablesCanvas
|
||||
Detail="detail"
|
||||
OnOpenCuration="OpenCellCurationAsync"
|
||||
OnOpenEditor="OpenCellEditorAsync" />
|
||||
<div class="tables-reference-main">
|
||||
@if (!hasResolvedStoredTableSelection)
|
||||
{
|
||||
<p class="muted">Restoring table context...</p>
|
||||
}
|
||||
else if (isDetailLoading)
|
||||
{
|
||||
<p class="muted">Loading the selected table...</p>
|
||||
}
|
||||
else if (!string.IsNullOrWhiteSpace(detailError))
|
||||
{
|
||||
<p class="error-text">@detailError</p>
|
||||
}
|
||||
else if (tableDetail is null)
|
||||
{
|
||||
<p class="muted">The selected table could not be loaded.</p>
|
||||
}
|
||||
else if (tableDetail is { } detail)
|
||||
{
|
||||
<div class="table-shell">
|
||||
<TablesContextBar
|
||||
Detail="detail"
|
||||
IsPinned="PinnedTablesState.IsPinned(detail.Slug)"
|
||||
OnTogglePin="TogglePinnedTableAsync" />
|
||||
|
||||
<TablesCanvas
|
||||
Detail="detail"
|
||||
OnOpenCuration="OpenCellCurationAsync"
|
||||
OnOpenEditor="OpenCellEditorAsync" />
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</section>
|
||||
@@ -127,7 +133,6 @@
|
||||
private string? curationQuickParseError;
|
||||
private int? curatingResultId;
|
||||
private CriticalCellEditorModel? curationModel;
|
||||
private bool isTableMenuOpen;
|
||||
private bool hasResolvedStoredTableSelection;
|
||||
private CriticalTableReference? SelectedTableReference =>
|
||||
referenceData?.CriticalTables.FirstOrDefault(item => string.Equals(item.Key, selectedTableSlug, StringComparison.OrdinalIgnoreCase));
|
||||
@@ -138,25 +143,9 @@
|
||||
isReferenceDataLoading = false;
|
||||
}
|
||||
|
||||
private void ToggleTableMenu()
|
||||
{
|
||||
if (IsTableSelectionDisabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
isTableMenuOpen = !isTableMenuOpen;
|
||||
}
|
||||
|
||||
private void CloseTableMenu()
|
||||
{
|
||||
isTableMenuOpen = false;
|
||||
}
|
||||
|
||||
private async Task SelectTableAsync(string tableSlug)
|
||||
{
|
||||
selectedTableSlug = tableSlug;
|
||||
isTableMenuOpen = false;
|
||||
await LoadTableDetailAsync();
|
||||
await PersistAndSyncTableContextAsync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user