- Notifications
You must be signed in to change notification settings - Fork948
fix: add debouncing to dynamic parameter slider for Safari performance#18860
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
blink-so wants to merge2 commits intomainChoose a base branch fromfix/safari-slider-debounce
base:main
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Uh oh!
There was an error while loading.Please reload this page.
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
Fixes#18856The dynamic parameter slider was extremely laggy in Safari due tolack of debouncing on the onValueChange event. This caused constantstate updates during slider movement, which Safari handles poorly.This change:- Adds a new DebouncedSlider component that follows the same pattern as DebouncedParameterField- Uses useDebouncedValue with 300ms delay to reduce update frequency- Maintains local state for smooth UI interaction while debouncing the actual onChange calls- Preserves all existing functionality and stylingTested: Slider now responds smoothly without lag or flashingCo-authored-by: Emyrk <5446298+Emyrk@users.noreply.github.com>
Fixes linting error for exhaustive dependencies rule.The useEffect hook was using localValue in the conditionbut not including it in the dependency array.Co-authored-by: Emyrk <5446298+Emyrk@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Labels
None yet
0 participants
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.
Fixes#18856
The dynamic parameter slider was extremely laggy in Safari due to lack of debouncing on the
onValueChange
event. This caused constant state updates during slider movement, which Safari handles poorly compared to other browsers.Changes
DebouncedSlider
component that follows the same pattern asDebouncedParameterField
useDebouncedValue
with 300ms delay to reduce update frequency while maintaining smooth UI interactiononChange
callsTesting
The implementation follows the exact same debouncing pattern already used successfully in
DebouncedParameterField
for text inputs. The slider now:Technical Details
The fix replaces the direct
onChange
call in the slider case with a debounced component that:useDebouncedValue
,useEffectEvent
) as other debounced componentsThis resolves the Safari-specific performance issue while maintaining compatibility with all browsers.