UNPKG

6.26 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _class, _temp2;
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _propTypes = require('prop-types');
32
33var _propTypes2 = _interopRequireDefault(_propTypes);
34
35var _classnames = require('classnames');
36
37var _classnames2 = _interopRequireDefault(_classnames);
38
39var _icon = require('../icon');
40
41var _icon2 = _interopRequireDefault(_icon);
42
43var _util = require('../util');
44
45var _zhCn = require('../locale/zh-cn.js');
46
47var _zhCn2 = _interopRequireDefault(_zhCn);
48
49var _upload = require('./upload');
50
51var _upload2 = _interopRequireDefault(_upload);
52
53function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
54
55/**
56 * Upload.Dragger
57 * @description IE10+ 支持。继承 Upload 的 API,除非特别说明
58 */
59var Dragger = (_temp2 = _class = function (_React$Component) {
60 (0, _inherits3.default)(Dragger, _React$Component);
61
62 function Dragger() {
63 var _temp, _this, _ret;
64
65 (0, _classCallCheck3.default)(this, Dragger);
66
67 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
68 args[_key] = arguments[_key];
69 }
70
71 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
72 dragOver: false
73 }, _this.onDragOver = function (e) {
74 if (!_this.state.dragOver) {
75 _this.setState({
76 dragOver: true
77 });
78 }
79
80 _this.props.onDragOver(e);
81 }, _this.onDragLeave = function (e) {
82 _this.setState({
83 dragOver: false
84 });
85 _this.props.onDragLeave(e);
86 }, _this.onDrop = function (e) {
87 _this.setState({
88 dragOver: false
89 });
90 _this.props.onDrop(e);
91 }, _this.saveUploaderRef = function (ref) {
92 /* istanbul ignore if */
93 if (ref && typeof ref.getInstance === 'function') {
94 _this.uploaderRef = ref.getInstance();
95 } else {
96 _this.uploaderRef = ref;
97 }
98 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
99 }
100
101 /* istanbul ignore next */
102 Dragger.prototype.abort = function abort(file) {
103 /* istanbul ignore next */
104 this.uploaderRef.abort(file);
105 };
106 /* istanbul ignore next */
107
108
109 Dragger.prototype.startUpload = function startUpload() {
110 /* istanbul ignore next */
111 this.uploaderRef.startUpload();
112 };
113
114 Dragger.prototype.render = function render() {
115 var _classNames;
116
117 var _props = this.props,
118 className = _props.className,
119 style = _props.style,
120 shape = _props.shape,
121 locale = _props.locale,
122 prefix = _props.prefix,
123 listType = _props.listType,
124 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'style', 'shape', 'locale', 'prefix', 'listType']);
125
126 var prefixCls = prefix + 'upload-drag';
127 var cls = (0, _classnames2.default)((_classNames = {}, _classNames['' + prefixCls] = true, _classNames[prefixCls + '-over'] = this.state.dragOver, _classNames[className] = !!className, _classNames));
128
129 var children = this.props.children || _react2.default.createElement(
130 'div',
131 { className: cls },
132 _react2.default.createElement(
133 'p',
134 { className: prefixCls + '-icon' },
135 _react2.default.createElement(_icon2.default, { size: 'large', className: prefixCls + '-upload-icon' })
136 ),
137 _react2.default.createElement(
138 'p',
139 { className: prefixCls + '-text' },
140 locale.drag.text
141 ),
142 _react2.default.createElement(
143 'p',
144 { className: prefixCls + '-hint' },
145 locale.drag.hint
146 )
147 );
148
149 return _react2.default.createElement(
150 _upload2.default,
151 (0, _extends3.default)({}, others, {
152 prefix: prefix,
153 shape: shape,
154 listType: listType,
155 dragable: true,
156 style: style,
157 onDragOver: this.onDragOver,
158 onDragLeave: this.onDragLeave,
159 onDrop: this.onDrop,
160 ref: this.saveUploaderRef
161 }),
162 children
163 );
164 };
165
166 return Dragger;
167}(_react2.default.Component), _class.propTypes = {
168 /**
169 * 样式前缀
170 */
171 prefix: _propTypes2.default.string,
172 locale: _propTypes2.default.object,
173 shape: _propTypes2.default.string,
174 onDragOver: _propTypes2.default.func,
175 onDragLeave: _propTypes2.default.func,
176 onDrop: _propTypes2.default.func,
177 limit: _propTypes2.default.number,
178 className: _propTypes2.default.string,
179 style: _propTypes2.default.object,
180 defaultValue: _propTypes2.default.array,
181 children: _propTypes2.default.node,
182 listType: _propTypes2.default.string,
183 timeout: _propTypes2.default.number
184}, _class.defaultProps = {
185 prefix: 'next-',
186 onDragOver: _util.func.noop,
187 onDragLeave: _util.func.noop,
188 onDrop: _util.func.noop,
189 locale: _zhCn2.default.Upload
190}, _temp2);
191Dragger.displayName = 'Dragger';
192exports.default = Dragger;
193module.exports = exports['default'];
\No newline at end of file