Once the component renders, it calculates the slider sizes and positions. It does so in a timeout, which causes the slider to be rendered and re-rendered differently - which results in a small visual flicker.
The timeout is needed only for actual resize events, so this behavior is kept. When the component mounts or updates, it does immediately without a timeout - this makes the component much more smooth and render beautifully.
Thanks for submitting this @Tzook! I needed to apply these changes in another commit (mainly to solve conflicts and improve the code slightly) but added your attribution.
Once the component renders, it calculates the slider sizes and positions. It does so in a timeout, which causes the slider to be rendered and re-rendered differently - which results in a small visual flicker. The timeout is needed only for actual resize events, so this behavior is kept. When the component mounts or updates, it does immediately without a timeout - this makes the component much more smooth and render beautifully.