UNPKG

@livelike/react-native

Version:

LiveLike React Native package

45 lines 1.46 kB
import { useCallback, useEffect, useState } from 'react'; /** * @description useEmojiSlider hook provides state logic and effects for LLEmojiSlider component */ export const useEmojiSlider = _ref => { let { thumbImages, onValueChange, onSlidingComplete, initialValue, value } = _ref; const [sliderInput, setSliderInput] = useState(value); const [thumbImg, setThumbImg] = useState(''); const onValueChangeHandler = useCallback(_ref2 => { let [value] = _ref2; for (let i = 0; i < thumbImages.length; i++) { var _thumbImages; const min = thumbImages[i].min; const max = ((_thumbImages = thumbImages[i + 1]) === null || _thumbImages === void 0 ? void 0 : _thumbImages.min) ?? 1; if (value >= min && value <= max && thumbImages[i].imageUrl !== thumbImg) { setThumbImg(thumbImages[i].imageUrl); return setSliderInput(value); } } onValueChange === null || onValueChange === void 0 || onValueChange(value); }, [thumbImages, thumbImg]); const onSlidingCompleteHandler = useCallback(_ref3 => { let [value] = _ref3; setSliderInput(value); onSlidingComplete(value); }, []); useEffect(() => { if (!thumbImg && initialValue) { onValueChangeHandler([initialValue]); } }, [initialValue, thumbImg]); return { sliderInput, thumbImg, onSlidingCompleteHandler, onValueChangeHandler }; }; //# sourceMappingURL=useEmojiSlider.js.map