1 | import _extends from 'babel-runtime/helpers/extends';
|
2 | import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
3 | import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
4 | import _inherits from 'babel-runtime/helpers/inherits';
|
5 |
|
6 | var _class, _temp2;
|
7 |
|
8 | import React, { Component } from 'react';
|
9 | import PropTypes from 'prop-types';
|
10 | import { polyfill } from 'react-lifecycles-compat';
|
11 | import classNames from 'classnames';
|
12 | import nextLocale from '../locale/zh-cn';
|
13 | import Icon from '../icon';
|
14 | import Animate from '../animate';
|
15 | import ConfigProvider from '../config-provider';
|
16 | import { obj } from '../util';
|
17 |
|
18 | var noop = function noop() {};
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | var Message = (_temp2 = _class = function (_Component) {
|
24 | _inherits(Message, _Component);
|
25 |
|
26 | function Message() {
|
27 | var _temp, _this, _ret;
|
28 |
|
29 | _classCallCheck(this, Message);
|
30 |
|
31 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
32 | args[_key] = arguments[_key];
|
33 | }
|
34 |
|
35 | return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
|
36 | visible: typeof _this.props.visible === 'undefined' ? _this.props.defaultVisible : _this.props.visible
|
37 | }, _this.onClose = function () {
|
38 | if (!('visible' in _this.props)) {
|
39 | _this.setState({
|
40 | visible: false
|
41 | });
|
42 | }
|
43 | _this.props.onClose(false);
|
44 | }, _temp), _possibleConstructorReturn(_this, _ret);
|
45 | }
|
46 |
|
47 | Message.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
|
48 | if ('visible' in props) {
|
49 | return {
|
50 | visible: props.visible
|
51 | };
|
52 | }
|
53 |
|
54 | return {};
|
55 | };
|
56 |
|
57 | Message.prototype.render = function render() {
|
58 | var _classNames;
|
59 |
|
60 |
|
61 | var _props = this.props,
|
62 | prefix = _props.prefix,
|
63 | pure = _props.pure,
|
64 | className = _props.className,
|
65 | style = _props.style,
|
66 | type = _props.type,
|
67 | shape = _props.shape,
|
68 | size = _props.size,
|
69 | title = _props.title,
|
70 | children = _props.children,
|
71 | defaultVisible = _props.defaultVisible,
|
72 | propsVisible = _props.visible,
|
73 | icon = _props.iconType,
|
74 | closeable = _props.closeable,
|
75 | onClose = _props.onClose,
|
76 | afterClose = _props.afterClose,
|
77 | animation = _props.animation,
|
78 | rtl = _props.rtl,
|
79 | locale = _props.locale;
|
80 |
|
81 | var others = _extends({}, obj.pickOthers(Object.keys(Message.propTypes), this.props));
|
82 |
|
83 | var visible = this.state.visible;
|
84 |
|
85 | var messagePrefix = prefix + 'message';
|
86 |
|
87 | var classes = classNames((_classNames = {}, _classNames[messagePrefix] = true, _classNames[prefix + 'message-' + type] = type, _classNames['' + prefix + shape] = shape, _classNames['' + prefix + size] = size, _classNames[prefix + 'title-content'] = !!title, _classNames[prefix + 'only-content'] = !title && !!children, _classNames[className] = className, _classNames));
|
88 |
|
89 | var newChildren = visible ? React.createElement(
|
90 | 'div',
|
91 | _extends({ role: 'alert', style: style }, others, { className: classes, dir: rtl ? 'rtl' : undefined }),
|
92 | closeable ? React.createElement(
|
93 | 'a',
|
94 | {
|
95 | role: 'button',
|
96 | 'aria-label': locale.closeAriaLabel,
|
97 | className: messagePrefix + '-close',
|
98 | onClick: this.onClose
|
99 | },
|
100 | React.createElement(Icon, { type: 'close' })
|
101 | ) : null,
|
102 | icon !== false ? React.createElement(Icon, {
|
103 | className: messagePrefix + '-symbol ' + (!icon && messagePrefix + '-symbol-icon'),
|
104 | type: icon
|
105 | }) : null,
|
106 | title ? React.createElement(
|
107 | 'div',
|
108 | { className: messagePrefix + '-title' },
|
109 | title
|
110 | ) : null,
|
111 | children ? React.createElement(
|
112 | 'div',
|
113 | { className: messagePrefix + '-content' },
|
114 | children
|
115 | ) : null
|
116 | ) : null;
|
117 |
|
118 | if (animation) {
|
119 | return React.createElement(
|
120 | Animate.Expand,
|
121 | { animationAppear: false, afterLeave: afterClose },
|
122 | newChildren
|
123 | );
|
124 | }
|
125 |
|
126 | return newChildren;
|
127 | };
|
128 |
|
129 | return Message;
|
130 | }(Component), _class.propTypes = {
|
131 | prefix: PropTypes.string,
|
132 | pure: PropTypes.bool,
|
133 | className: PropTypes.string,
|
134 | style: PropTypes.object,
|
135 | |
136 |
|
137 |
|
138 | type: PropTypes.oneOf(['success', 'warning', 'error', 'notice', 'help', 'loading']),
|
139 | |
140 |
|
141 |
|
142 | shape: PropTypes.oneOf(['inline', 'addon', 'toast']),
|
143 | |
144 |
|
145 |
|
146 | size: PropTypes.oneOf(['medium', 'large']),
|
147 | |
148 |
|
149 |
|
150 | title: PropTypes.node,
|
151 | |
152 |
|
153 |
|
154 | children: PropTypes.node,
|
155 | |
156 |
|
157 |
|
158 | defaultVisible: PropTypes.bool,
|
159 | |
160 |
|
161 |
|
162 | visible: PropTypes.bool,
|
163 | |
164 |
|
165 |
|
166 | iconType: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
|
167 | |
168 |
|
169 |
|
170 | closeable: PropTypes.bool,
|
171 | |
172 |
|
173 |
|
174 | onClose: PropTypes.func,
|
175 | |
176 |
|
177 |
|
178 | afterClose: PropTypes.func,
|
179 | |
180 |
|
181 |
|
182 | animation: PropTypes.bool,
|
183 | locale: PropTypes.object,
|
184 | rtl: PropTypes.bool
|
185 | }, _class.defaultProps = {
|
186 | prefix: 'next-',
|
187 | pure: false,
|
188 | type: 'success',
|
189 | shape: 'inline',
|
190 | size: 'medium',
|
191 | defaultVisible: true,
|
192 | closeable: false,
|
193 | onClose: noop,
|
194 | afterClose: noop,
|
195 | animation: true,
|
196 | locale: nextLocale.Message
|
197 | }, _temp2);
|
198 | Message.displayName = 'Message';
|
199 |
|
200 |
|
201 | export default ConfigProvider.config(polyfill(Message)); |
\ | No newline at end of file |