1 | /**
|
2 | * Toast group.
|
3 | * @class ApToastGroup
|
4 | */
|
5 |
|
6 | ;
|
7 |
|
8 | Object.defineProperty(exports, "__esModule", {
|
9 | value: true
|
10 | });
|
11 |
|
12 | var _react = require('react');
|
13 |
|
14 | var _react2 = _interopRequireDefault(_react);
|
15 |
|
16 | var _ap_toast = require('./ap_toast');
|
17 |
|
18 | var _ap_toast2 = _interopRequireDefault(_ap_toast);
|
19 |
|
20 | var _apemanReactMixinPure = require('apeman-react-mixin-pure');
|
21 |
|
22 | var _ap_info_toast = require('./ap_info_toast');
|
23 |
|
24 | var _ap_info_toast2 = _interopRequireDefault(_ap_info_toast);
|
25 |
|
26 | var _ap_warn_toast = require('./ap_warn_toast');
|
27 |
|
28 | var _ap_warn_toast2 = _interopRequireDefault(_ap_warn_toast);
|
29 |
|
30 | var _ap_error_toast = require('./ap_error_toast');
|
31 |
|
32 | var _ap_error_toast2 = _interopRequireDefault(_ap_error_toast);
|
33 |
|
34 | var _toaster = require('./toasting/toaster');
|
35 |
|
36 | var _toaster2 = _interopRequireDefault(_toaster);
|
37 |
|
38 | var _classnames = require('classnames');
|
39 |
|
40 | var _classnames2 = _interopRequireDefault(_classnames);
|
41 |
|
42 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
43 |
|
44 | /** @lends ApToastGroup */
|
45 | var ApToastGroup = _react2.default.createClass({
|
46 | displayName: 'ApToastGroup',
|
47 |
|
48 |
|
49 | // --------------------
|
50 | // Specs
|
51 | // --------------------
|
52 |
|
53 | propTypes: {
|
54 | duration: _react.PropTypes.number,
|
55 | toaster: _react.PropTypes.instanceOf(_toaster2.default)
|
56 | },
|
57 |
|
58 | mixins: [_apemanReactMixinPure.ApPureMixin],
|
59 |
|
60 | statics: {
|
61 | Toaster: _toaster2.default
|
62 | },
|
63 |
|
64 | getInitialState: function getInitialState() {
|
65 | var state = { _date: null };
|
66 | _toaster2.default.levels.forEach(function (level) {
|
67 | state[level] = null;
|
68 | });
|
69 | return state;
|
70 | },
|
71 | getDefaultProps: function getDefaultProps() {
|
72 | return {
|
73 | toaster: null
|
74 | };
|
75 | },
|
76 | render: function render() {
|
77 | var s = this;
|
78 | var state = s.state;
|
79 | var props = s.props;
|
80 | var duration = props.duration;
|
81 |
|
82 |
|
83 | return _react2.default.createElement(
|
84 | 'div',
|
85 | { className: (0, _classnames2.default)('ap-toast-group', {}, props.className) },
|
86 | _react2.default.createElement(_ap_toast2.default, { message: state.default, duration: duration, name: 'default', onDismiss: s.handleDismiss }),
|
87 | _react2.default.createElement(_ap_info_toast2.default, { message: state.info, duration: duration, name: 'info', onDismiss: s.handleDismiss }),
|
88 | _react2.default.createElement(_ap_warn_toast2.default, { message: state.warn, duration: duration, name: 'warn', onDismiss: s.handleDismiss }),
|
89 | _react2.default.createElement(_ap_error_toast2.default, { message: state.error, duration: duration, name: 'error', onDismiss: s.handleDismiss }),
|
90 | props.children
|
91 | );
|
92 | },
|
93 |
|
94 |
|
95 | // --------------------
|
96 | // Lifecycle
|
97 | // --------------------
|
98 |
|
99 | componentDidMount: function componentDidMount() {
|
100 | var s = this;
|
101 | var props = s.props;
|
102 |
|
103 | if (props.toaster) {
|
104 | s.bindToaster(props.toaster);
|
105 | }
|
106 | },
|
107 | componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
|
108 | var s = this;
|
109 | var props = s.props;
|
110 |
|
111 | if (nextProps.toaster) {
|
112 | s.unbindToaster(props.toaster);
|
113 | s.bindToaster(nextProps.toaster);
|
114 | }
|
115 | },
|
116 | componentWillUnmount: function componentWillUnmount() {
|
117 | var s = this;
|
118 | var props = s.props;
|
119 |
|
120 | if (props.toaster) {
|
121 | s.unbindToaster(props.toaster);
|
122 | }
|
123 | },
|
124 |
|
125 |
|
126 | // --------------------
|
127 | // Custom
|
128 | // --------------------
|
129 |
|
130 | handleDismiss: function handleDismiss(e) {
|
131 | var s = this;
|
132 | var state = s.state;
|
133 | var name = e.name;
|
134 | var dismissed = e.dismissed;
|
135 |
|
136 | if (state[name] === dismissed) {
|
137 | s.setState({ name: null });
|
138 | }
|
139 | },
|
140 |
|
141 |
|
142 | /**
|
143 | * Bind toaster events.
|
144 | * @param toaster
|
145 | */
|
146 | bindToaster: function bindToaster(toaster) {
|
147 | var s = this;
|
148 | toaster.addListener('toast', s.handleToast);
|
149 | },
|
150 |
|
151 |
|
152 | /**
|
153 | * Unbind toaster events.
|
154 | * @param toaster
|
155 | */
|
156 | unbindToaster: function unbindToaster(toaster) {
|
157 | var s = this;
|
158 | toaster.removeListener('toast', s.handleToast);
|
159 | },
|
160 |
|
161 |
|
162 | /**
|
163 | * Handle toaster events.
|
164 | * @param data
|
165 | */
|
166 | handleToast: function handleToast(data) {
|
167 | var s = this;
|
168 | var state = { _date: new Date() };
|
169 | _toaster2.default.levels.forEach(function (level) {
|
170 | state[level] = data.level === level ? data.message : null;
|
171 | });
|
172 | s.setState(state);
|
173 | }
|
174 | });
|
175 |
|
176 | exports.default = ApToastGroup;
|
177 | //# sourceMappingURL=data:application/json;base64,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UztBQUFBLFFBR0gsU0FIRyxHQUdXLENBSFgsQ0FHSCxTQUhHOztBQUlmLFFBQUksTUFBTyxJQUFQLE1BQWtCLFNBQXRCLEVBQWlDO0FBQy9CLFFBQUUsUUFBRixDQUFXLEVBQUUsTUFBTSxJQUFSLEVBQVg7QUFDRDtBQUNGLEdBMUZvQzs7Ozs7OztBQWdHckMsYUFoR3FDLHVCQWdHekIsT0FoR3lCLEVBZ0dqQjtBQUNsQixRQUFNLElBQUksSUFBVjtBQUNBLFlBQVEsV0FBUixDQUFvQixPQUFwQixFQUE2QixFQUFFLFdBQS9CO0FBQ0QsR0FuR29DOzs7Ozs7O0FBeUdyQyxlQXpHcUMseUJBeUd2QixPQXpHdUIsRUF5R2Y7QUFDcEIsUUFBTSxJQUFJLElBQVY7QUFDQSxZQUFRLGNBQVIsQ0FBdUIsT0FBdkIsRUFBZ0MsRUFBRSxXQUFsQztBQUNELEdBNUdvQzs7Ozs7OztBQWtIckMsYUFsSHFDLHVCQWtIekIsSUFsSHlCLEVBa0hwQjtBQUNmLFFBQU0sSUFBSSxJQUFWO0FBQ0EsUUFBSSxRQUFRLEVBQUUsT0FBTyxJQUFJLElBQUosRUFBVCxFQUFaO0FBQ0Esc0JBQVEsTUFBUixDQUFlLE9BQWYsQ0FBdUIsVUFBQyxLQUFELEVBQVc7QUFDaEMsWUFBTyxLQUFQLElBQWlCLEtBQUssS0FBTCxLQUFlLEtBQWYsR0FBdUIsS0FBSyxPQUE1QixHQUFzQyxJQUF2RDtBQUNELEtBRkQ7QUFHQSxNQUFFLFFBQUYsQ0FBVyxLQUFYO0FBQ0Q7QUF6SG9DLENBQWxCLENBQXJCOztrQkE0SGUsWSIsImZpbGUiOiJhcF90b2FzdF9ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LXRvYXN0L2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVG9hc3QgZ3JvdXAuXG4gKiBAY2xhc3MgQXBUb2FzdEdyb3VwXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5pbXBvcnQgQXBUb2FzdCBmcm9tICcuL2FwX3RvYXN0J1xuaW1wb3J0IHtBcFB1cmVNaXhpbn0gZnJvbSAnYXBlbWFuLXJlYWN0LW1peGluLXB1cmUnXG5pbXBvcnQgQXBJbmZvVG9hc3QgZnJvbSAnLi9hcF9pbmZvX3RvYXN0J1xuaW1wb3J0IEFwV2FyblRvYXN0IGZyb20gJy4vYXBfd2Fybl90b2FzdCdcbmltcG9ydCBBcEVycm9yVG9hc3QgZnJvbSAnLi9hcF9lcnJvcl90b2FzdCdcbmltcG9ydCBUb2FzdGVyIGZyb20gJy4vdG9hc3RpbmcvdG9hc3RlcidcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5cbi8qKiBAbGVuZHMgQXBUb2FzdEdyb3VwICovXG5jb25zdCBBcFRvYXN0R3JvdXAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm9wVHlwZXM6IHtcbiAgICBkdXJhdGlvbjogdHlwZXMubnVtYmVyLFxuICAgIHRvYXN0ZXI6IHR5cGVzLmluc3RhbmNlT2YoVG9hc3RlcilcbiAgfSxcblxuICBtaXhpbnM6IFtcbiAgICBBcFB1cmVNaXhpblxuICBdLFxuXG4gIHN0YXRpY3M6IHtcbiAgICBUb2FzdGVyOiBUb2FzdGVyXG4gIH0sXG5cbiAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICBsZXQgc3RhdGUgPSB7IF9kYXRlOiBudWxsIH1cbiAgICBUb2FzdGVyLmxldmVscy5mb3JFYWNoKGxldmVsID0+IHtcbiAgICAgIHN0YXRlWyBsZXZlbCBdID0gbnVsbDtcbiAgICB9KVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSxcblxuICBnZXREZWZhdWx0UHJvcHMgKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0b2FzdGVyOiBudWxsXG4gICAgfVxuICB9LFxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBzdGF0ZSwgcHJvcHMgfSA9IHNcbiAgICBsZXQgeyBkdXJhdGlvbiB9ID0gcHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoJ2FwLXRvYXN0LWdyb3VwJywge1xuICAgICAgICAgICAgfSwgcHJvcHMuY2xhc3NOYW1lKSB9PlxuICAgICAgICA8QXBUb2FzdCBtZXNzYWdlPXsgc3RhdGUuZGVmYXVsdCB9IGR1cmF0aW9uPXsgZHVyYXRpb24gfSBuYW1lPVwiZGVmYXVsdFwiIG9uRGlzbWlzcz17IHMuaGFuZGxlRGlzbWlzcyB9Lz5cbiAgICAgICAgPEFwSW5mb1RvYXN0IG1lc3NhZ2U9eyBzdGF0ZS5pbmZvIH0gZHVyYXRpb249eyBkdXJhdGlvbiB9IG5hbWU9XCJpbmZvXCIgb25EaXNtaXNzPXsgcy5oYW5kbGVEaXNtaXNzIH0vPlxuICAgICAgICA8QXBXYXJuVG9hc3QgbWVzc2FnZT17IHN0YXRlLndhcm4gfSBkdXJhdGlvbj17IGR1cmF0aW9uIH0gbmFtZT1cIndhcm5cIiBvbkRpc21pc3M9eyBzLmhhbmRsZURpc21pc3MgfS8+XG4gICAgICAgIDxBcEVycm9yVG9hc3QgbWVzc2FnZT17IHN0YXRlLmVycm9yIH0gZHVyYXRpb249eyBkdXJhdGlvbiB9IG5hbWU9XCJlcnJvclwiIG9uRGlzbWlzcz17IHMuaGFuZGxlRGlzbWlzcyB9Lz5cbiAgICAgICAgeyBwcm9wcy5jaGlsZHJlbiB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH0sXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29tcG9uZW50RGlkTW91bnQgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBpZiAocHJvcHMudG9hc3Rlcikge1xuICAgICAgcy5iaW5kVG9hc3Rlcihwcm9wcy50b2FzdGVyKVxuICAgIH1cbiAgfSxcblxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIChuZXh0UHJvcHMpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgaWYgKG5leHRQcm9wcy50b2FzdGVyKSB7XG4gICAgICBzLnVuYmluZFRvYXN0ZXIocHJvcHMudG9hc3RlcilcbiAgICAgIHMuYmluZFRvYXN0ZXIobmV4dFByb3BzLnRvYXN0ZXIpXG4gICAgfVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgaWYgKHByb3BzLnRvYXN0ZXIpIHtcbiAgICAgIHMudW5iaW5kVG9hc3Rlcihwcm9wcy50b2FzdGVyKVxuICAgIH1cbiAgfSxcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDdXN0b21cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBoYW5kbGVEaXNtaXNzKGUpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHN0YXRlIH0gPSBzXG4gICAgbGV0IHsgbmFtZSwgZGlzbWlzc2VkIH0gPSBlXG4gICAgaWYgKHN0YXRlWyBuYW1lIF0gPT09IGRpc21pc3NlZCkge1xuICAgICAgcy5zZXRTdGF0ZSh7IG5hbWU6IG51bGwgfSlcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEJpbmQgdG9hc3RlciBldmVudHMuXG4gICAqIEBwYXJhbSB0b2FzdGVyXG4gICAqL1xuICBiaW5kVG9hc3Rlcih0b2FzdGVyKXtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIHRvYXN0ZXIuYWRkTGlzdGVuZXIoJ3RvYXN0Jywgcy5oYW5kbGVUb2FzdClcbiAgfSxcblxuICAvKipcbiAgICogVW5iaW5kIHRvYXN0ZXIgZXZlbnRzLlxuICAgKiBAcGFyYW0gdG9hc3RlclxuICAgKi9cbiAgdW5iaW5kVG9hc3Rlcih0b2FzdGVyKXtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIHRvYXN0ZXIucmVtb3ZlTGlzdGVuZXIoJ3RvYXN0Jywgcy5oYW5kbGVUb2FzdClcbiAgfSxcblxuICAvKipcbiAgICogSGFuZGxlIHRvYXN0ZXIgZXZlbnRzLlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgaGFuZGxlVG9hc3QoZGF0YSl7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgc3RhdGUgPSB7IF9kYXRlOiBuZXcgRGF0ZSgpIH1cbiAgICBUb2FzdGVyLmxldmVscy5mb3JFYWNoKChsZXZlbCkgPT4ge1xuICAgICAgc3RhdGVbIGxldmVsIF0gPSBkYXRhLmxldmVsID09PSBsZXZlbCA/IGRhdGEubWVzc2FnZSA6IG51bGw7XG4gICAgfSlcbiAgICBzLnNldFN0YXRlKHN0YXRlKVxuICB9XG59KVxuXG5leHBvcnQgZGVmYXVsdCBBcFRvYXN0R3JvdXA7Il19 |
\ | No newline at end of file |