shineout
Version:
Shein 前端组件库
138 lines (109 loc) • 4.68 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _Panel = _interopRequireDefault(require("./Panel"));
var _Button = _interopRequireDefault(require("../Button"));
var _Alert = _interopRequireDefault(require("../Alert"));
var _component = require("../component");
var _styles = require("./styles");
var _locale = require("../locale");
var DefaultProps = {
type: 'confirmwarning',
icon: true,
okType: 'danger'
};
var Confirm =
/*#__PURE__*/
function (_Component) {
(0, _inheritsLoose2.default)(Confirm, _Component);
function Confirm(props) {
var _this;
_this = _Component.call(this, props) || this;
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleCancel", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleOk", void 0);
_this.state = {
ok: false,
cancel: false
};
_this.handleCancel = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'cancel');
_this.handleOk = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'ok');
return _this;
}
var _proto = Confirm.prototype;
_proto.handleClick = function handleClick(type, close) {
var _this2 = this;
var _this$props = this.props,
onOk = _this$props.onOk,
onCancel = _this$props.onCancel;
var fn = type === 'ok' ? onOk : onCancel;
var callback;
if (fn) callback = fn();
if (callback && typeof callback.then === 'function') {
var _this$setState;
this.setState((_this$setState = {}, _this$setState[type] = true, _this$setState), function () {
;
callback.then(function () {
var _this2$setState;
close();
_this2.setState((_this2$setState = {}, _this2$setState[type] = false, _this2$setState));
});
});
} else {
close();
}
};
_proto.render = function render() {
var _this3 = this;
var _this$props2 = this.props,
children = _this$props2.children,
_this$props2$type = _this$props2.type,
type = _this$props2$type === void 0 ? DefaultProps.type : _this$props2$type,
text = _this$props2.text,
onOk = _this$props2.onOk,
okType = _this$props2.okType,
onCancel = _this$props2.onCancel,
icon = _this$props2.icon,
other = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["children", "type", "text", "onOk", "okType", "onCancel", "icon"]);
var _this$state = this.state,
ok = _this$state.ok,
cancel = _this$state.cancel;
return _react.default.createElement(_Panel.default, (0, _extends2.default)({}, other, {
trigger: "click"
}), function (close) {
return _react.default.createElement("div", {
className: (0, _styles.popoverClass)('confirm')
}, _react.default.createElement("div", {
className: (0, _styles.popoverClass)('mention')
}, _react.default.createElement(_Alert.default, {
type: type,
icon: icon,
className: (0, _styles.popoverClass)('alert')
}, children)), _react.default.createElement("div", {
className: (0, _styles.popoverClass)('footer')
}, _react.default.createElement(_Button.default, {
loading: cancel,
size: "small",
onClick: function onClick() {
return _this3.handleCancel(close);
}
}, (0, _locale.getLocale)('cancel', text)), _react.default.createElement(_Button.default, {
loading: ok,
size: "small",
type: okType,
onClick: function onClick() {
return _this3.handleOk(close);
}
}, (0, _locale.getLocale)('ok', text))));
});
};
return Confirm;
}(_component.Component);
exports.default = Confirm;
(0, _defineProperty2.default)(Confirm, "defaultProps", DefaultProps);