UNPKG

dareway-rui

Version:

107 lines (92 loc) 3.06 kB
'use strict'; var _interopRequireWildcard = require('@babel/runtime/helpers/interopRequireWildcard'); var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = GridButtonWithPromiseDisabled; var _slicedToArray2 = _interopRequireDefault(require('@babel/runtime/helpers/slicedToArray')); var _react = _interopRequireWildcard(require('react')); var _ruiIcon = _interopRequireDefault(require('rui-icon')); var _antd = require('antd'); function GridButtonWithPromiseDisabled(props) { var btn = props.btn, key = props.key, defaultOnClick = props.defaultOnClick; var tagType = btn.tagType, value = btn.value, onClick = btn.onClick, disabled = btn.disabled; var _useState = (0, _react.useState)(disabled), _useState2 = (0, _slicedToArray2.default)(_useState, 2), autoDisabled = _useState2[0], setAutoDisabled = _useState2[1]; var handleClick = function handleClick() { if (autoDisabled) { return; } if (onClick) { defaultOnClick(); setAutoDisabled(true); Promise.resolve(onClick()) .then(function() { setAutoDisabled(false); }) .catch(function() { setAutoDisabled(false); }); } }; if (tagType === 'BUTTON') { return _react.default.createElement( _antd.Button, { key: key, onClick: handleClick, style: { marginLeft: 5 }, disabled: autoDisabled }, value ); } else if (tagType === 'PICBUTTON') { var iconId = btn.iconId, title = btn.title, color = btn.color; var style = { color: color }; var iconStyle = { color: color, cursor: 'pointer' }; if (autoDisabled) { iconStyle.cursor = 'not-allowed'; } return _react.default.createElement( 'div', { style: style, title: title, className: 'rui-grid-buttonscolumn-picbutton-wrapper' }, _react.default.createElement(_ruiIcon.default, { key: key, onClick: handleClick, style: iconStyle, disabled: autoDisabled, type: iconId, theme: 'outlined' }) ); } else { throw new Error( 'ButtonsColumns \u6807\u7B7E\u4E0B\u4E0D\u80FD\u653E\u7F6E\u7EC4\u4EF6\u3010'.concat( tagType, '\u3011\u53EA\u80FD\u653E Button\u3001PicButton\u3001LinkButton\uFF0C\u8BF7\u68C0\u67E5\uFF01' ) ); } } //@ sourceMappingURL=GridButtonWithPromiseDisabled.js.map