use onMouseUp

pull/2120/head
yann300 3 years ago
parent bace58481f
commit b76a774558
  1. 31
      libs/remix-ui/debugger-ui/src/lib/slider/slider.tsx

@ -1,35 +1,28 @@
import React, { useState, useEffect, useRef } from 'react' // eslint-disable-line
export const Slider = ({ jumpTo, sliderValue, traceLength }) => {
const [state, setState] = useState({
currentValue: 0
})
const onChangeId = useRef(null)
const slider = useRef(null)
useEffect(() => {
setValue(sliderValue)
}, [sliderValue])
const setValue = (value) => {
if (value === state.currentValue) return
setState(prevState => {
return { ...prevState, currentValue: value }
})
jumpTo && jumpTo(value)
}
const handleChange = (e) => {
if (value === slider.current.value) return
slider.current.value = value
if (onChangeId.current) {
window.clearTimeout(onChangeId.current)
clearTimeout(onChangeId.current)
}
((value) => {
onChangeId.current = setTimeout(() => {
console.log(value)
value = parseInt(value)
setValue(value)
jumpTo && jumpTo(value)
}, 100)
})(e.target.value)
})(value)
}
const handleChange = (e) => {
setValue(parseInt(e.target.value))
}
return (
@ -37,11 +30,11 @@ export const Slider = ({ jumpTo, sliderValue, traceLength }) => {
<input id='slider'
data-id="slider"
className='w-100 my-0'
ref={slider}
type='range'
min={0}
max={traceLength ? traceLength - 1 : 0}
value={state.currentValue}
onChange={handleChange}
onMouseUp={handleChange}
disabled={traceLength ? traceLength === 0 : true}
/>
</div>

Loading…
Cancel
Save