react-admin-component
Version:
react library
110 lines • 5.62 kB
JavaScript
import * as tslib_1 from "tslib";
import React from 'react';
import classNames from 'classnames';
import { ModalCustom } from '..';
var alertIns = new ModalCustom();
var closedByHand = false;
var AlertDefaultProps = {
cancelText: '取消',
confirmText: '确认',
btnText: '知道了',
};
var AlertType;
(function (AlertType) {
AlertType["SUCCESS"] = "success";
AlertType["ERROR"] = "error";
AlertType["WARN"] = "warn";
AlertType["CONFIRM"] = "confirm";
})(AlertType || (AlertType = {}));
var Success = function () { return (React.createElement("div", { className: "alert_icon alert_icon-success" },
React.createElement("div", { className: "alert_icon-success_line alert_icon-success_line-long" }),
React.createElement("div", { className: "alert_icon-success_line alert_icon-success_line-tip" }),
React.createElement("div", { className: "alert_icon-success_ring" }),
React.createElement("div", { className: "alert_icon-success_hide-corners" }))); };
var Warn = function () { return (React.createElement("div", { className: "alert_icon alert_icon-warning" },
React.createElement("span", { className: "alert_icon-warning_body" },
React.createElement("span", { className: "alert_icon-warning_dot" })))); };
var Error = function () { return (React.createElement("div", { className: "alert_icon alert_icon-error" },
React.createElement("span", { className: "alert_icon-error_mark" },
React.createElement("span", { className: "alert_icon-error_line alert_icon-error_line-left" }),
React.createElement("span", { className: "alert_icon-error_line alert_icon-error_line-right" })))); };
var Alert = function (props) {
var header = props.header, body = props.body, icon = props.icon, alertType = props.alertType, hideBtn = props.hideBtn;
var close = function () {
closedByHand = true;
var onCancel = props.onCancel;
onCancel && onCancel();
alertIns.destroy();
};
var confirm = function () {
closedByHand = true;
var onOk = props.onOk;
onOk && onOk();
alertIns.destroy();
};
return (React.createElement("div", { className: classNames('alert_overlay alert_overlay-show', props.className), style: props.style },
React.createElement("div", { className: "alert_modal", style: props.containerStyle },
React.createElement("div", { className: "alert_close", onClick: close }),
header && React.createElement("div", { className: "alert_header" }, header),
body ? (body) : (React.createElement(React.Fragment, null,
icon && React.createElement("div", { className: "alert_icon_" + alertType }, icon),
!icon && !props.hideIcon && (React.createElement("div", null,
alertType === AlertType.SUCCESS && React.createElement(Success, null),
(alertType === AlertType.WARN ||
alertType === AlertType.CONFIRM) && React.createElement(Warn, null),
alertType === AlertType.ERROR && React.createElement(Error, null))),
React.createElement("div", { className: "alert_title" }, props.title),
props.text && React.createElement("div", { className: "alert_text" }, props.text))),
!hideBtn && (React.createElement("div", { className: "alert_button_container" },
props.alertType !== AlertType.CONFIRM && (React.createElement("div", { className: "alert_button", onClick: confirm }, props.btnText)),
props.alertType === AlertType.CONFIRM && (React.createElement(React.Fragment, null,
React.createElement("div", { className: "alert_button-confirm", onClick: close }, props.cancelText),
React.createElement("div", { style: { flex: 1 } }),
React.createElement("div", { className: "alert_button-confirm", onClick: confirm }, props.confirmText))))))));
};
Alert.defaultProps = AlertDefaultProps;
var renderCommon = function (params, alertType) {
if (Object.prototype.toString.call(params) === '[object String]') {
params = { title: params };
}
alertIns.show(React.createElement(Alert, tslib_1.__assign({ alertType: alertType }, tslib_1.__assign({}, params))));
};
var alert = {
success: function (params) {
closedByHand = false;
var DURATION = 2000;
if (Object.prototype.toString.call(params) === '[object String]') {
params = { title: params, duration: DURATION };
}
else {
params.duration = params.hasOwnProperty('duration')
? params.duration
: DURATION;
}
alertIns.show(React.createElement(Alert, tslib_1.__assign({ alertType: "success" }, tslib_1.__assign({}, params))));
var duration = params.duration;
if (duration === 0)
return;
var timer = setTimeout(function () {
!closedByHand && alertIns && alertIns.destroy();
clearTimeout(timer);
}, duration);
},
error: function (params) {
renderCommon(params, 'error');
},
warn: function (params) {
renderCommon(params, 'warn');
},
warning: function (params) {
renderCommon(params, 'warn');
},
confirm: function (params) {
renderCommon(params, 'confirm');
},
destroy: function () {
alertIns.destroy();
},
};
export default alert;
//# sourceMappingURL=index.js.map