Description
While interacting with multi-value props in the UI (specifically when adding or removing items), the interface briefly flickers before stabilizing. During this flicker, the row weight indicator also momentarily flickers, which creates a distracting visual effect.
Although the functionality works correctly, the repeated flickering negatively impacts the overall user experience and makes the interaction feel unstable.
This behavior is especially noticeable when rapidly adding or removing items. Ideally, the UI should update smoothly without noticeable flickering to provide a more seamless and polished interaction.
Steps to Reproduce
A video demonstrating the issue is attached for reference.

Actual Result
- The UI flickers briefly when items are added or removed.
- The row weight values also momentarily flicker during the update.
Expected Result
- Items should be added or removed without visible flickering.
- Row weights should update smoothly without visual instability.
Acceptance Criteria
- Adding an item does not cause UI flickering.
- Removing an item does not cause UI flickering.
- Row weight indicators should not flash.
- UI updates feel seamless and stable during interactions with multi-value props.
| Comment | File | Size | Author |
|---|---|---|---|
| #10 | Flashing popver.mov | 4.04 MB | utkarsh_33 |
| #7 | Hidden element flashing.mov | 1.44 MB | utkarsh_33 |
| #7 | Extra time on Adding new component.mov | 2.01 MB | utkarsh_33 |
| #4 | Screen Recording 2026-03-25 at 3.05.21 PM.mov | 2.6 MB | narendrar |
Issue fork canvas-3579026
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #4
narendrarAttached a video of the current functionality.
Comment #5
chandu7929 commentedOverall, the changes look good, but I still see flickering when adding or removing elements.
There is room for improvement by reducing the AJAX call time and using UI effects like fadeIn or similar when replacing the DOM with the AJAX response to help reduce flickering.
Comment #7
utkarsh_33 commentedWhile testing this i found 2 issue.
The videos have descriptive names which makes it easier for mapping the errors.
Comment #8
utkarsh_33 commentedComment #9
bnjmnmLooks like this was due to the immediate hiding of the row to be removed, which means the popover no longer has a positioning anchor. I solved this by instead changing the height to 1px so it's effectively invisible, but still occupies the space needed to position the popover.
This looks like something that will be even more comprehensively addressed in #3562896: Manage props/page data forms with react-hook-form, and has more to do with multivalue in general. I brought in parts of the solution from that issue, which prevents add / remove while other AJAX operations or preview updates are taking place. Without these safeguards, it's possible to run into things like entity lock problems. I tried to add an e2e test with 10 adds and removes, but admittedly it was a bit fragile. There are updates to our preview mechanism in #3562896 that will likely fix that, but for now this probably should be tested manually only. This worked well in my manual testing, but if a reviewer experiences differently, please share the response of the AJAX request that doesn't seem to follow through and that'll help me refine this solution.
Comment #10
utkarsh_33 commentedI tested this and i can still see the flashing popover element, but this time at a new location. Attaching the vide for reference. Just look at the exact location where the popover actually opens. You can se how it flash for a moment.
Also as per #9 we can fix the other issue more comprehensively in #3562896: Manage props/page data forms with react-hook-form.
Comment #11
utkarsh_33 commentedComment #12
utkarsh_33 commentedJust a minor UI feedback, no code objections. Code looks good to me. Once the flashing issue is resolved, happy to RTBC.