@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
38 lines • 1.87 kB
JavaScript
import React from 'react';
import './InputMessage.style.scss';
import { STYLE } from './InputMessage.constants';
import Icon from '../Icon';
import Text from '../Text';
import classnames from 'classnames';
var messagePriority = {
none: 0,
success: 1,
warning: 2,
error: 3,
};
var determineMessageLevel = function (array) {
return array.reduce(function (agg, e) {
return messagePriority[agg] > messagePriority[e.level] ? agg : e.level || 'none';
}, 'none');
};
var filterMessagesByLevel = function (array, value) {
return array.reduce(function (agg, e) { return (e.level === value ? agg.concat(e.message) : agg); }, []);
};
export var getFilteredMessages = function (allMessages) {
var messageLevel = (allMessages.length > 0 && determineMessageLevel(allMessages)) || 'none';
var messages = (messageLevel && filterMessagesByLevel(allMessages, messageLevel)) || null;
return [messageLevel, messages];
};
var InputMessage = function (props) {
var message = props.message, _a = props.level, level = _a === void 0 ? 'none' : _a, className = props.className, id = props.id;
return (React.createElement("div", { className: classnames(STYLE.wrapper, className), id: id },
React.createElement("div", { className: STYLE.message, "message-level": level },
(level == 'error' || level == 'warning') && (React.createElement("div", { className: STYLE.icon },
React.createElement(Icon, { name: "warning", weight: "bold", scale: 16, fillColor: "var(--mds-color-theme-text-".concat(level, "-normal)") }))),
React.createElement(Text, { type: "body-secondary", tagName: "small", className: STYLE.text }, message))));
};
/**
* Message for use under Inputs that shows text with icon and color corresponding to level
*/
export default InputMessage;
//# sourceMappingURL=InputMessage.js.map