linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
116 lines (113 loc) β’ 4.05 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.IconMap = exports.ExceptionMap = void 0;
var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons/CheckCircleFilled"));
var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled"));
var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons/ExclamationCircleFilled"));
var _WarningFilled = _interopRequireDefault(require("@ant-design/icons/WarningFilled"));
var _classnames = _interopRequireDefault(require("classnames"));
var React = _interopRequireWildcard(require("react"));
var _configProvider = require("../config-provider");
var _warning = _interopRequireDefault(require("../_util/warning"));
var _noFound = _interopRequireDefault(require("./noFound"));
var _serverError = _interopRequireDefault(require("./serverError"));
var _unauthorized = _interopRequireDefault(require("./unauthorized"));
const IconMap = {
success: _CheckCircleFilled.default,
error: _CloseCircleFilled.default,
info: _ExclamationCircleFilled.default,
warning: _WarningFilled.default
};
exports.IconMap = IconMap;
const ExceptionMap = {
'404': _noFound.default,
'500': _serverError.default,
'403': _unauthorized.default
};
exports.ExceptionMap = ExceptionMap;
// ExceptionImageMap keys
const ExceptionStatus = Object.keys(ExceptionMap);
/**
* Render icon if ExceptionStatus includes ,render svg image else render iconNode
*
* @param prefixCls
* @param {status, icon}
*/
const Icon = ({
prefixCls,
icon,
status
}) => {
const className = (0, _classnames.default)(`${prefixCls}-icon`);
(0, _warning.default)(!(typeof icon === 'string' && icon.length > 2), 'Result', `\`icon\` is using ReactNode instead of string naming in v4. Please check \`${icon}\` at https://ant.design/components/icon`);
if (ExceptionStatus.includes(`${status}`)) {
const SVGComponent = ExceptionMap[status];
return /*#__PURE__*/React.createElement("div", {
className: `${className} ${prefixCls}-image`
}, /*#__PURE__*/React.createElement(SVGComponent, null));
}
const iconNode = /*#__PURE__*/React.createElement(IconMap[status]);
if (icon === null || icon === false) {
return null;
}
return /*#__PURE__*/React.createElement("div", {
className: className
}, icon || iconNode);
};
const Extra = ({
prefixCls,
extra
}) => {
if (!extra) {
return null;
}
return /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-extra`
}, extra);
};
const Result = ({
prefixCls: customizePrefixCls,
className: customizeClassName,
subTitle,
title,
style,
children,
status = 'info',
icon,
extra
}) => {
const {
getPrefixCls,
direction
} = React.useContext(_configProvider.ConfigContext);
const prefixCls = getPrefixCls('result', customizePrefixCls);
const className = (0, _classnames.default)(prefixCls, `${prefixCls}-${status}`, customizeClassName, {
[`${prefixCls}-rtl`]: direction === 'rtl'
});
return /*#__PURE__*/React.createElement("div", {
className: className,
style: style
}, /*#__PURE__*/React.createElement(Icon, {
prefixCls: prefixCls,
status: status,
icon: icon
}), /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-title`
}, title), subTitle && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-subtitle`
}, subTitle), /*#__PURE__*/React.createElement(Extra, {
prefixCls: prefixCls,
extra: extra
}), children && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-content`
}, children));
};
Result.PRESENTED_IMAGE_403 = ExceptionMap['403'];
Result.PRESENTED_IMAGE_404 = ExceptionMap['404'];
Result.PRESENTED_IMAGE_500 = ExceptionMap['500'];
var _default = Result;
exports.default = _default;
;