UNPKG

rn-inkpad

Version:

<img src="https://res.cloudinary.com/fercloudinary/image/upload/v1715452841/packages/inkpad-banner_acl0xl.png" />

38 lines (37 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useToast = void 0; const react_1 = require("react"); const react_native_1 = require("react-native"); const useToast = (visible, duration, position, onHide) => { const [show, setShow] = (0, react_1.useState)(visible); const translateY = (0, react_1.useRef)(new react_native_1.Animated.Value(position === 'bottom' ? 100 : -100)).current; (0, react_1.useEffect)(() => { if (visible) { setShow(true); react_native_1.Animated.timing(translateY, { toValue: 0, duration: 500, useNativeDriver: true, }).start(); const timer = setTimeout(() => { if (!!onHide) { onHide(false); } }, duration); return () => clearTimeout(timer); } else { react_native_1.Animated.timing(translateY, { toValue: position === 'bottom' ? 100 : -100, duration: 500, useNativeDriver: true, }).start(() => setShow(false)); } }, [visible, translateY, duration, onHide, position]); return { show, translateY, }; }; exports.useToast = useToast;