feat(centralui): open ExecutionDetailModal on tree-node double-click
This commit is contained in:
@@ -52,7 +52,14 @@
|
||||
View this execution in the Audit Log
|
||||
</a>
|
||||
</div>
|
||||
<ExecutionTree Nodes="_nodes" ArrivedFromExecutionId="_executionId.Value" />
|
||||
<ExecutionTree Nodes="_nodes" ArrivedFromExecutionId="_executionId.Value"
|
||||
OnNodeActivated="HandleNodeActivated" />
|
||||
|
||||
@* Double-clicking a tree node raises OnNodeActivated, which opens this
|
||||
modal for that execution. The modal renders nothing while IsOpen is
|
||||
false, so it is safe to place unconditionally here. *@
|
||||
<ExecutionDetailModal ExecutionId="_modalExecutionId" IsOpen="_modalOpen"
|
||||
OnClose="HandleModalClose" />
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -40,6 +40,15 @@ public partial class ExecutionTreePage
|
||||
private bool _loading;
|
||||
private string? _error;
|
||||
|
||||
// Execution-Tree Node Detail Modal feature (Task 4) — state backing the
|
||||
// <ExecutionDetailModal>. A double-click on a tree node sets
|
||||
// _modalExecutionId + flips _modalOpen true; the modal loads that
|
||||
// execution's audit rows on the closed → open transition. _modalOpen is the
|
||||
// visibility gate — _modalExecutionId is left intact across a close (it is
|
||||
// harmless while the modal is hidden and avoids a flicker if reopened).
|
||||
private Guid? _modalExecutionId;
|
||||
private bool _modalOpen;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_executionId = ParseExecutionId();
|
||||
@@ -90,4 +99,22 @@ public partial class ExecutionTreePage
|
||||
_loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raised by <c>ExecutionTree</c> (bubbled up from a node double-click) with
|
||||
/// the activated node's <c>ExecutionId</c>. Opens the
|
||||
/// <c>ExecutionDetailModal</c> for that execution — the modal loads its
|
||||
/// audit rows on the closed → open transition.
|
||||
/// </summary>
|
||||
private void HandleNodeActivated(Guid executionId)
|
||||
{
|
||||
_modalExecutionId = executionId;
|
||||
_modalOpen = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raised by <c>ExecutionDetailModal</c> when the user dismisses it. Flips
|
||||
/// the visibility gate closed; <see cref="_modalExecutionId"/> is left as-is.
|
||||
/// </summary>
|
||||
private void HandleModalClose() => _modalOpen = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user