@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
JavaScript
;
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'];