Spaces:
Running
Running
import { Range as RangeBase, getTrackBackground } from "react-range"; | |
export const Range = ({ | |
value, | |
step = 1, | |
min = 0, | |
max = 100, | |
onChange, | |
}: { | |
value: number; | |
step?: number; | |
min?: number; | |
max?: number; | |
onChange: (e: number) => void; | |
}) => { | |
return ( | |
<div className="w-full"> | |
<RangeBase | |
step={step} | |
min={min} | |
max={max} | |
values={[value]} | |
onChange={([value]) => onChange(value)} | |
renderTrack={({ props, children }) => ( | |
<div | |
{...props} | |
style={{ | |
...props.style, | |
height: "6px", | |
width: "100%", | |
borderRadius: 100, | |
backgroundColor: "#4F545C", | |
background: getTrackBackground({ | |
values: [value], | |
colors: ["#5765F2", "#4F545C"], | |
min: min, | |
max: max, | |
}), | |
}} | |
> | |
{children} | |
</div> | |
)} | |
renderThumb={({ props }) => ( | |
<div | |
{...props} | |
style={{ | |
...props.style, | |
height: 16, | |
width: 6, | |
borderRadius: 2, | |
outline: "none", | |
backgroundColor: "white", | |
}} | |
/> | |
)} | |
/> | |
</div> | |
); | |
}; | |