-
Notifications
You must be signed in to change notification settings - Fork 2.9k
fix(ui): opening relationship field with appearance: "drawer" inside rich text inline block closes drawer #13830
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
📦 esbuild Bundle Analysis for payloadThis analysis was generated by esbuild-bundle-analyzer. 🤖
Largest pathsThese visualization shows top 20 largest paths in the bundle.Meta file: packages/next/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_shared.json, Out file: esbuild/exports/shared.js
Meta file: packages/richtext-lexical/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_shared.json, Out file: esbuild/exports/shared_optimized/index.js
DetailsNext to the size is how much the size has increased or decreased compared with the base branch of this PR.
|
DanRibbens
previously approved these changes
Sep 19, 2025
DanRibbens
previously approved these changes
Sep 24, 2025
DanRibbens
approved these changes
Sep 24, 2025
🚀 This is included in version v3.57.0 |
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.
Previously, clicking on a relationship with
appearance: 'drawer'
within a lexical inline block drawer would close both drawers, instead of opening a new drawer to select the relationship document.Fixes #13778
Before
Screenshot.2025-09-16.at.18.03.22.mp4
After
Screenshot.2025-09-16.at.18.02.59.mp4
Technical Notes
The issue happened due to the
ModalContainer
's onClick function being triggered when mouseUp on the relationship field is triggered.Causes issue: MouseDown => drawer opens => mouseUp
Does not cause issue: MouseDown => MouseUp => drawer opens
This is why the previous
setTimeout()
fix worked: it delayed the drawer opening until the mouseUp event occured. If you click very slow, the issue could still happen though.I was not able to figure out why the
onClick
of the ModalContainer is triggered.The Fix
This is the ModalProvider
onClick
handler:The fix is to simply set
closeOnBlur
tofalse
, so thatcloseAllModals
is no longer called.I was not able to manually trigger the onClick event of the
ModalProvider
. I figured that it is more often called by strange React Components triggering events like maniacs (react-select) rather than some genuine user action.In case some piece of functionality somehow relied on this event being triggered and then closing the modal, that piece of functionality could manually call
closeModal()
or attach a customonClick
function to the modal. That way, this mechanism will be run in a more deliberate, expected way.