feat(designer): add node navigation and retain details tabs - #9621
Riley Evans (rllyy97) wants to merge 7 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
✅ Risk Level
✅ What & Why
✅ Impact of Change
✅ Test Plan
✅ Contributors
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | None |
| Commit Type | ✅ | Label says feature; template uses feat (cosmetic) |
| Risk Level | ✅ | Medium is correct |
| What & Why | ✅ | None |
| Impact of Change | ✅ | None |
| Test Plan | ✅ | Unit + E2E present |
| Contributors | ✅ | None |
| Screenshots/Videos | Optionally add a current-head capture |
All required checks pass. This PR is compliant and cleared to merge from a title/body/risk perspective.
Powered by: Copilot CLI (claude-opus-4.8) | Last updated: Tue, 15 Sep 2026 22:21:42 GMT
Standalone previewReady for local-workflow testing. Current PR revision: Deployed revision: Local workflows only. Azure sign-in, live Azure resources, and the development-only template proxy are not available. This preview runs PR code; do not enter credentials or sensitive workflow data. |
There was a problem hiding this comment.
🟡 Changes recommended
Browser checks currently fail because panel focus overrides card focus, stopping traversal, while the offscreen test setup also fails its precondition.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds keyboard-based node traversal and preserves operation-details tab selection across both designer versions.
Changes:
- Adds Ctrl/Cmd+Up/Down node navigation using React Flow ordering.
- Preserves preferred details tabs and remounts node-specific panel content.
- Adds shared unit tests, integration tests, E2E coverage, and documentation.
File summaries
| File | Description |
|---|---|
libs/logic-apps-shared/src/utils/src/lib/helpers/nodeNavigation.ts |
Implements adjacent-node lookup. |
libs/logic-apps-shared/src/utils/src/lib/helpers/index.ts |
Exports the navigation helper. |
libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/nodeNavigation.spec.ts |
Tests navigation ordering and filtering. |
libs/designer/src/lib/ui/NodeNavigation.tsx |
Adds v1 navigation hotkeys. |
libs/designer/src/lib/ui/DesignerReactFlow.tsx |
Mounts navigation and enables offscreen rendering. |
libs/designer/src/lib/ui/CustomNodes/ScopeCardNode.tsx |
Supports tagged scope focus IDs. |
libs/designer/src/lib/ui/__test__/nodeNavigationTestSuite.tsx |
Provides shared navigation tests. |
libs/designer/src/lib/ui/__test__/NodeNavigation.spec.tsx |
Runs the suite against v1. |
libs/designer/src/lib/ui/__test__/keyboardNavigation.spec.tsx |
Updates keyboard-navigation test context. |
libs/designer/src/lib/ui/__test__/DesignerReactFlow.spec.tsx |
Tests navigation mounting and rendering fallback. |
libs/designer/src/lib/core/state/workflow/workflowSelectors.ts |
Recognizes normalized and canvas node IDs. |
libs/designer/src/lib/core/state/panel/panelSlice.ts |
Retains the selected details tab. |
libs/designer-v2/src/lib/ui/NodeNavigation.tsx |
Adds v2 navigation hotkeys. |
libs/designer-v2/src/lib/ui/DesignerReactFlow.tsx |
Mounts v2 navigation and rendering fallback. |
libs/designer-v2/src/lib/ui/CustomNodes/ScopeCardNode.tsx |
Supports tagged v2 scope focus IDs. |
libs/designer-v2/src/lib/ui/__test__/NodeNavigation.spec.tsx |
Runs the shared suite against v2. |
libs/designer-v2/src/lib/ui/__test__/DesignerReactFlow.spec.tsx |
Tests v2 navigation integration. |
libs/designer-v2/src/lib/core/state/workflow/workflowSelectors.ts |
Recognizes both scope ID forms. |
libs/designer-v2/src/lib/core/state/panel/panelSlice.ts |
Retains tabs across v2 selection changes. |
libs/designer-ui/src/lib/panel/panelcontent.tsx |
Adds tab fallback and node-keyed content. |
e2e/ephemeral/preview.spec.ts |
Exercises navigation in browser previews. |
apps/Standalone/README.md |
Documents shortcuts and tab retention. |
Review details
- Files reviewed: 22/22 changed files
- Comments generated: 3
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
📊 Coverage CheckThe following changed files need attention: ❌
Please add tests for the uncovered files before merging. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allow navigation from non-editing controls in the selected node's details panel while preserving editor and unrelated-panel scope. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Commit Type
Risk Level
What & Why
Add Ctrl/Cmd+Down and Ctrl/Cmd+Up node selection in both designer versions using the existing positive React Flow nodeIndex order, without wrapping at endpoints. Scope IDs are normalized, and the existing keyboard rendering fallback supports offscreen nodes.
Retain the active operation-details tab across selection, with a first-available fallback and remembered preference. Key panel content by node to isolate editor drafts.
The original focus-order and native-scroll fixes are published in
0c4ba300aandbcc7454ee, with regressions in6b7627539. All three original review threads were answered and resolved.Latest user-reported correction:
f0ce80682. A normal card click focuses the details panel Close button, so canvas-only shortcuts were incorrectly ignored. Navigation now also accepts non-editing controls in the selected node's details panel, restricted to the same designer instance. Tests now start with ordinary mouse clicks and press shortcuts without programmatic focus; the earlier card-focus tests did not cover that user flow.Impact of Change
Test Plan
/and/v2, Chromium, Ctrl and Cmd/Meta; initial bug reproduced on the deployed preview.Latest correction (
f0ce80682):.focus(), and verify target selection, actual DOM focus, and visibility. They also cover Settings-tab navigation, title-input protection, and reverse navigation after clicking a different card.Contributors
Riley Evans (@rllyy97) with GitHub Copilot.
Screenshots/Videos
Real captures from the earlier rebuilt local focus-order correction, published as
0c4ba300a. They show retained Settings, not proof of the later mouse-click regression or complete current-head CI.Settings retained while switching between a scope and an action
Switch selected with Settings active:
HTTP selected using Ctrl+Up, with Settings still active: