[ER-49165] Fix focus recursion between Drawer and Modal#4951
Draft
rafael-anachoreta wants to merge 2 commits into
Draft
[ER-49165] Fix focus recursion between Drawer and Modal#4951rafael-anachoreta wants to merge 2 commits into
rafael-anachoreta wants to merge 2 commits into
Conversation
🦋 Changeset detectedLatest commit: 5d6d6f9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 82 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
📖 Storybook Preview 🚀 Your Storybook preview is ready: View Storybook 📍 Preview URL: This preview is updated automatically when you push changes to this PR. |
Contributor
|
📖 Storybook Preview 🚀 Your Storybook preview is ready: View Storybook 📍 Preview URL: This preview is updated automatically when you push changes to this PR. |
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.
ER-49165
Description
When a
Draweris opened from inside an openModaland theModalis later closed, the browser console fills withRangeError: Maximum call stack size exceededortoo much recursion.Modalopts out of MUI'sFocusTrapand uses its own document-level focus listener;Drawerkeeps MUI'sFocusTrapactive. With both open, the two focus mechanisms recurse on.focus()indefinitely.This PR lifts
Modal's privateModalManagersingleton intopicasso-utils(asdefaultModalManager) and hasDrawerregister with it on open.Modal's focus listener already bails when it isn't the topmost overlay; now thatDrawerregisters above it, the bailout actually fires and the recursion is broken.How to test
1. Show Modal→2. Open Drawer→3. Close Modal.Screenshots
Development checks
picasso-tailwind-mergerequires major update (check itsREADME.md)propsin component with documentationexamplesfor componentBreaking change
Alpha packages
Manually trigger the publish.yml workflow to publish alpha packages. Specify pull request number as a parameter (only digits, e.g.
123).PR Review Guidelines
When to approve? ✅
You are OK with merging this PR and
nit:to your comment. (ex.nit: I'd rename this variable from makeCircle to getCircle)When to request changes? ❌
You are not OK with merging this PR because
When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:
How to handle the comments?