UNPKG

@fruits-chain/react-native-xiaoshu

Version:
48 lines (43 loc) 1.45 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { useState, useEffect, useImperativeHandle, forwardRef, memo } from 'react'; import Notify from './notify'; /** * Notify 消息提示 * @description 在页面顶部展示消息提示,支持函数调用和组件调用两种方式。 */ const NotifyMethod = /*#__PURE__*/forwardRef((_ref, ref) => { let { duration = 3000, message, ...restProps } = _ref; const [visible, setVisible] = useState(false); const [msg, setMsg] = useState(message); useEffect(() => { setVisible(true); let timer; if (duration !== 0) { timer = setTimeout(() => { // 隐藏弹窗 setVisible(false); }, duration); } return () => { clearTimeout(timer); }; }, [duration]); // 向外暴露函数 useImperativeHandle(ref, () => ({ close: () => { setVisible(false); }, setMessage: s => { setMsg(s); } }), []); return /*#__PURE__*/React.createElement(Notify, _extends({}, restProps, { visible: visible, message: msg })); }); export default /*#__PURE__*/memo(NotifyMethod); //# sourceMappingURL=notify-method.js.map