import { useEffect, useState } from "react"; type prop = { value: number, onChange: (value: number) => void min: number max: number step?: number // increment / decrement } const InputRange = ({ min, step, max, value, onChange }: prop) => { const [number, setNumber] = useState(value || 0); useEffect(() => { setNumber(value) }, [value]) useEffect(() => { onChange(number) }, [number]) const handleDecrement = () => { setNumber(prevValue => { if (min) if (prevValue > min) return prevValue - (step || 1) else return min else return prevValue - (step || 1) }); }; const handleIncrement = () => { setNumber(prevValue => prevValue + (step || 1)); }; const handleChange = (event: React.ChangeEvent) => { const newValue = parseFloat(event.target.value); if (!isNaN(newValue)) { setNumber(newValue); } }; return
} export default InputRange;