UNPKG

@fruits-chain/react-native-xiaoshu

Version:
69 lines (62 loc) 1.78 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, { useEffect, memo } from 'react'; import { callInterceptor } from '../helpers'; import useState from '../hooks/useStateUpdate'; import Dialog from './dialog'; /** * Dialog 弹出框 * @description 配合函数的使用 */ const DialogMethod = _ref => { let { beforeClose, callback, ...restProps } = _ref; const [state, setState] = useState({ visible: false, cancel: false, confirm: false, overlay: false }); const genOnPressBtn = action => () => { setState({ [action]: true }); callInterceptor(beforeClose, { args: [action], done: () => { callback(action); setState({ [action]: false, visible: false }); }, canceled: () => { setState({ [action]: false }); } }); }; useEffect(() => { setState({ visible: true }); }, []); const onRequestClose = () => { genOnPressBtn('overlay')(); return true; }; return /*#__PURE__*/React.createElement(Dialog, _extends({}, restProps, { onRequestClose: onRequestClose, visible: state.visible, onPressConfirm: genOnPressBtn('confirm'), onPressCancel: genOnPressBtn('cancel'), onPressOverlay: genOnPressBtn('overlay'), cancelButtonLoading: state.cancel, confirmButtonLoading: state.confirm })); }; export default /*#__PURE__*/memo(DialogMethod); //# sourceMappingURL=dialog-method.js.map