fix(apollo-react): sticky note loop layering [MST-9649]#700
Open
SreedharAvvari wants to merge 1 commit into
Open
fix(apollo-react): sticky note loop layering [MST-9649]#700SreedharAvvari wants to merge 1 commit into
SreedharAvvari wants to merge 1 commit into
Conversation
7f6b8e1 to
b11381f
Compare
There was a problem hiding this comment.
Pull request overview
This PR improves sticky note usability when notes visually overlap loop containers by adjusting React Flow layering behavior and adding a Storybook regression scenario.
Changes:
- Portals sticky note toolbar/color picker affordances into the node overlay layer.
- Adjusts React Flow reset CSS to avoid selected loop containers covering sticky notes.
- Adds a LoopNode Storybook scenario and a longer-term layering proposal document.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
packages/apollo-react/src/canvas/styles/reactflow-reset.css |
Updates hover/selected z-index rules for loop containers and sticky notes. |
packages/apollo-react/src/canvas/components/StickyNoteNode/StickyNoteNode.tsx |
Renders sticky note toolbar and color picker through overlay layers. |
packages/apollo-react/src/canvas/components/LoopNode/LoopNode.stories.tsx |
Adds sticky-note-inside-selected-loop regression story and ignores sticky notes in preview/add-node flows. |
docs/plans/mst-9389-sticky-notes-loop-containers-node-layering-proposal.md |
Documents a proposed deterministic canvas node layering model. |
b11381f to
3cfe0b2
Compare
3cfe0b2 to
7cb49e9
Compare
7cb49e9 to
ab7dbda
Compare
Contributor
Dependency License Review
License distribution
Excluded packages
|
ab7dbda to
190f672
Compare
190f672 to
9c1fd85
Compare
9c1fd85 to
babc389
Compare
babc389 to
d964770
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This change fixes sticky note interactions when a sticky note is placed visually inside a loop container.
The fix keeps loop shells from stacking above sticky notes, and moves selected sticky-note controls into the viewport overlay layer so the toolbar and color picker remain clickable even when the note overlaps a selected loop, workflow nodes, or loop edges.
What changed
NodeToolbar's node overlay support.NodeViewportOverlayand marks itnodrag nopan nowheelso color options remain interactive.StickyNotesInLoopContainersStorybook scenario covering:Demo
image.2026-05-18.at.9.57.04.PM.mov
Diagram
flowchart LR subgraph Before["Before"] SelectedLoopBefore["Selected loop shell"] -->|"stacked above"| StickyBefore["Sticky note"] SelectedLoopBefore -->|"blocked"| ToolbarBefore["Toolbar / color picker"] end subgraph After["After"] LoopShell["Loop shell"] -->|"kept below"| StickyBody["Sticky note body"] StickyBody -->|"selected"| OverlayLayer["Node viewport overlay"] OverlayLayer --> Toolbar["Toolbar"] OverlayLayer --> ColorPicker["Color picker"] endUser impact
Before this change, selecting a loop shell could leave the loop container stacked above a sticky note inside the loop body, making the sticky note difficult or impossible to select, edit, resize, drag, or use through its toolbar/color picker.
After this change, sticky notes remain usable when visually placed inside loop containers, while loop body hit-testing still works where the loop body is empty.
Validation
StickyNotesInLoopContainerspnpm exec tsc -p tsconfig.json --noEmit