@choerodon/master
Version:
A package of Master for Choerodon platform.
104 lines (88 loc) • 4.41 kB
JavaScript
import "choerodon-ui/lib/icon/style";
import _Icon from "choerodon-ui/lib/icon";
var _excluded = ["name", "colorCode", "color", "iconType"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React, { useMemo } from 'react';
import "./StatusTag.less";
var Color = {
RUNNING: '#4d90fe',
FAILED: '#f44336',
COMPLETED: '#00BFA5',
NON_CONSUMER: '#00BFA5',
DEFAULT: '#b8b8b8',
QUEUE: '#ffb100',
ENABLE: '#00bfa5',
DISABLE: '#d3d3d3',
FINISHED: '#ffb100',
NO_APPROVAL: '#ffb100',
APPROVED: '#00bfa5',
REJECTED: '#f44336'
};
var IconType = {
COMPLETED: 'check_circle',
NON_CONSUMER: 'check_circle',
FAILED: 'cancel',
ENABLE: 'check_circle',
DISABLE: 'remove_circle',
FINISHED: 'state_over',
RUNNING: 'timelapse',
PREDEFINE: 'settings',
CUSTOM: 'av_timer',
UN_START: 'timer',
QUEUE: 'watch_later'
};
var defaultProps = {
colorCode: 'DEFAULT'
};
function StatusTag(props) {
var name = props.name,
_props$colorCode = props.colorCode,
colorCode = _props$colorCode === void 0 ? defaultProps.colorCode : _props$colorCode,
color = props.color,
iconType = props.iconType,
otherProps = _objectWithoutProperties(props, _excluded);
function renderIconMode() {
return /*#__PURE__*/React.createElement("span", Object.assign({}, otherProps, {
className: "c7n-iam-status-tag-with-icon",
style: _objectSpread({}, props.style)
}), /*#__PURE__*/React.createElement(_Icon, {
type: iconType || [IconType[colorCode]]
}), /*#__PURE__*/React.createElement("span", null, name || ''));
}
function renderDefaultMode() {
var additionalStyles = {};
var offsetStyle = {};
if (name.length > 3) {
additionalStyles.width = 'auto';
offsetStyle.marginLeft = '-0.02rem';
}
return /*#__PURE__*/React.createElement("div", Object.assign({}, otherProps, {
className: "c7n-iam-status-tag",
style: _objectSpread(_objectSpread({
background: color || Color[colorCode]
}, additionalStyles), props.style)
}), /*#__PURE__*/React.createElement("div", {
style: offsetStyle
}, name));
}
function render() {
var mode = props.mode;
switch (mode) {
case 'icon':
return useMemo(function () {
return renderIconMode();
}, [name, color, colorCode]);
default:
// return renderDefaultMode();
return useMemo(function () {
return renderDefaultMode();
}, [name, color, colorCode]);
}
}
return render();
}
export default StatusTag;