react-component / react-component/slider
About stopping event propagation of Slider under React v.17
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 3.1k
- Forks
- 768
- Avg merge
- 11d 22h
- Merged PRs (30d)
- 5
Description
When calling stopPropagation of touch move event on parent will casing problems on Slider
Problem:
Unable to change the value of Slider by touch move.
Code:
<div onTouchMove={(e) => e.stopPropagation()}>
<Slider defaultValue={10} min={0} max={40}/>
</div>
As I know, Slider will add touch move and touch end event listener to document when touch start, this work totally fine before React 17.
However since React 17, React attach event listeners to root element instead of document, and calling stopPropagation on React's synthetic event will exactly stop event bubble from root element to document, therefore Slider will not work as expected.
I wonder if there are any way to solve this problem? Thank you
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Slider touch interaction entry points, especially the touch move and touch end listeners added after touch start, and reproduce the provided React 17 example with a parent onTouchMove handler calling stopPropagation. Investigate how React 17 root-level event delegation affects document listeners; done means the Slider value changes by touch move in that example without breaking existing touch behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100