@tarojs/components-react 3.6.4 → 3.6.5-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/image/index.js +11 -21
- package/dist/components/image/index.js.map +1 -1
- package/dist/components/pull-down-refresh/index.js +23 -83
- package/dist/components/pull-down-refresh/index.js.map +1 -1
- package/dist/components/scroll-view/index.js +27 -63
- package/dist/components/scroll-view/index.js.map +1 -1
- package/dist/components/swiper/index.js +37 -78
- package/dist/components/swiper/index.js.map +1 -1
- package/dist/components/text/index.js +4 -10
- package/dist/components/text/index.js.map +1 -1
- package/dist/components/view/index.js +10 -29
- package/dist/components/view/index.js.map +1 -1
- package/dist/node_modules/.pnpm/registry.npmjs.org_tslib@1.14.1/node_modules/tslib/tslib.es6.js +1 -5
- package/dist/node_modules/.pnpm/registry.npmjs.org_tslib@1.14.1/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,33 +9,26 @@ import classNames from 'classnames';
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
|
|
11
11
|
require('intersection-observer');
|
|
12
|
-
|
|
13
12
|
var Image = /*#__PURE__*/function (_React$Component) {
|
|
14
13
|
_inherits(Image, _React$Component);
|
|
15
|
-
|
|
16
14
|
var _super = _createSuper(Image);
|
|
17
|
-
|
|
18
15
|
function Image(props) {
|
|
19
16
|
var _this;
|
|
20
|
-
|
|
21
17
|
_classCallCheck(this, Image);
|
|
22
|
-
|
|
23
18
|
_this = _super.call(this, props);
|
|
24
19
|
_this.observer = {};
|
|
25
20
|
_this.imgRef = null;
|
|
26
21
|
_this.state = {
|
|
27
22
|
isLoaded: false
|
|
28
23
|
};
|
|
29
|
-
_this.imageOnLoad = _this.imageOnLoad.bind(_assertThisInitialized(_this));
|
|
30
|
-
|
|
24
|
+
_this.imageOnLoad = _this.imageOnLoad.bind(_assertThisInitialized(_this));
|
|
25
|
+
// this.observer = {}
|
|
31
26
|
return _this;
|
|
32
27
|
}
|
|
33
|
-
|
|
34
28
|
_createClass(Image, [{
|
|
35
29
|
key: "componentDidMount",
|
|
36
30
|
value: function componentDidMount() {
|
|
37
31
|
var _this2 = this;
|
|
38
|
-
|
|
39
32
|
if (this.props.lazyLoad) {
|
|
40
33
|
this.observer = new IntersectionObserver(function (entries) {
|
|
41
34
|
// 异步 api 关系
|
|
@@ -76,18 +69,16 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
76
69
|
key: "render",
|
|
77
70
|
value: function render() {
|
|
78
71
|
var _this3 = this;
|
|
79
|
-
|
|
80
72
|
var _a = this.props,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
73
|
+
className = _a.className,
|
|
74
|
+
_a$style = _a.style,
|
|
75
|
+
style = _a$style === void 0 ? {} : _a$style,
|
|
76
|
+
src = _a.src,
|
|
77
|
+
mode = _a.mode,
|
|
78
|
+
onError = _a.onError,
|
|
79
|
+
lazyLoad = _a.lazyLoad,
|
|
80
|
+
imgProps = _a.imgProps,
|
|
81
|
+
reset = __rest(_a, ["className", "style", "src", "mode", "onError", "lazyLoad", "imgProps"]);
|
|
91
82
|
var cls = classNames('taro-img', {
|
|
92
83
|
'taro-img__widthfix': mode === 'widthFix'
|
|
93
84
|
}, className);
|
|
@@ -114,7 +105,6 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
114
105
|
}, imgProps)));
|
|
115
106
|
}
|
|
116
107
|
}]);
|
|
117
|
-
|
|
118
108
|
return Image;
|
|
119
109
|
}(React.Component);
|
|
120
110
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/image/index.tsx"],"sourcesContent":["import 'weui'\nimport './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nrequire('intersection-observer')\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n src: string\n mode: string\n onError: () => void\n onLoad: (e) => void\n lazyLoad?: boolean\n imgProps?: Record<string, any>\n}\n\nclass Image extends React.Component<IProps> {\n constructor (props) {\n super(props)\n this.state = {\n isLoaded: false\n }\n this.imageOnLoad = this.imageOnLoad.bind(this)\n // this.observer = {}\n }\n\n observer: any = {}\n imgRef: any = null\n\n componentDidMount () {\n if (this.props.lazyLoad) {\n this.observer = new IntersectionObserver(\n entries => {\n // 异步 api 关系\n if (entries[entries.length - 1].isIntersecting) {\n this.setState({ isLoaded: true }, () => {\n // findDOMNode(this).children[0].src = this.props.src\n this.imgRef.src = this.props.src\n })\n }\n },\n {\n rootMargin: '300px 0px'\n }\n )\n this.observer.observe(this.imgRef)\n }\n }\n\n componentWillUnmount () {\n this.observer.disconnect && this.observer.disconnect()\n }\n\n imageOnLoad (e) {\n const { onLoad } = this.props\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n width: e.target.width,\n height: e.target.height\n }\n })\n\n onLoad && onLoad(e)\n }\n\n render () {\n const {\n className,\n style = {},\n src,\n mode,\n onError,\n lazyLoad,\n imgProps,\n ...reset\n } = this.props\n const cls = classNames(\n 'taro-img',\n {\n 'taro-img__widthfix': mode === 'widthFix'\n },\n className\n )\n const imgCls = classNames(\n 'taro-img__mode-' +\n (mode || 'scaleToFill').toLowerCase().replace(/\\s/g, '')\n )\n\n return (\n <div className={cls} style={style} {...reset}>\n {lazyLoad ? (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n data-src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n ) : (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n )}\n </div>\n )\n }\n}\n\nexport default Image\n"],"names":["require","Image","props","observer","imgRef","state","isLoaded","imageOnLoad","bind","lazyLoad","IntersectionObserver","entries","length","isIntersecting","setState","src","rootMargin","observe","disconnect","e","onLoad","Object","defineProperty","enumerable","writable","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/image/index.tsx"],"sourcesContent":["import 'weui'\nimport './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nrequire('intersection-observer')\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n src: string\n mode: string\n onError: () => void\n onLoad: (e) => void\n lazyLoad?: boolean\n imgProps?: Record<string, any>\n}\n\nclass Image extends React.Component<IProps> {\n constructor (props) {\n super(props)\n this.state = {\n isLoaded: false\n }\n this.imageOnLoad = this.imageOnLoad.bind(this)\n // this.observer = {}\n }\n\n observer: any = {}\n imgRef: any = null\n\n componentDidMount () {\n if (this.props.lazyLoad) {\n this.observer = new IntersectionObserver(\n entries => {\n // 异步 api 关系\n if (entries[entries.length - 1].isIntersecting) {\n this.setState({ isLoaded: true }, () => {\n // findDOMNode(this).children[0].src = this.props.src\n this.imgRef.src = this.props.src\n })\n }\n },\n {\n rootMargin: '300px 0px'\n }\n )\n this.observer.observe(this.imgRef)\n }\n }\n\n componentWillUnmount () {\n this.observer.disconnect && this.observer.disconnect()\n }\n\n imageOnLoad (e) {\n const { onLoad } = this.props\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n width: e.target.width,\n height: e.target.height\n }\n })\n\n onLoad && onLoad(e)\n }\n\n render () {\n const {\n className,\n style = {},\n src,\n mode,\n onError,\n lazyLoad,\n imgProps,\n ...reset\n } = this.props\n const cls = classNames(\n 'taro-img',\n {\n 'taro-img__widthfix': mode === 'widthFix'\n },\n className\n )\n const imgCls = classNames(\n 'taro-img__mode-' +\n (mode || 'scaleToFill').toLowerCase().replace(/\\s/g, '')\n )\n\n return (\n <div className={cls} style={style} {...reset}>\n {lazyLoad ? (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n data-src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n ) : (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n )}\n </div>\n )\n }\n}\n\nexport default Image\n"],"names":["require","Image","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","observer","imgRef","state","isLoaded","imageOnLoad","bind","_assertThisInitialized","_createClass","key","value","componentDidMount","_this2","lazyLoad","IntersectionObserver","entries","length","isIntersecting","setState","src","rootMargin","observe","componentWillUnmount","disconnect","e","onLoad","Object","defineProperty","enumerable","writable","width","target","height","render","_this3","_a","className","_a$style","style","mode","onError","imgProps","reset","__rest","cls","classNames","imgCls","toLowerCase","replace","React","createElement","assign","ref","img","Component"],"mappings":"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"}
|
|
@@ -14,28 +14,22 @@ function setTransform(nodeStyle, value) {
|
|
|
14
14
|
nodeStyle.webkitTransform = value;
|
|
15
15
|
nodeStyle.MozTransform = value;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
17
|
var isWebView = typeof navigator !== 'undefined' && /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
|
|
19
18
|
var PullDownState;
|
|
20
|
-
|
|
21
19
|
(function (PullDownState) {
|
|
22
20
|
PullDownState["activate"] = "activate";
|
|
23
21
|
PullDownState["deactivate"] = "deactivate";
|
|
24
22
|
PullDownState["release"] = "release";
|
|
25
23
|
PullDownState["finish"] = "finish";
|
|
26
24
|
})(PullDownState || (PullDownState = {}));
|
|
27
|
-
|
|
28
25
|
var INDICATOR;
|
|
29
|
-
|
|
30
26
|
(function (INDICATOR) {
|
|
31
27
|
INDICATOR["activate"] = "release";
|
|
32
28
|
INDICATOR["deactivate"] = "pull";
|
|
33
29
|
INDICATOR["release"] = "loading";
|
|
34
30
|
INDICATOR["finish"] = "finish";
|
|
35
31
|
})(INDICATOR || (INDICATOR = {}));
|
|
36
|
-
|
|
37
32
|
var supportsPassive = false;
|
|
38
|
-
|
|
39
33
|
try {
|
|
40
34
|
var opts = Object.defineProperty({}, 'passive', {
|
|
41
35
|
get: function get() {
|
|
@@ -46,25 +40,18 @@ try {
|
|
|
46
40
|
return {};
|
|
47
41
|
}, opts);
|
|
48
42
|
} catch (e) {} // eslint-disable-line no-empty
|
|
49
|
-
|
|
50
|
-
|
|
51
43
|
var willPreventDefault = supportsPassive ? {
|
|
52
44
|
passive: false
|
|
53
45
|
} : false;
|
|
54
|
-
|
|
55
46
|
var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
56
47
|
_inherits(PullDownRefresh, _React$Component);
|
|
57
|
-
|
|
58
48
|
var _super = _createSuper(PullDownRefresh);
|
|
59
|
-
|
|
60
49
|
function PullDownRefresh() {
|
|
61
50
|
var _this;
|
|
62
|
-
|
|
63
51
|
_classCallCheck(this, PullDownRefresh);
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
_this = _super.apply(this, arguments);
|
|
53
|
+
// https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355
|
|
66
54
|
// currSt: `activate` / `deactivate` / `release` / `finish`
|
|
67
|
-
|
|
68
55
|
_this.state = {
|
|
69
56
|
currSt: PullDownState.deactivate,
|
|
70
57
|
dragOnEdge: false
|
|
@@ -74,14 +61,13 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
74
61
|
_this._lastScreenY = 0;
|
|
75
62
|
_this._isMounted = false;
|
|
76
63
|
_this.listeners = [];
|
|
77
|
-
|
|
78
64
|
_this.triggerPullDownRefresh = function (flag) {
|
|
79
65
|
// 在初始化时、用代码 自动 触发 pullDownRefresh
|
|
80
66
|
// 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish
|
|
81
67
|
if (!_this.state.dragOnEdge && _this._isMounted) {
|
|
82
68
|
if (flag) {
|
|
83
|
-
_this._lastScreenY = _this.props.distanceToRefresh + 1;
|
|
84
|
-
|
|
69
|
+
_this._lastScreenY = _this.props.distanceToRefresh + 1;
|
|
70
|
+
// change dom need after setState
|
|
85
71
|
_this.setState({
|
|
86
72
|
currSt: PullDownState.release
|
|
87
73
|
}, function () {
|
|
@@ -96,7 +82,6 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
96
82
|
}
|
|
97
83
|
}
|
|
98
84
|
};
|
|
99
|
-
|
|
100
85
|
_this.init = function () {
|
|
101
86
|
var ele = _this.scrollContainer;
|
|
102
87
|
_this._to = {
|
|
@@ -109,75 +94,60 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
109
94
|
ele.addEventListener(key, _this._to[key], willPreventDefault);
|
|
110
95
|
});
|
|
111
96
|
};
|
|
112
|
-
|
|
113
97
|
_this.destroy = function () {
|
|
114
98
|
var ele = _this.scrollContainer;
|
|
115
99
|
Object.keys(_this._to).forEach(function (key) {
|
|
116
100
|
ele.removeEventListener(key, _this._to[key]);
|
|
117
101
|
});
|
|
118
102
|
};
|
|
119
|
-
|
|
120
103
|
_this.onTouchStart = function (_, e) {
|
|
121
|
-
_this._ScreenY = _this._startScreenY = e.touches[0].screenY;
|
|
122
|
-
|
|
104
|
+
_this._ScreenY = _this._startScreenY = e.touches[0].screenY;
|
|
105
|
+
// 一开始 refreshing 为 true 时 this._lastScreenY 有值
|
|
123
106
|
_this._lastScreenY = _this._lastScreenY || 0;
|
|
124
107
|
};
|
|
125
|
-
|
|
126
108
|
_this.isEdge = function (ele) {
|
|
127
109
|
var container = _this.scrollContainer;
|
|
128
|
-
|
|
129
110
|
if (container && container === document.body) {
|
|
130
111
|
// In chrome61 `document.body.scrollTop` is invalid
|
|
131
112
|
var scrollNode = document.scrollingElement ? document.scrollingElement : document.body;
|
|
132
113
|
return scrollNode.scrollTop <= 0;
|
|
133
114
|
}
|
|
134
|
-
|
|
135
115
|
return ele.scrollTop <= 0;
|
|
136
116
|
};
|
|
137
|
-
|
|
138
117
|
_this.damping = function (dy) {
|
|
139
118
|
if (Math.abs(_this._lastScreenY) > _this.props.damping) {
|
|
140
119
|
return 0;
|
|
141
120
|
}
|
|
142
|
-
|
|
143
121
|
var ratio = Math.abs(_this._ScreenY - _this._startScreenY) / window.screen.height;
|
|
144
122
|
dy *= (1 - ratio) * 0.6;
|
|
145
123
|
return dy;
|
|
146
124
|
};
|
|
147
|
-
|
|
148
125
|
_this.onTouchMove = function (ele, e) {
|
|
149
126
|
// 使用 pageY 对比有问题
|
|
150
|
-
var _screenY = e.touches[0].screenY;
|
|
151
|
-
|
|
127
|
+
var _screenY = e.touches[0].screenY;
|
|
128
|
+
// 拖动方向不符合的不处理
|
|
152
129
|
if (_this._startScreenY > _screenY) {
|
|
153
130
|
return;
|
|
154
131
|
}
|
|
155
|
-
|
|
156
132
|
if (_this.isEdge(ele)) {
|
|
157
133
|
if (!_this.state.dragOnEdge) {
|
|
158
134
|
// 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义
|
|
159
135
|
// 下面这行代码解决了上面这个问题
|
|
160
136
|
_this._ScreenY = _this._startScreenY = e.touches[0].screenY;
|
|
161
|
-
|
|
162
137
|
_this.setState({
|
|
163
138
|
dragOnEdge: true
|
|
164
139
|
});
|
|
165
140
|
}
|
|
166
|
-
|
|
167
141
|
if (e.cancelable) {
|
|
168
142
|
e.preventDefault();
|
|
169
|
-
}
|
|
143
|
+
}
|
|
144
|
+
// add stopPropagation with fastclick will trigger content onClick event. why?
|
|
170
145
|
// ref https://github.com/ant-design/ant-design-mobile/issues/2141
|
|
171
146
|
// e.stopPropagation();
|
|
172
|
-
|
|
173
|
-
|
|
174
147
|
var _diff = Math.round(_screenY - _this._ScreenY);
|
|
175
|
-
|
|
176
148
|
_this._ScreenY = _screenY;
|
|
177
149
|
_this._lastScreenY += _this.damping(_diff);
|
|
178
|
-
|
|
179
150
|
_this.setContentStyle(_this._lastScreenY);
|
|
180
|
-
|
|
181
151
|
if (Math.abs(_this._lastScreenY) < _this.props.distanceToRefresh) {
|
|
182
152
|
if (_this.state.currSt !== PullDownState.deactivate) {
|
|
183
153
|
// console.log('back to the distance');
|
|
@@ -192,49 +162,39 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
192
162
|
currSt: PullDownState.activate
|
|
193
163
|
});
|
|
194
164
|
}
|
|
195
|
-
}
|
|
165
|
+
}
|
|
166
|
+
// https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829
|
|
196
167
|
// iOS UIWebView issue, It seems no problem in WKWebView
|
|
197
|
-
|
|
198
|
-
|
|
199
168
|
if (isWebView && e.changedTouches[0].clientY < 0) {
|
|
200
169
|
_this.onTouchEnd();
|
|
201
170
|
}
|
|
202
171
|
}
|
|
203
172
|
};
|
|
204
|
-
|
|
205
173
|
_this.onTouchEnd = function () {
|
|
206
174
|
var _a, _b;
|
|
207
|
-
|
|
208
175
|
if (_this.state.dragOnEdge) {
|
|
209
176
|
_this.setState({
|
|
210
177
|
dragOnEdge: false
|
|
211
178
|
});
|
|
212
179
|
}
|
|
213
|
-
|
|
214
180
|
if (_this.state.currSt === PullDownState.activate) {
|
|
215
181
|
_this.setState({
|
|
216
182
|
currSt: PullDownState.release
|
|
217
183
|
});
|
|
218
|
-
|
|
219
184
|
(_b = (_a = _this.props).onRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
220
185
|
_this._lastScreenY = _this.props.distanceToRefresh + 1;
|
|
221
|
-
|
|
222
186
|
_this.setContentStyle(_this._lastScreenY);
|
|
223
187
|
} else if (_this.state.currSt === 'release') {
|
|
224
188
|
_this._lastScreenY = _this.props.distanceToRefresh + 1;
|
|
225
|
-
|
|
226
189
|
_this.setContentStyle(_this._lastScreenY);
|
|
227
190
|
} else {
|
|
228
191
|
_this.reset();
|
|
229
192
|
}
|
|
230
193
|
};
|
|
231
|
-
|
|
232
194
|
_this.reset = function () {
|
|
233
195
|
_this._lastScreenY = 0;
|
|
234
|
-
|
|
235
196
|
_this.setContentStyle(0);
|
|
236
197
|
};
|
|
237
|
-
|
|
238
198
|
_this.setContentStyle = function (ty) {
|
|
239
199
|
// TODO: Why sometimes do not have `this.contentRef` ?
|
|
240
200
|
if (_this.contentRef) {
|
|
@@ -246,31 +206,25 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
246
206
|
}
|
|
247
207
|
}
|
|
248
208
|
};
|
|
249
|
-
|
|
250
209
|
return _this;
|
|
251
210
|
}
|
|
252
|
-
|
|
253
211
|
_createClass(PullDownRefresh, [{
|
|
254
212
|
key: "scrollContainer",
|
|
255
213
|
get: function get() {
|
|
256
214
|
var _a, _b;
|
|
257
|
-
|
|
258
215
|
return ((_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.parentElement) || ((_b = this.contentRef) === null || _b === void 0 ? void 0 : _b.closest('.taro_page_stationed')) || document.querySelector('.taro_page_stationed') || document.querySelector('.taro_page') || document.querySelector('.taro_router') || document.querySelector('.taro-tabbar__panel') || document.body;
|
|
259
216
|
}
|
|
260
217
|
}, {
|
|
261
218
|
key: "componentDidMount",
|
|
262
219
|
value: function componentDidMount() {
|
|
263
220
|
var _this2 = this;
|
|
264
|
-
|
|
265
221
|
this.init();
|
|
266
222
|
this._isMounted = true;
|
|
267
223
|
this.listeners = [['__taroStartPullDownRefresh', function (_ref) {
|
|
268
224
|
var successHandler = _ref.successHandler,
|
|
269
|
-
|
|
270
|
-
|
|
225
|
+
errorHandler = _ref.errorHandler;
|
|
271
226
|
try {
|
|
272
227
|
_this2.triggerPullDownRefresh(true);
|
|
273
|
-
|
|
274
228
|
successHandler({
|
|
275
229
|
errMsg: 'startPullDownRefresh: ok'
|
|
276
230
|
});
|
|
@@ -281,11 +235,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
281
235
|
}
|
|
282
236
|
}], ['__taroStopPullDownRefresh', function (_ref2) {
|
|
283
237
|
var successHandler = _ref2.successHandler,
|
|
284
|
-
|
|
285
|
-
|
|
238
|
+
errorHandler = _ref2.errorHandler;
|
|
286
239
|
try {
|
|
287
240
|
_this2.triggerPullDownRefresh(false);
|
|
288
|
-
|
|
289
241
|
successHandler({
|
|
290
242
|
errMsg: 'stopPullDownRefresh: ok'
|
|
291
243
|
});
|
|
@@ -297,9 +249,8 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
297
249
|
}]];
|
|
298
250
|
this.listeners.forEach(function (_ref3) {
|
|
299
251
|
var _ref4 = _slicedToArray(_ref3, 2),
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
252
|
+
evtName = _ref4[0],
|
|
253
|
+
callback = _ref4[1];
|
|
303
254
|
Taro.eventCenter.on(evtName, callback);
|
|
304
255
|
});
|
|
305
256
|
}
|
|
@@ -309,9 +260,8 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
309
260
|
this.destroy();
|
|
310
261
|
this.listeners.forEach(function (_ref5) {
|
|
311
262
|
var _ref6 = _slicedToArray(_ref5, 2),
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
263
|
+
evtName = _ref6[0],
|
|
264
|
+
callback = _ref6[1];
|
|
315
265
|
Taro.eventCenter.off(evtName, callback);
|
|
316
266
|
});
|
|
317
267
|
}
|
|
@@ -319,15 +269,12 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
319
269
|
key: "componentDidUpdate",
|
|
320
270
|
value: function componentDidUpdate(_, prevState) {
|
|
321
271
|
var _a, _b, _c, _d;
|
|
322
|
-
|
|
323
272
|
if (prevState.currSt !== this.state.currSt) {
|
|
324
273
|
var pageEl = this.scrollContainer;
|
|
325
|
-
|
|
326
274
|
switch (this.state.currSt) {
|
|
327
275
|
case PullDownState.release:
|
|
328
276
|
(_b = (_a = pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) === null || _a === void 0 ? void 0 : _a.onPullDownRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
329
277
|
break;
|
|
330
|
-
|
|
331
278
|
case PullDownState.deactivate:
|
|
332
279
|
(_d = (_c = pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) === null || _c === void 0 ? void 0 : _c.onPullIntercept) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
333
280
|
}
|
|
@@ -337,22 +284,19 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
337
284
|
key: "render",
|
|
338
285
|
value: function render() {
|
|
339
286
|
var _this3 = this;
|
|
340
|
-
|
|
341
287
|
var props = Object.assign({}, this.props);
|
|
342
288
|
delete props.damping;
|
|
343
289
|
delete props.indicator;
|
|
344
290
|
delete props.distanceToRefresh;
|
|
345
291
|
delete props.onRefresh;
|
|
346
|
-
|
|
347
292
|
var className = props.className,
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
293
|
+
prefixCls = props.prefixCls,
|
|
294
|
+
children = props.children,
|
|
295
|
+
restProps = __rest(props, ["className", "prefixCls", "children"]);
|
|
352
296
|
var renderRefresh = function renderRefresh(cls) {
|
|
353
297
|
var _this3$state = _this3.state,
|
|
354
|
-
|
|
355
|
-
|
|
298
|
+
currSt = _this3$state.currSt,
|
|
299
|
+
dragOnEdge = _this3$state.dragOnEdge;
|
|
356
300
|
var cla = classNames(cls, !dragOnEdge && "".concat(prefixCls, "-transition"));
|
|
357
301
|
var showIndicator = currSt === 'activate' || currSt === 'release';
|
|
358
302
|
return React.createElement("div", {
|
|
@@ -366,11 +310,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
366
310
|
className: "".concat(prefixCls, "-indicator")
|
|
367
311
|
}, React.createElement("div", null), React.createElement("div", null), React.createElement("div", null)), children));
|
|
368
312
|
};
|
|
369
|
-
|
|
370
313
|
if (this.scrollContainer) {
|
|
371
314
|
return renderRefresh("".concat(prefixCls, "-content ").concat(prefixCls, "-down"));
|
|
372
315
|
}
|
|
373
|
-
|
|
374
316
|
return React.createElement("pull-down-refresh", Object.assign({
|
|
375
317
|
ref: function ref(el) {
|
|
376
318
|
_this3.containerRef = el;
|
|
@@ -379,10 +321,8 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
379
321
|
}, restProps), renderRefresh("".concat(prefixCls, "-content")));
|
|
380
322
|
}
|
|
381
323
|
}]);
|
|
382
|
-
|
|
383
324
|
return PullDownRefresh;
|
|
384
325
|
}(React.Component);
|
|
385
|
-
|
|
386
326
|
PullDownRefresh.defaultProps = {
|
|
387
327
|
prefixCls: 'rmc-pull-to-refresh',
|
|
388
328
|
distanceToRefresh: 50,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/pull-down-refresh/index.tsx"],"sourcesContent":["import './style/index.css'\r\n\r\nimport Taro from '@tarojs/taro'\r\nimport classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nfunction setTransform (nodeStyle, value) {\r\n nodeStyle.transform = value\r\n nodeStyle.webkitTransform = value\r\n nodeStyle.MozTransform = value\r\n}\r\n\r\nconst isWebView =\r\n typeof navigator !== 'undefined' && /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)\r\n\r\nenum PullDownState {\r\n activate = 'activate',\r\n deactivate = 'deactivate',\r\n release = 'release',\r\n finish = 'finish'\r\n}\r\n\r\nenum INDICATOR {\r\n activate = 'release',\r\n deactivate = 'pull',\r\n release = 'loading',\r\n finish = 'finish'\r\n}\r\n\r\nlet supportsPassive = false\r\ntry {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n get () {\r\n supportsPassive = true\r\n }\r\n })\r\n window.addEventListener('cancel', () => ({}), opts)\r\n} catch (e) {} // eslint-disable-line no-empty\r\n\r\nconst willPreventDefault = supportsPassive ? { passive: false } : false\r\n\r\ninterface IProps extends React.HTMLAttributes<HTMLBaseElement> {\r\n prefixCls: string\r\n distanceToRefresh: number\r\n damping: number\r\n indicator: INDICATOR\r\n onRefresh?: () => void\r\n}\r\n\r\ninterface IState {\r\n currSt: PullDownState\r\n dragOnEdge: boolean\r\n}\r\n\r\nclass PullDownRefresh extends React.Component<IProps, IState> {\r\n static defaultProps = {\r\n prefixCls: 'rmc-pull-to-refresh',\r\n distanceToRefresh: 50,\r\n damping: 100,\r\n indicator: INDICATOR\r\n }\r\n\r\n // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355\r\n // currSt: `activate` / `deactivate` / `release` / `finish`\r\n state = {\r\n currSt: PullDownState.deactivate,\r\n dragOnEdge: false\r\n }\r\n\r\n containerRef: HTMLElement | null\r\n contentRef: HTMLDivElement | null\r\n _to: Record<string, EventListener>\r\n _ScreenY = 0\r\n _startScreenY = 0\r\n _lastScreenY = 0\r\n _isMounted = false\r\n listeners: [string, (...args: any[]) => void][] = []\r\n\r\n get scrollContainer () {\r\n return (\r\n this.contentRef?.parentElement ||\r\n this.contentRef?.closest('.taro_page_stationed') ||\r\n document.querySelector('.taro_page_stationed') ||\r\n document.querySelector('.taro_page') ||\r\n document.querySelector('.taro_router') ||\r\n document.querySelector('.taro-tabbar__panel') ||\r\n document.body\r\n )\r\n }\r\n\r\n componentDidMount () {\r\n this.init()\r\n this._isMounted = true\r\n this.listeners = [\r\n [\r\n '__taroStartPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(true)\r\n successHandler({\r\n errMsg: 'startPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'startPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ],\r\n [\r\n '__taroStopPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(false)\r\n successHandler({\r\n errMsg: 'stopPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'stopPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ]\r\n ]\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.on(evtName, callback)\r\n })\r\n }\r\n\r\n componentWillUnmount () {\r\n this.destroy()\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.off(evtName, callback)\r\n })\r\n }\r\n\r\n componentDidUpdate (_, prevState: IState) {\r\n if (prevState.currSt !== this.state.currSt) {\r\n const pageEl: any = this.scrollContainer\r\n switch (this.state.currSt) {\r\n case PullDownState.release:\r\n pageEl?.__page?.onPullDownRefresh?.()\r\n break\r\n case PullDownState.deactivate:\r\n pageEl?.__page?.onPullIntercept?.()\r\n }\r\n }\r\n }\r\n\r\n triggerPullDownRefresh = (flag: boolean) => {\r\n // 在初始化时、用代码 自动 触发 pullDownRefresh\r\n // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish\r\n if (!this.state.dragOnEdge && this._isMounted) {\r\n if (flag) {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n // change dom need after setState\r\n this.setState({ currSt: PullDownState.release }, () => this.setContentStyle(this._lastScreenY))\r\n } else {\r\n this.setState({ currSt: PullDownState.finish }, () => this.reset())\r\n }\r\n }\r\n }\r\n\r\n init = () => {\r\n const ele = this.scrollContainer\r\n this._to = {\r\n touchstart: this.onTouchStart.bind(this, ele),\r\n touchmove: this.onTouchMove.bind(this, ele),\r\n touchend: this.onTouchEnd.bind(this, ele),\r\n touchcancel: this.onTouchEnd.bind(this, ele)\r\n }\r\n Object.keys(this._to).forEach(key => {\r\n ele.addEventListener(key, this._to[key], willPreventDefault)\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const ele = this.scrollContainer\r\n Object.keys(this._to).forEach(key => {\r\n ele.removeEventListener(key, this._to[key])\r\n })\r\n }\r\n\r\n onTouchStart = (_, e: TouchEvent) => {\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n // 一开始 refreshing 为 true 时 this._lastScreenY 有值\r\n this._lastScreenY = this._lastScreenY || 0\r\n }\r\n\r\n isEdge = (ele: HTMLElement) => {\r\n const container = this.scrollContainer\r\n if (container && container === document.body) {\r\n // In chrome61 `document.body.scrollTop` is invalid\r\n const scrollNode = document.scrollingElement ? document.scrollingElement : document.body\r\n return scrollNode.scrollTop <= 0\r\n }\r\n return ele.scrollTop <= 0\r\n }\r\n\r\n damping = (dy: number) => {\r\n if (Math.abs(this._lastScreenY) > this.props.damping) {\r\n return 0\r\n }\r\n\r\n const ratio = Math.abs(this._ScreenY - this._startScreenY) / window.screen.height\r\n dy *= (1 - ratio) * 0.6\r\n\r\n return dy\r\n }\r\n\r\n onTouchMove = (ele: HTMLElement, e: TouchEvent) => {\r\n // 使用 pageY 对比有问题\r\n const _screenY = e.touches[0].screenY\r\n\r\n // 拖动方向不符合的不处理\r\n if (this._startScreenY > _screenY) {\r\n return\r\n }\r\n\r\n if (this.isEdge(ele)) {\r\n if (!this.state.dragOnEdge) {\r\n // 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义\r\n // 下面这行代码解决了上面这个问题\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n this.setState({ dragOnEdge: true })\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault()\r\n }\r\n // add stopPropagation with fastclick will trigger content onClick event. why?\r\n // ref https://github.com/ant-design/ant-design-mobile/issues/2141\r\n // e.stopPropagation();\r\n\r\n const _diff = Math.round(_screenY - this._ScreenY)\r\n this._ScreenY = _screenY\r\n this._lastScreenY += this.damping(_diff)\r\n\r\n this.setContentStyle(this._lastScreenY)\r\n\r\n if (Math.abs(this._lastScreenY) < this.props.distanceToRefresh) {\r\n if (this.state.currSt !== PullDownState.deactivate) {\r\n // console.log('back to the distance');\r\n this.setState({ currSt: PullDownState.deactivate })\r\n }\r\n } else {\r\n if (this.state.currSt === PullDownState.deactivate) {\r\n // console.log('reach to the distance');\r\n this.setState({ currSt: PullDownState.activate })\r\n }\r\n }\r\n\r\n // https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829\r\n // iOS UIWebView issue, It seems no problem in WKWebView\r\n if (isWebView && e.changedTouches[0].clientY < 0) {\r\n this.onTouchEnd()\r\n }\r\n }\r\n }\r\n\r\n onTouchEnd = () => {\r\n if (this.state.dragOnEdge) {\r\n this.setState({ dragOnEdge: false })\r\n }\r\n if (this.state.currSt === PullDownState.activate) {\r\n this.setState({ currSt: PullDownState.release })\r\n this.props.onRefresh?.()\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else if (this.state.currSt === 'release') {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else {\r\n this.reset()\r\n }\r\n }\r\n\r\n reset = () => {\r\n this._lastScreenY = 0\r\n this.setContentStyle(0)\r\n }\r\n\r\n setContentStyle = ty => {\r\n // TODO: Why sometimes do not have `this.contentRef` ?\r\n if (this.contentRef) {\r\n // translate3d 不清理 会影响内部元素定位\r\n if (ty) {\r\n setTransform(this.contentRef.style, `translate3d(0px,${ty}px,0)`)\r\n } else {\r\n setTransform(this.contentRef.style, '')\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const props: Partial<IProps> & {\r\n children?: React.ReactNode\r\n } = { ...this.props }\r\n delete props.damping\r\n delete props.indicator\r\n delete props.distanceToRefresh\r\n delete props.onRefresh\r\n\r\n const { className, prefixCls, children, ...restProps } = props\r\n\r\n const renderRefresh = (cls: string) => {\r\n const { currSt, dragOnEdge } = this.state\r\n const cla = classNames(cls, !dragOnEdge && `${prefixCls}-transition`)\r\n const showIndicator = currSt === 'activate' || currSt === 'release'\r\n return (\r\n <div className={`${prefixCls}-content-wrapper`}>\r\n <div\r\n className={cla}\r\n ref={el => {\r\n this.contentRef = el\r\n }}\r\n >\r\n {showIndicator && (\r\n <div className={`${prefixCls}-indicator`}>\r\n <div />\r\n <div />\r\n <div />\r\n </div>\r\n )}\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n if (this.scrollContainer) {\r\n return renderRefresh(`${prefixCls}-content ${prefixCls}-down`)\r\n }\r\n return (\r\n <pull-down-refresh\r\n ref={el => {\r\n this.containerRef = el\r\n }}\r\n className={classNames(className, prefixCls, `${prefixCls}-down`)}\r\n {...restProps}\r\n >\r\n {renderRefresh(`${prefixCls}-content`)}\r\n </pull-down-refresh>\r\n )\r\n }\r\n}\r\n\r\nexport default PullDownRefresh\r\n"],"names":["setTransform","nodeStyle","value","transform","webkitTransform","MozTransform","isWebView","navigator","test","userAgent","PullDownState","INDICATOR","supportsPassive","opts","Object","defineProperty","get","window","addEventListener","e","willPreventDefault","passive","PullDownRefresh","state","currSt","deactivate","dragOnEdge","_ScreenY","_startScreenY","_lastScreenY","_isMounted","listeners","triggerPullDownRefresh","flag","props","distanceToRefresh","setState","release","setContentStyle","finish","reset","init","ele","scrollContainer","_to","touchstart","onTouchStart","bind","touchmove","onTouchMove","touchend","onTouchEnd","touchcancel","keys","forEach","key","destroy","removeEventListener","_","touches","screenY","isEdge","container","document","body","scrollNode","scrollingElement","scrollTop","damping","dy","Math","abs","ratio","screen","height","_screenY","cancelable","preventDefault","_diff","round","activate","changedTouches","clientY","_b","onRefresh","ty","contentRef","style","_a","parentElement","closest","querySelector","successHandler","errorHandler","errMsg","evtName","callback","Taro","eventCenter","on","off","prevState","pageEl","__page","onPullDownRefresh","call","_d","_c","onPullIntercept","assign","indicator","className","prefixCls","children","restProps","__rest","renderRefresh","cls","cla","classNames","showIndicator","React","createElement","ref","el","containerRef","Component","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/pull-down-refresh/index.tsx"],"sourcesContent":["import './style/index.css'\r\n\r\nimport Taro from '@tarojs/taro'\r\nimport classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nfunction setTransform (nodeStyle, value) {\r\n nodeStyle.transform = value\r\n nodeStyle.webkitTransform = value\r\n nodeStyle.MozTransform = value\r\n}\r\n\r\nconst isWebView =\r\n typeof navigator !== 'undefined' && /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)\r\n\r\nenum PullDownState {\r\n activate = 'activate',\r\n deactivate = 'deactivate',\r\n release = 'release',\r\n finish = 'finish'\r\n}\r\n\r\nenum INDICATOR {\r\n activate = 'release',\r\n deactivate = 'pull',\r\n release = 'loading',\r\n finish = 'finish'\r\n}\r\n\r\nlet supportsPassive = false\r\ntry {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n get () {\r\n supportsPassive = true\r\n }\r\n })\r\n window.addEventListener('cancel', () => ({}), opts)\r\n} catch (e) {} // eslint-disable-line no-empty\r\n\r\nconst willPreventDefault = supportsPassive ? { passive: false } : false\r\n\r\ninterface IProps extends React.HTMLAttributes<HTMLBaseElement> {\r\n prefixCls: string\r\n distanceToRefresh: number\r\n damping: number\r\n indicator: INDICATOR\r\n onRefresh?: () => void\r\n}\r\n\r\ninterface IState {\r\n currSt: PullDownState\r\n dragOnEdge: boolean\r\n}\r\n\r\nclass PullDownRefresh extends React.Component<IProps, IState> {\r\n static defaultProps = {\r\n prefixCls: 'rmc-pull-to-refresh',\r\n distanceToRefresh: 50,\r\n damping: 100,\r\n indicator: INDICATOR\r\n }\r\n\r\n // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355\r\n // currSt: `activate` / `deactivate` / `release` / `finish`\r\n state = {\r\n currSt: PullDownState.deactivate,\r\n dragOnEdge: false\r\n }\r\n\r\n containerRef: HTMLElement | null\r\n contentRef: HTMLDivElement | null\r\n _to: Record<string, EventListener>\r\n _ScreenY = 0\r\n _startScreenY = 0\r\n _lastScreenY = 0\r\n _isMounted = false\r\n listeners: [string, (...args: any[]) => void][] = []\r\n\r\n get scrollContainer () {\r\n return (\r\n this.contentRef?.parentElement ||\r\n this.contentRef?.closest('.taro_page_stationed') ||\r\n document.querySelector('.taro_page_stationed') ||\r\n document.querySelector('.taro_page') ||\r\n document.querySelector('.taro_router') ||\r\n document.querySelector('.taro-tabbar__panel') ||\r\n document.body\r\n )\r\n }\r\n\r\n componentDidMount () {\r\n this.init()\r\n this._isMounted = true\r\n this.listeners = [\r\n [\r\n '__taroStartPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(true)\r\n successHandler({\r\n errMsg: 'startPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'startPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ],\r\n [\r\n '__taroStopPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(false)\r\n successHandler({\r\n errMsg: 'stopPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'stopPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ]\r\n ]\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.on(evtName, callback)\r\n })\r\n }\r\n\r\n componentWillUnmount () {\r\n this.destroy()\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.off(evtName, callback)\r\n })\r\n }\r\n\r\n componentDidUpdate (_, prevState: IState) {\r\n if (prevState.currSt !== this.state.currSt) {\r\n const pageEl: any = this.scrollContainer\r\n switch (this.state.currSt) {\r\n case PullDownState.release:\r\n pageEl?.__page?.onPullDownRefresh?.()\r\n break\r\n case PullDownState.deactivate:\r\n pageEl?.__page?.onPullIntercept?.()\r\n }\r\n }\r\n }\r\n\r\n triggerPullDownRefresh = (flag: boolean) => {\r\n // 在初始化时、用代码 自动 触发 pullDownRefresh\r\n // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish\r\n if (!this.state.dragOnEdge && this._isMounted) {\r\n if (flag) {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n // change dom need after setState\r\n this.setState({ currSt: PullDownState.release }, () => this.setContentStyle(this._lastScreenY))\r\n } else {\r\n this.setState({ currSt: PullDownState.finish }, () => this.reset())\r\n }\r\n }\r\n }\r\n\r\n init = () => {\r\n const ele = this.scrollContainer\r\n this._to = {\r\n touchstart: this.onTouchStart.bind(this, ele),\r\n touchmove: this.onTouchMove.bind(this, ele),\r\n touchend: this.onTouchEnd.bind(this, ele),\r\n touchcancel: this.onTouchEnd.bind(this, ele)\r\n }\r\n Object.keys(this._to).forEach(key => {\r\n ele.addEventListener(key, this._to[key], willPreventDefault)\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const ele = this.scrollContainer\r\n Object.keys(this._to).forEach(key => {\r\n ele.removeEventListener(key, this._to[key])\r\n })\r\n }\r\n\r\n onTouchStart = (_, e: TouchEvent) => {\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n // 一开始 refreshing 为 true 时 this._lastScreenY 有值\r\n this._lastScreenY = this._lastScreenY || 0\r\n }\r\n\r\n isEdge = (ele: HTMLElement) => {\r\n const container = this.scrollContainer\r\n if (container && container === document.body) {\r\n // In chrome61 `document.body.scrollTop` is invalid\r\n const scrollNode = document.scrollingElement ? document.scrollingElement : document.body\r\n return scrollNode.scrollTop <= 0\r\n }\r\n return ele.scrollTop <= 0\r\n }\r\n\r\n damping = (dy: number) => {\r\n if (Math.abs(this._lastScreenY) > this.props.damping) {\r\n return 0\r\n }\r\n\r\n const ratio = Math.abs(this._ScreenY - this._startScreenY) / window.screen.height\r\n dy *= (1 - ratio) * 0.6\r\n\r\n return dy\r\n }\r\n\r\n onTouchMove = (ele: HTMLElement, e: TouchEvent) => {\r\n // 使用 pageY 对比有问题\r\n const _screenY = e.touches[0].screenY\r\n\r\n // 拖动方向不符合的不处理\r\n if (this._startScreenY > _screenY) {\r\n return\r\n }\r\n\r\n if (this.isEdge(ele)) {\r\n if (!this.state.dragOnEdge) {\r\n // 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义\r\n // 下面这行代码解决了上面这个问题\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n this.setState({ dragOnEdge: true })\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault()\r\n }\r\n // add stopPropagation with fastclick will trigger content onClick event. why?\r\n // ref https://github.com/ant-design/ant-design-mobile/issues/2141\r\n // e.stopPropagation();\r\n\r\n const _diff = Math.round(_screenY - this._ScreenY)\r\n this._ScreenY = _screenY\r\n this._lastScreenY += this.damping(_diff)\r\n\r\n this.setContentStyle(this._lastScreenY)\r\n\r\n if (Math.abs(this._lastScreenY) < this.props.distanceToRefresh) {\r\n if (this.state.currSt !== PullDownState.deactivate) {\r\n // console.log('back to the distance');\r\n this.setState({ currSt: PullDownState.deactivate })\r\n }\r\n } else {\r\n if (this.state.currSt === PullDownState.deactivate) {\r\n // console.log('reach to the distance');\r\n this.setState({ currSt: PullDownState.activate })\r\n }\r\n }\r\n\r\n // https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829\r\n // iOS UIWebView issue, It seems no problem in WKWebView\r\n if (isWebView && e.changedTouches[0].clientY < 0) {\r\n this.onTouchEnd()\r\n }\r\n }\r\n }\r\n\r\n onTouchEnd = () => {\r\n if (this.state.dragOnEdge) {\r\n this.setState({ dragOnEdge: false })\r\n }\r\n if (this.state.currSt === PullDownState.activate) {\r\n this.setState({ currSt: PullDownState.release })\r\n this.props.onRefresh?.()\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else if (this.state.currSt === 'release') {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else {\r\n this.reset()\r\n }\r\n }\r\n\r\n reset = () => {\r\n this._lastScreenY = 0\r\n this.setContentStyle(0)\r\n }\r\n\r\n setContentStyle = ty => {\r\n // TODO: Why sometimes do not have `this.contentRef` ?\r\n if (this.contentRef) {\r\n // translate3d 不清理 会影响内部元素定位\r\n if (ty) {\r\n setTransform(this.contentRef.style, `translate3d(0px,${ty}px,0)`)\r\n } else {\r\n setTransform(this.contentRef.style, '')\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const props: Partial<IProps> & {\r\n children?: React.ReactNode\r\n } = { ...this.props }\r\n delete props.damping\r\n delete props.indicator\r\n delete props.distanceToRefresh\r\n delete props.onRefresh\r\n\r\n const { className, prefixCls, children, ...restProps } = props\r\n\r\n const renderRefresh = (cls: string) => {\r\n const { currSt, dragOnEdge } = this.state\r\n const cla = classNames(cls, !dragOnEdge && `${prefixCls}-transition`)\r\n const showIndicator = currSt === 'activate' || currSt === 'release'\r\n return (\r\n <div className={`${prefixCls}-content-wrapper`}>\r\n <div\r\n className={cla}\r\n ref={el => {\r\n this.contentRef = el\r\n }}\r\n >\r\n {showIndicator && (\r\n <div className={`${prefixCls}-indicator`}>\r\n <div />\r\n <div />\r\n <div />\r\n </div>\r\n )}\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n if (this.scrollContainer) {\r\n return renderRefresh(`${prefixCls}-content ${prefixCls}-down`)\r\n }\r\n return (\r\n <pull-down-refresh\r\n ref={el => {\r\n this.containerRef = el\r\n }}\r\n className={classNames(className, prefixCls, `${prefixCls}-down`)}\r\n {...restProps}\r\n >\r\n {renderRefresh(`${prefixCls}-content`)}\r\n </pull-down-refresh>\r\n )\r\n }\r\n}\r\n\r\nexport default PullDownRefresh\r\n"],"names":["setTransform","nodeStyle","value","transform","webkitTransform","MozTransform","isWebView","navigator","test","userAgent","PullDownState","INDICATOR","supportsPassive","opts","Object","defineProperty","get","window","addEventListener","e","willPreventDefault","passive","PullDownRefresh","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","state","currSt","deactivate","dragOnEdge","_ScreenY","_startScreenY","_lastScreenY","_isMounted","listeners","triggerPullDownRefresh","flag","props","distanceToRefresh","setState","release","setContentStyle","finish","reset","init","ele","scrollContainer","_to","touchstart","onTouchStart","bind","_assertThisInitialized","touchmove","onTouchMove","touchend","onTouchEnd","touchcancel","keys","forEach","key","destroy","removeEventListener","_","touches","screenY","isEdge","container","document","body","scrollNode","scrollingElement","scrollTop","damping","dy","Math","abs","ratio","screen","height","_screenY","cancelable","preventDefault","_diff","round","activate","changedTouches","clientY","_b","onRefresh","ty","contentRef","style","concat","_createClass","_a","parentElement","closest","querySelector","componentDidMount","_this2","_ref","successHandler","errorHandler","errMsg","_ref2","_ref3","_ref4","_slicedToArray","evtName","callback","Taro","eventCenter","on","componentWillUnmount","_ref5","_ref6","off","componentDidUpdate","prevState","pageEl","__page","onPullDownRefresh","call","_d","_c","onPullIntercept","render","_this3","assign","indicator","className","prefixCls","children","restProps","__rest","renderRefresh","cls","_this3$state","cla","classNames","showIndicator","React","createElement","ref","el","containerRef","Component","defaultProps"],"mappings":"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"}
|