calcite-react
Version:
Calcite components for React
126 lines (97 loc) • 4.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _AlertStyled = require("./Alert-styled");
var _XIcon = _interopRequireDefault(require("calcite-ui-icons-react/XIcon"));
var _LightbulbIcon = _interopRequireDefault(require("calcite-ui-icons-react/LightbulbIcon"));
var _CheckCircleIcon = _interopRequireDefault(require("calcite-ui-icons-react/CheckCircleIcon"));
var _ExclamationMarkTriangleIcon = _interopRequireDefault(require("calcite-ui-icons-react/ExclamationMarkTriangleIcon"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
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; }
var Alert = function Alert(_ref) {
var children = _ref.children,
showIcon = _ref.showIcon,
icon = _ref.icon,
showCloseLabel = _ref.showCloseLabel,
closeLabel = _ref.closeLabel,
onClose = _ref.onClose,
blue = _ref.blue,
green = _ref.green,
yellow = _ref.yellow,
red = _ref.red,
other = _objectWithoutProperties(_ref, ["children", "showIcon", "icon", "showCloseLabel", "closeLabel", "onClose", "blue", "green", "yellow", "red"]);
var getAlertIcon = function getAlertIcon() {
var defaultIcon;
if (green) {
defaultIcon = _react.default.createElement(_CheckCircleIcon.default, {
filled: true,
size: 16
});
} else if (yellow) {
defaultIcon = _react.default.createElement(_ExclamationMarkTriangleIcon.default, {
filled: true,
size: 16
});
} else if (red) {
defaultIcon = _react.default.createElement(_ExclamationMarkTriangleIcon.default, {
filled: true,
size: 16
});
} else {
defaultIcon = _react.default.createElement(_LightbulbIcon.default, {
filled: true,
size: 16
});
}
return _react.default.createElement(_AlertStyled.StyledAlertIcon, null, icon || defaultIcon);
};
var getAlertClose = function getAlertClose() {
return _react.default.createElement(_AlertStyled.StyledAlertClose, {
onClick: onClose
}, closeLabel || _react.default.createElement(_XIcon.default, {
size: 16
}));
};
return _react.default.createElement(_AlertStyled.StyledAlert, _extends({
blue: blue,
green: green,
yellow: yellow,
red: red
}, other), (showIcon || icon) && getAlertIcon(), _react.default.createElement(_AlertStyled.StyledAlertContent, null, children), (showCloseLabel || closeLabel) && getAlertClose());
};
Alert.propTypes = {
/** Components to be rendered within the Alert. */
children: _propTypes.default.node,
/** Toggles visibility of the icon */
showIcon: _propTypes.default.bool,
/** Manually set an icon rather than use the default */
icon: _propTypes.default.node,
/** Color modifier for the Alert. */
blue: _propTypes.default.bool,
/** Color modifier for the Alert. */
green: _propTypes.default.bool,
/** Color modifier for the Alert. */
yellow: _propTypes.default.bool,
/** Color modifier for the Alert. */
red: _propTypes.default.bool,
/** Full-width modifier for the Alert. */
full: _propTypes.default.bool,
/** */
showCloseLabel: _propTypes.default.bool,
/** Display label used to close the Alert. */
closeLabel: _propTypes.default.node,
/** Callback function fired when the close link is clicked. */
onClose: _propTypes.default.func
};
Alert.defaultProps = {
onClose: function onClose() {}
};
Alert.displayName = 'Alert';
var _default = Alert;
exports.default = _default;