Skip to content

Fix volume slider snapping back on iOS - #167

Open
DanielFarber wants to merge 1 commit into
snapcast:developfrom
DanielFarber:ios-slider-volume-fix
Open

DanielFarber wants to merge 1 commit into
snapcast:developfrom
DanielFarber:ios-slider-volume-fix

Conversation

@DanielFarber

Copy link
Copy Markdown

On iOS Safari, lifting a finger off a Slider without moving it first synthesizes a mouse{move,down,up} sequence after the touch gesture ends. MUI v7's mouse-event-based Slider turns that synthetic mousedown into an extra onChange carrying the drag's start value, which snaps the controlled volume slider back to where the drag began (mui/material-ui#31869, mui/material-ui#38311).

Add isSpuriousIOSSliderChange() in a new util module and have both handleVolumeChange handlers bail out when the change originates from a mousedown on iOS. The upstream fix (Slider rewritten to pointer events) only landed in @mui/material v9, which is two majors away.

On iOS Safari, lifting a finger off a Slider without moving it first
synthesizes a mouse{move,down,up} sequence after the touch gesture ends.
MUI v7's mouse-event-based Slider turns that synthetic mousedown into an
extra onChange carrying the drag's start value, which snaps the
controlled volume slider back to where the drag began
(mui/material-ui#31869, mui/material-ui#38311).

Add isSpuriousIOSSliderChange() in a new util module and have both
handleVolumeChange handlers bail out when the change originates from a
mousedown on iOS. The upstream fix (Slider rewritten to pointer events)
only landed in @mui/material v9, which is two majors away.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant