Repository navigation
Conversation
Range attaches its mouse and touch listeners to the global `document`. When the slider is rendered in another document, e.g. portaled into an iframe, those events never reach it and the thumb cannot be dragged. The optional `ownerDocument` prop sets the document the listeners are attached to. It defaults to the global `document`, so existing usage is unchanged.
Avi-Patel
force-pushed
the
owner-document-prop
branch
from
October 12, 2026 10:22
7bb5672 to
29ce81b
Compare
Author
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.
Closes #203.
Problem
Rangeattaches its mouse and touch listeners to the globaldocument. When the slider is rendered in a different document, for example portaled into an iframe from code running in the parent window, those events never reach it. The thumb can't be dragged, and a click on the track leaves the slider stuck in the dragging state becausemouseupis never seen.Change
Adds an optional
ownerDocumentprop: the document the listeners are attached to. It defaults to the globaldocument, so existing usage is unchanged.The value is read once in
componentDidMount, so server rendering still never touchesdocument, and listeners are always removed from the document they were added to.Testing
Rangeportaled into an iframe: without the prop a thumb drag is ignored; with it the value follows the mouse andonFinalChangefires on release.e2e/final.change.test.tspasses unchanged. I did not run the screenshot tests locally because the snapshots are Linux-only.