apeman-react-toast
Version:
apeman react package for toast components.
150 lines (121 loc) • 10.4 kB
JavaScript
/**
* Toast component
* @class ApToast
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _asobj = require('asobj');
var _ap_toast_item = require('./ap_toast_item');
var _ap_toast_item2 = _interopRequireDefault(_ap_toast_item);
var _reactAddonsCssTransitionGroup = require('react-addons-css-transition-group');
var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** @lends ApToast */
var ApToast = _react2.default.createClass({
displayName: 'ApToast',
// --------------------
// Specs
// --------------------
propTypes: {
/** Messages to show */
messages: _react.PropTypes.arrayOf(_react.PropTypes.string),
/** Icon to show */
icon: _react.PropTypes.string,
/** Dismiss an item */
dismiss: _react.PropTypes.func,
/** Level of toast */
level: _react.PropTypes.string
},
mixins: [],
statics: {},
getInitialState: function getInitialState() {
return {};
},
getDefaultProps: function getDefaultProps() {
return {
transitionTimeout: 100,
level: 'default',
messages: [],
icon: null,
dismiss: null
};
},
render: function render() {
var s = this;
var props = s.props;
var messages = props.messages;
var icon = props.icon;
var dismiss = props.dismiss;
var className = props.className;
var style = props.style;
var level = props.level;
var transitionTimeout = props.transitionTimeout;
var children = messages.filter(Boolean).map(function (message) {
return _react2.default.createElement(_ap_toast_item2.default, { key: message,
text: message,
icon: icon,
onTap: function onTap() {
return dismiss(message, level);
}
});
});
if (children.length === 0) {
return null;
}
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)('ap-toast', className, {}),
style: Object.assign({}, style) },
_react2.default.createElement(
_reactAddonsCssTransitionGroup2.default,
{ component: 'div',
className: 'ap-toast-inner',
transitionName: 'ap-toast-transition',
transitionEnterTimeout: transitionTimeout,
transitionLeaveTimeout: transitionTimeout
},
children
)
);
},
// --------------------
// Lifecycle
// --------------------
componentWillMount: function componentWillMount() {
var s = this;
},
componentDidMount: function componentDidMount() {
var s = this;
var props = s.props;
},
componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
var s = this;
},
componentWillUnmount: function componentWillUnmount() {
var s = this;
},
shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {
var s = this;
var props = s.props;
var state = s.state;
var messageChanged = !(0, _asobj.deepEqual)(props.messages, nextProps.messages);
if (messageChanged) {
return true;
}
return !(0, _asobj.shallowEqual)(props, nextProps) || (0, _asobj.shallowEqual)(state, nextState);
}
// ------------------
// Custom
// ------------------
// ------------------
// Private
// ------------------
});
exports.default = ApToast;
//# sourceMappingURL=data:application/json;base64,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QUVwQixDQUZvQixDQUU5QixLQUY4Qjs7QUFHM0MsUUFBSSxpQkFBaUIsQ0FBQyxzQkFBVSxNQUFNLFFBQWhCLEVBQTBCLFVBQVUsUUFBcEMsQ0FBdEI7QUFDQSxRQUFJLGNBQUosRUFBb0I7QUFDbEIsYUFBTyxJQUFQO0FBQ0Q7QUFDRCxXQUFPLENBQUMseUJBQWEsS0FBYixFQUFvQixTQUFwQixDQUFELElBQW1DLHlCQUFhLEtBQWIsRUFBb0IsU0FBcEIsQ0FBMUM7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQTlHZ0MsQ0FBbEIsQ0FBaEI7O2tCQWlIZSxPIiwiZmlsZSI6ImFwX3RvYXN0LmpzeCIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LXRvYXN0L2NpLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVG9hc3QgY29tcG9uZW50XG4gKiBAY2xhc3MgQXBUb2FzdFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB7c2hhbGxvd0VxdWFsLCBkZWVwRXF1YWx9IGZyb20gJ2Fzb2JqJ1xuaW1wb3J0IEFwVG9hc3RJdGVtIGZyb20gJy4vYXBfdG9hc3RfaXRlbSdcbmltcG9ydCBSZWFjdENTU1RyYW5zaXRpb25Hcm91cCBmcm9tICdyZWFjdC1hZGRvbnMtY3NzLXRyYW5zaXRpb24tZ3JvdXAnXG5cbi8qKiBAbGVuZHMgQXBUb2FzdCAqL1xuY29uc3QgQXBUb2FzdCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGVjc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByb3BUeXBlczoge1xuICAgIC8qKiBNZXNzYWdlcyB0byBzaG93ICovXG4gICAgbWVzc2FnZXM6IHR5cGVzLmFycmF5T2YodHlwZXMuc3RyaW5nKSxcbiAgICAvKiogSWNvbiB0byBzaG93ICovXG4gICAgaWNvbjogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBEaXNtaXNzIGFuIGl0ZW0gKi9cbiAgICBkaXNtaXNzOiB0eXBlcy5mdW5jLFxuICAgIC8qKiBMZXZlbCBvZiB0b2FzdCAqL1xuICAgIGxldmVsOiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBtaXhpbnM6IFtdLFxuXG4gIHN0YXRpY3M6IHt9LFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvblRpbWVvdXQ6IDEwMCxcbiAgICAgIGxldmVsOiAnZGVmYXVsdCcsXG4gICAgICBtZXNzYWdlczogW10sXG4gICAgICBpY29uOiBudWxsLFxuICAgICAgZGlzbWlzczogbnVsbFxuICAgIH1cbiAgfSxcblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcblxuICAgIGxldCB7XG4gICAgICBtZXNzYWdlcywgaWNvbiwgZGlzbWlzcyxcbiAgICAgIGNsYXNzTmFtZSwgc3R5bGUsIGxldmVsLFxuICAgICAgdHJhbnNpdGlvblRpbWVvdXRcbiAgICB9ID0gcHJvcHNcblxuICAgIGxldCBjaGlsZHJlbiA9IG1lc3NhZ2VzXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAubWFwKChtZXNzYWdlKSA9PiAoXG4gICAgICAgIDxBcFRvYXN0SXRlbSBrZXk9eyBtZXNzYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgIHRleHQ9eyBtZXNzYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgIGljb249eyBpY29uIH1cbiAgICAgICAgICAgICAgICAgICAgIG9uVGFwPXsgKCkgPT4gZGlzbWlzcyhtZXNzYWdlLCBsZXZlbCkgfVxuICAgICAgICA+XG4gICAgICAgIDwvQXBUb2FzdEl0ZW0+XG4gICAgICApKVxuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoJ2FwLXRvYXN0JywgY2xhc3NOYW1lLCB7fSkgfVxuICAgICAgICAgICBzdHlsZT17IE9iamVjdC5hc3NpZ24oe30sIHN0eWxlKSB9PlxuICAgICAgICA8UmVhY3RDU1NUcmFuc2l0aW9uR3JvdXAgY29tcG9uZW50PSdkaXYnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J2FwLXRvYXN0LWlubmVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbk5hbWU9J2FwLXRvYXN0LXRyYW5zaXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRW50ZXJUaW1lb3V0PXsgdHJhbnNpdGlvblRpbWVvdXQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbkxlYXZlVGltZW91dD17IHRyYW5zaXRpb25UaW1lb3V0IH1cbiAgICAgICAgPlxuICAgICAgICAgIHsgY2hpbGRyZW4gfVxuICAgICAgICA8L1JlYWN0Q1NTVHJhbnNpdGlvbkdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIExpZmVjeWNsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgKG5leHRQcm9wcykge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gIH0sXG5cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlIChuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMsIHN0YXRlIH0gPSBzXG4gICAgbGV0IG1lc3NhZ2VDaGFuZ2VkID0gIWRlZXBFcXVhbChwcm9wcy5tZXNzYWdlcywgbmV4dFByb3BzLm1lc3NhZ2VzKVxuICAgIGlmIChtZXNzYWdlQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuICFzaGFsbG93RXF1YWwocHJvcHMsIG5leHRQcm9wcykgfHwgc2hhbGxvd0VxdWFsKHN0YXRlLCBuZXh0U3RhdGUpXG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ3VzdG9tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YXRlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxufSlcblxuZXhwb3J0IGRlZmF1bHQgQXBUb2FzdFxuIl19