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
JavaScript
;
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;