import { useState, useRef, useEffect } from "react"; import RangeSlider from "react-range-slider-input"; // import "react-range-slider-input/dist/style.css"; import "./multiRamgeSlider.css"; interface MultiRangeSliderProps { onChange?: () => void; min: number; max: number; } const MultiRangeSlider = ({ min, max, onChange }: MultiRangeSliderProps) => { const [firstValue, setFirstValue] = useState(min); const [secondValue, setSecondValue] = useState(max); const firstInputRef = useRef(null); const secondInputRef = useRef(null); const handleOnRangeInputChange = (e: [a: number, b: number]) => { setFirstValue(e[0]); setSecondValue(e[1]); }; const handleOnFirstInputChange = (e: React.ChangeEvent) => { const value = Number(e.target.value); if (value >= min && value <= max) { setFirstValue(value); } }; const handleOnSecondInputChange = ( e: React.ChangeEvent ) => { const value = Number(e.target.value); if (value >= min && value <= max) { setSecondValue(value); } }; useEffect(() => { if (!firstInputRef.current) return; (firstInputRef.current as HTMLInputElement).focus(); }, [firstValue]); useEffect(() => { if (!secondInputRef.current) return; (secondInputRef.current as HTMLInputElement).focus(); }, [secondValue]); return (
); }; export default MultiRangeSlider;