UNPKG

@attivio/suit

Version:

Attivio SUIT, the Search UI Toolkit, is a library for creating search clients for searching the Attivio platform.

150 lines (120 loc) 5.26 kB
'use strict'; exports.__esModule = true; exports.default = undefined; var _class, _temp; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _Glyphicon = require('react-bootstrap/lib/Glyphicon'); var _Glyphicon2 = _interopRequireDefault(_Glyphicon); var _glamor = require('glamor'); var _reactToastify = require('react-toastify'); require('react-toastify/dist/ReactToastify.css'); var _StyleUtils = require('../util/StyleUtils'); var _StyleUtils2 = _interopRequireDefault(_StyleUtils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var Notifiable = (_temp = _class = function (_React$Component) { _inherits(Notifiable, _React$Component); function Notifiable() { _classCallCheck(this, Notifiable); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } /** * This does all the work of setting up colors and the contents of the notifications... */ Notifiable.showNotification = function showNotification(message, type, requireDismissal) { var icon = void 0; var mainColor = void 0; var label = void 0; switch (type) { case _reactToastify.toast.TYPE.ERROR: icon = 'exclamation-sign'; mainColor = '#d9534f'; label = 'Error'; break; case _reactToastify.toast.TYPE.WARNING: icon = 'alert'; mainColor = '#f0ad4e'; label = 'Warning'; break; case _reactToastify.toast.TYPE.SUCCESS: icon = 'ok'; mainColor = '#5cb85c'; label = 'Success'; break; case _reactToastify.toast.TYPE.INFO: default: icon = 'info-sign'; mainColor = '#5bc0de'; label = 'Note'; break; } var backgroundColor = _StyleUtils2.default.lightenColor(mainColor, 0.5); var autoClose = requireDismissal ? false : 5000; var contents = _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { style: { float: 'left', color: mainColor, marginRight: '10px', fontSize: '18px' } }, _react2.default.createElement(_Glyphicon2.default, { glyph: icon }) ), _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { style: { color: mainColor, fontWeight: 'bold', fontSize: '1.2em' } }, label ), message ) ); var options = { type: _reactToastify.toast.TYPE.ERROR, autoClose: autoClose, className: (0, _glamor.css)({ backgroundColor: backgroundColor, color: 'black', borderRadius: '4px', borderTop: '4px solid ' + mainColor }) }; (0, _reactToastify.toast)(contents, options); }; Notifiable.error = function error(message) { var requireDismissal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; Notifiable.showNotification(message, _reactToastify.toast.TYPE.ERROR, requireDismissal); }; Notifiable.warn = function warn(message) { var requireDismissal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; Notifiable.showNotification(message, _reactToastify.toast.TYPE.WARNING, requireDismissal); }; Notifiable.info = function info(message) { var requireDismissal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; Notifiable.showNotification(message, _reactToastify.toast.TYPE.INFO, requireDismissal); }; Notifiable.success = function success(message) { var requireDismissal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; Notifiable.showNotification(message, _reactToastify.toast.TYPE.SUCCESS, requireDismissal); }; Notifiable.prototype.render = function render() { return _react2.default.createElement( 'div', null, _react2.default.createElement(_reactToastify.ToastContainer, { position: 'top-center', closeButton: false, transition: _reactToastify.Slide, hideProgressBar: true, draggable: false }), this.props.children ); }; return Notifiable; }(_react2.default.Component), _class.displayName = 'Notifiable', _temp); exports.default = Notifiable; module.exports = exports['default'];