@tarojs/components-react 3.5.0-canary.1 → 3.5.0-theta.0
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/image/index.js +17 -24
- package/dist/image/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index2.js +44 -0
- package/dist/index2.js.map +1 -0
- package/dist/pull-down-refresh/index.js +48 -69
- package/dist/pull-down-refresh/index.js.map +1 -1
- package/dist/scroll-view/index.js +13 -35
- package/dist/scroll-view/index.js.map +1 -1
- package/dist/swiper/index.js +62 -91
- package/dist/swiper/index.js.map +1 -1
- package/dist/text/index.js +8 -11
- package/dist/text/index.js.map +1 -1
- package/dist/tslib.es6.js +17 -0
- package/dist/tslib.es6.js.map +1 -0
- package/dist/view/index.js +20 -33
- package/dist/view/index.js.map +1 -1
- package/index.js +4 -4
- package/package.json +2 -5
- package/LICENSE +0 -21
package/dist/image/index.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
4
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
5
3
|
import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
|
|
6
4
|
import _inherits from '@babel/runtime/helpers/inherits';
|
|
7
5
|
import _createSuper from '@babel/runtime/helpers/createSuper';
|
|
8
|
-
import
|
|
6
|
+
import { _ as __rest } from '../tslib.es6.js';
|
|
9
7
|
import '../weui.js';
|
|
10
|
-
import React from 'react';
|
|
11
8
|
import { s as styleInject, c as classNames } from '../index.js';
|
|
9
|
+
import React from 'react';
|
|
12
10
|
import '@babel/runtime/helpers/typeof';
|
|
13
11
|
|
|
14
12
|
var css_248z = "img[src=\"\"] {\n opacity: 0;\n}\n\n.taro-img {\n display: inline-block;\n overflow: hidden;\n position: relative;\n font-size: 0;\n width: 320px;\n height: 240px;\n}\n\n.taro-img.taro-img__widthfix {\n height: 100%;\n}\n\n.taro-img__mode-scaletofill {\n object-fit: contain;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-aspectfit {\n object-fit: contain;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-aspectfill {\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-widthfix {\n width: 100%;\n}\n\n.taro-img__mode-top {\n width: 100%;\n}\n\n.taro-img__mode-bottom {\n width: 100%;\n position: absolute;\n bottom: 0;\n}\n\n.taro-img__mode-left {\n height: 100%;\n}\n\n.taro-img__mode-right {\n position: absolute;\n height: 100%;\n right: 0;\n}\n\n.taro-img__mode-topright {\n position: absolute;\n right: 0;\n}\n\n.taro-img__mode-bottomleft {\n position: absolute;\n bottom: 0;\n}\n\n.taro-img__mode-bottomright {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n";
|
|
15
13
|
styleInject(css_248z,{"insertAt":"top"});
|
|
16
14
|
|
|
17
|
-
var _excluded = ["className", "src", "style", "mode", "onError", "lazyLoad", "imgProps"];
|
|
18
|
-
|
|
19
15
|
require('intersection-observer');
|
|
20
16
|
|
|
21
17
|
var Image = /*#__PURE__*/function (_React$Component) {
|
|
@@ -29,11 +25,8 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
29
25
|
_classCallCheck(this, Image);
|
|
30
26
|
|
|
31
27
|
_this = _super.call(this, props);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
_defineProperty(_assertThisInitialized(_this), "imgRef", null);
|
|
36
|
-
|
|
28
|
+
_this.observer = {};
|
|
29
|
+
_this.imgRef = null;
|
|
37
30
|
_this.state = {
|
|
38
31
|
isLoaded: false
|
|
39
32
|
};
|
|
@@ -88,25 +81,25 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
88
81
|
value: function render() {
|
|
89
82
|
var _this3 = this;
|
|
90
83
|
|
|
91
|
-
var
|
|
92
|
-
className =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
mode =
|
|
97
|
-
onError =
|
|
98
|
-
lazyLoad =
|
|
99
|
-
imgProps =
|
|
100
|
-
reset =
|
|
84
|
+
var _a = this.props,
|
|
85
|
+
className = _a.className,
|
|
86
|
+
_a$style = _a.style,
|
|
87
|
+
style = _a$style === void 0 ? {} : _a$style,
|
|
88
|
+
src = _a.src,
|
|
89
|
+
mode = _a.mode,
|
|
90
|
+
onError = _a.onError,
|
|
91
|
+
lazyLoad = _a.lazyLoad,
|
|
92
|
+
imgProps = _a.imgProps,
|
|
93
|
+
reset = __rest(_a, ["className", "style", "src", "mode", "onError", "lazyLoad", "imgProps"]);
|
|
101
94
|
|
|
102
95
|
var cls = classNames('taro-img', {
|
|
103
96
|
'taro-img__widthfix': mode === 'widthFix'
|
|
104
97
|
}, className);
|
|
105
98
|
var imgCls = classNames('taro-img__mode-' + (mode || 'scaleToFill').toLowerCase().replace(/\s/g, ''));
|
|
106
|
-
return React.createElement("div",
|
|
99
|
+
return React.createElement("div", Object.assign({
|
|
107
100
|
className: cls,
|
|
108
101
|
style: style
|
|
109
|
-
}, reset), lazyLoad ? React.createElement("img",
|
|
102
|
+
}, reset), lazyLoad ? React.createElement("img", Object.assign({
|
|
110
103
|
ref: function ref(img) {
|
|
111
104
|
return _this3.imgRef = img;
|
|
112
105
|
},
|
|
@@ -114,7 +107,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
114
107
|
"data-src": src,
|
|
115
108
|
onLoad: this.imageOnLoad,
|
|
116
109
|
onError: onError
|
|
117
|
-
}, imgProps)) : React.createElement("img",
|
|
110
|
+
}, imgProps)) : React.createElement("img", Object.assign({
|
|
118
111
|
ref: function ref(img) {
|
|
119
112
|
return _this3.imgRef = img;
|
|
120
113
|
},
|
package/dist/image/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/image/index.tsx"],"sourcesContent":["import 'weui'\nimport
|
|
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","value","width","target","height","_a","className","style","mode","onError","imgProps","reset","__rest","cls","classNames","imgCls","toLowerCase","replace","React","createElement","assign","ref","img","Component"],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index2.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
function throttle(fn) {
|
|
2
|
+
var threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
|
|
3
|
+
var scope = arguments.length > 2 ? arguments[2] : undefined;
|
|
4
|
+
var lastTime = 0;
|
|
5
|
+
var deferTimer;
|
|
6
|
+
return function () {
|
|
7
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
8
|
+
args[_key] = arguments[_key];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
var context = scope || this;
|
|
12
|
+
var now = Date.now();
|
|
13
|
+
|
|
14
|
+
if (now - lastTime > threshold) {
|
|
15
|
+
fn.apply(this, args);
|
|
16
|
+
lastTime = now;
|
|
17
|
+
} else {
|
|
18
|
+
clearTimeout(deferTimer);
|
|
19
|
+
deferTimer = setTimeout(function () {
|
|
20
|
+
lastTime = now;
|
|
21
|
+
fn.apply(context, args);
|
|
22
|
+
}, threshold);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function debounce(fn) {
|
|
27
|
+
var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
|
|
28
|
+
var scope = arguments.length > 2 ? arguments[2] : undefined;
|
|
29
|
+
var timer;
|
|
30
|
+
return function () {
|
|
31
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
32
|
+
args[_key2] = arguments[_key2];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var context = scope || this;
|
|
36
|
+
clearTimeout(timer);
|
|
37
|
+
timer = setTimeout(function () {
|
|
38
|
+
fn.apply(context, args);
|
|
39
|
+
}, ms);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { debounce as d, throttle as t };
|
|
44
|
+
//# sourceMappingURL=index2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js","sources":["../src/utils/index.ts"],"sourcesContent":["export function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n"],"names":["throttle","fn","threshold","scope","lastTime","deferTimer","args","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer"],"mappings":"AAAM,SAAUA,QAAV,CAAoBC,EAApB,EAA+C;EAAA,IAAvBC,SAAuB,uEAAX,GAAW,CAAA;AAAA,EAAA,IAANC,KAAM,GAAA,SAAA,CAAA,MAAA,GAAA,CAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA;EACnD,IAAIC,QAAQ,GAAG,CAAf,CAAA;AACA,EAAA,IAAIC,UAAJ,CAAA;AACA,EAAA,OAAO,YAAiB;AAAA,IAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAAJC,IAAI,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;MAAJA,IAAI,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;;AACtB,IAAA,IAAMC,OAAO,GAAGJ,KAAK,IAAI,IAAzB,CAAA;AACA,IAAA,IAAMK,GAAG,GAAGC,IAAI,CAACD,GAAL,EAAZ,CAAA;;AACA,IAAA,IAAIA,GAAG,GAAGJ,QAAN,GAAiBF,SAArB,EAAgC;AAC9BD,MAAAA,EAAE,CAACS,KAAH,CAAS,IAAT,EAAeJ,IAAf,CAAA,CAAA;AACAF,MAAAA,QAAQ,GAAGI,GAAX,CAAA;AACD,KAHD,MAGO;MACLG,YAAY,CAACN,UAAD,CAAZ,CAAA;MACAA,UAAU,GAAGO,UAAU,CAAC,YAAK;AAC3BR,QAAAA,QAAQ,GAAGI,GAAX,CAAA;AACAP,QAAAA,EAAE,CAACS,KAAH,CAASH,OAAT,EAAkBD,IAAlB,CAAA,CAAA;OAFqB,EAGpBJ,SAHoB,CAAvB,CAAA;AAID,KAAA;GAZH,CAAA;AAcD,CAAA;AAEK,SAAUW,QAAV,CAAoBZ,EAApB,EAAwC;EAAA,IAAhBa,EAAgB,uEAAX,GAAW,CAAA;AAAA,EAAA,IAANX,KAAM,GAAA,SAAA,CAAA,MAAA,GAAA,CAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA;AAC5C,EAAA,IAAIY,KAAJ,CAAA;AAEA,EAAA,OAAO,YAAiB;AAAA,IAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAAJT,IAAI,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;MAAJA,IAAI,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;;AACtB,IAAA,IAAMC,OAAO,GAAGJ,KAAK,IAAI,IAAzB,CAAA;IACAQ,YAAY,CAACI,KAAD,CAAZ,CAAA;IACAA,KAAK,GAAGH,UAAU,CAAC,YAAA;AACjBX,MAAAA,EAAE,CAACS,KAAH,CAASH,OAAT,EAAkBD,IAAlB,CAAA,CAAA;KADgB,EAEfQ,EAFe,CAAlB,CAAA;GAHF,CAAA;AAOD;;;;"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
2
|
-
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
3
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
2
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
5
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
6
4
|
import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
|
|
7
5
|
import _inherits from '@babel/runtime/helpers/inherits';
|
|
8
6
|
import _createSuper from '@babel/runtime/helpers/createSuper';
|
|
9
|
-
import
|
|
10
|
-
import React from 'react';
|
|
7
|
+
import { _ as __rest } from '../tslib.es6.js';
|
|
11
8
|
import { s as styleInject, c as classNames } from '../index.js';
|
|
12
9
|
import Taro from '@tarojs/taro';
|
|
10
|
+
import React from 'react';
|
|
13
11
|
import '@babel/runtime/helpers/typeof';
|
|
14
12
|
|
|
15
|
-
var css_248z = ".rmc-pull-to-refresh-content {\r\n transform-origin: left top 0px;\r\n}\r\n.rmc-pull-to-refresh-content-wrapper {\r\n overflow: hidden;\r\n}\r\n\r\n.rmc-pull-to-refresh-transition {\r\n transition: transform 0.3s;\r\n}\r\n\r\n\r\n@keyframes rmc-pull-to-refresh-indicator {\r\n 50% {\r\n opacity: 0.2;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator {\r\n text-align: center;\r\n height: 30px;\r\n line-height: 10px;\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator > div {\r\n background-color: grey;\r\n width: 6px;\r\n height: 6px;\r\n border-radius: 100%;\r\n margin: 3px;\r\n animation-fill-mode: both;\r\n display: inline-block;\r\n animation: rmc-pull-to-refresh-indicator 0.5s 0s infinite linear;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(0) {\r\n animation-delay: -0.1s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(1) {\r\n animation-delay: -0.2s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(2) {\r\n animation-delay: -0.3s !important;\r\n}\r\n.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator {\r\n margin-top: -25px;\r\n}\r\n";
|
|
13
|
+
var css_248z = ".rmc-pull-to-refresh-content {\r\n transform-origin: left top 0px;\r\n}\r\n.rmc-pull-to-refresh-content-wrapper {\r\n overflow: hidden;\r\n min-height: 100vh;\r\n}\r\n\r\n.rmc-pull-to-refresh-transition {\r\n transition: transform 0.3s;\r\n}\r\n\r\n\r\n@keyframes rmc-pull-to-refresh-indicator {\r\n 50% {\r\n opacity: 0.2;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator {\r\n text-align: center;\r\n height: 30px;\r\n line-height: 10px;\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator > div {\r\n background-color: grey;\r\n width: 6px;\r\n height: 6px;\r\n border-radius: 100%;\r\n margin: 3px;\r\n animation-fill-mode: both;\r\n display: inline-block;\r\n animation: rmc-pull-to-refresh-indicator 0.5s 0s infinite linear;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(0) {\r\n animation-delay: -0.1s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(1) {\r\n animation-delay: -0.2s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(2) {\r\n animation-delay: -0.3s !important;\r\n}\r\n.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator {\r\n margin-top: -25px;\r\n}\r\n";
|
|
16
14
|
styleInject(css_248z,{"insertAt":"top"});
|
|
17
15
|
|
|
18
|
-
var _excluded = ["className", "prefixCls", "children"];
|
|
19
|
-
|
|
20
16
|
function setTransform(nodeStyle, value) {
|
|
21
17
|
nodeStyle.transform = value;
|
|
22
18
|
nodeStyle.webkitTransform = value;
|
|
@@ -69,34 +65,20 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
69
65
|
|
|
70
66
|
_classCallCheck(this, PullDownRefresh);
|
|
71
67
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
68
|
+
_this = _super.apply(this, arguments); // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355
|
|
69
|
+
// currSt: `activate` / `deactivate` / `release` / `finish`
|
|
77
70
|
|
|
78
|
-
|
|
71
|
+
_this.state = {
|
|
79
72
|
currSt: PullDownState.deactivate,
|
|
80
73
|
dragOnEdge: false
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
_defineProperty(_assertThisInitialized(_this), "_ScreenY", 0);
|
|
90
|
-
|
|
91
|
-
_defineProperty(_assertThisInitialized(_this), "_startScreenY", 0);
|
|
92
|
-
|
|
93
|
-
_defineProperty(_assertThisInitialized(_this), "_lastScreenY", 0);
|
|
94
|
-
|
|
95
|
-
_defineProperty(_assertThisInitialized(_this), "_isMounted", false);
|
|
96
|
-
|
|
97
|
-
_defineProperty(_assertThisInitialized(_this), "listeners", []);
|
|
98
|
-
|
|
99
|
-
_defineProperty(_assertThisInitialized(_this), "triggerPullDownRefresh", function (flag) {
|
|
74
|
+
};
|
|
75
|
+
_this._ScreenY = 0;
|
|
76
|
+
_this._startScreenY = 0;
|
|
77
|
+
_this._lastScreenY = 0;
|
|
78
|
+
_this._isMounted = false;
|
|
79
|
+
_this.listeners = [];
|
|
80
|
+
|
|
81
|
+
_this.triggerPullDownRefresh = function (flag) {
|
|
100
82
|
// 在初始化时、用代码 自动 触发 pullDownRefresh
|
|
101
83
|
// 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish
|
|
102
84
|
if (!_this.state.dragOnEdge && _this._isMounted) {
|
|
@@ -116,9 +98,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
116
98
|
});
|
|
117
99
|
}
|
|
118
100
|
}
|
|
119
|
-
}
|
|
101
|
+
};
|
|
120
102
|
|
|
121
|
-
|
|
103
|
+
_this.init = function () {
|
|
122
104
|
var ele = _this.scrollContainer;
|
|
123
105
|
_this._to = {
|
|
124
106
|
touchstart: _this.onTouchStart.bind(_assertThisInitialized(_this), ele),
|
|
@@ -129,22 +111,22 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
129
111
|
Object.keys(_this._to).forEach(function (key) {
|
|
130
112
|
ele.addEventListener(key, _this._to[key], willPreventDefault);
|
|
131
113
|
});
|
|
132
|
-
}
|
|
114
|
+
};
|
|
133
115
|
|
|
134
|
-
|
|
116
|
+
_this.destroy = function () {
|
|
135
117
|
var ele = _this.scrollContainer;
|
|
136
118
|
Object.keys(_this._to).forEach(function (key) {
|
|
137
119
|
ele.removeEventListener(key, _this._to[key]);
|
|
138
120
|
});
|
|
139
|
-
}
|
|
121
|
+
};
|
|
140
122
|
|
|
141
|
-
|
|
123
|
+
_this.onTouchStart = function (_, e) {
|
|
142
124
|
_this._ScreenY = _this._startScreenY = e.touches[0].screenY; // 一开始 refreshing 为 true 时 this._lastScreenY 有值
|
|
143
125
|
|
|
144
126
|
_this._lastScreenY = _this._lastScreenY || 0;
|
|
145
|
-
}
|
|
127
|
+
};
|
|
146
128
|
|
|
147
|
-
|
|
129
|
+
_this.isEdge = function (ele) {
|
|
148
130
|
var container = _this.scrollContainer;
|
|
149
131
|
|
|
150
132
|
if (container && container === document.body) {
|
|
@@ -154,9 +136,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
154
136
|
}
|
|
155
137
|
|
|
156
138
|
return ele.scrollTop <= 0;
|
|
157
|
-
}
|
|
139
|
+
};
|
|
158
140
|
|
|
159
|
-
|
|
141
|
+
_this.damping = function (dy) {
|
|
160
142
|
if (Math.abs(_this._lastScreenY) > _this.props.damping) {
|
|
161
143
|
return 0;
|
|
162
144
|
}
|
|
@@ -164,9 +146,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
164
146
|
var ratio = Math.abs(_this._ScreenY - _this._startScreenY) / window.screen.height;
|
|
165
147
|
dy *= (1 - ratio) * 0.6;
|
|
166
148
|
return dy;
|
|
167
|
-
}
|
|
149
|
+
};
|
|
168
150
|
|
|
169
|
-
|
|
151
|
+
_this.onTouchMove = function (ele, e) {
|
|
170
152
|
// 使用 pageY 对比有问题
|
|
171
153
|
var _screenY = e.touches[0].screenY; // 拖动方向不符合的不处理
|
|
172
154
|
|
|
@@ -221,9 +203,11 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
221
203
|
_this.onTouchEnd();
|
|
222
204
|
}
|
|
223
205
|
}
|
|
224
|
-
}
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
_this.onTouchEnd = function () {
|
|
209
|
+
var _a, _b;
|
|
225
210
|
|
|
226
|
-
_defineProperty(_assertThisInitialized(_this), "onTouchEnd", function () {
|
|
227
211
|
if (_this.state.dragOnEdge) {
|
|
228
212
|
_this.setState({
|
|
229
213
|
dragOnEdge: false
|
|
@@ -231,13 +215,11 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
231
215
|
}
|
|
232
216
|
|
|
233
217
|
if (_this.state.currSt === PullDownState.activate) {
|
|
234
|
-
var _this$props$onRefresh, _this$props;
|
|
235
|
-
|
|
236
218
|
_this.setState({
|
|
237
219
|
currSt: PullDownState.release
|
|
238
220
|
});
|
|
239
221
|
|
|
240
|
-
(
|
|
222
|
+
(_b = (_a = _this.props).onRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
241
223
|
_this._lastScreenY = _this.props.distanceToRefresh + 1;
|
|
242
224
|
|
|
243
225
|
_this.setContentStyle(_this._lastScreenY);
|
|
@@ -248,16 +230,16 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
248
230
|
} else {
|
|
249
231
|
_this.reset();
|
|
250
232
|
}
|
|
251
|
-
}
|
|
233
|
+
};
|
|
252
234
|
|
|
253
|
-
|
|
235
|
+
_this.reset = function () {
|
|
254
236
|
_this._lastScreenY = 0;
|
|
255
237
|
|
|
256
238
|
_this.setContentStyle(0);
|
|
257
|
-
}
|
|
239
|
+
};
|
|
258
240
|
|
|
259
|
-
|
|
260
|
-
//
|
|
241
|
+
_this.setContentStyle = function (ty) {
|
|
242
|
+
// TODO: Why sometimes do not have `this.contentRef` ?
|
|
261
243
|
if (_this.contentRef) {
|
|
262
244
|
// translate3d 不清理 会影响内部元素定位
|
|
263
245
|
if (ty) {
|
|
@@ -266,7 +248,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
266
248
|
setTransform(_this.contentRef.style, '');
|
|
267
249
|
}
|
|
268
250
|
}
|
|
269
|
-
}
|
|
251
|
+
};
|
|
270
252
|
|
|
271
253
|
return _this;
|
|
272
254
|
}
|
|
@@ -274,7 +256,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
274
256
|
_createClass(PullDownRefresh, [{
|
|
275
257
|
key: "scrollContainer",
|
|
276
258
|
get: function get() {
|
|
277
|
-
return document.querySelector('.taro-tabbar__panel') || document.body;
|
|
259
|
+
return document.querySelector('.taro_page_stationed') || document.querySelector('.taro_page') || document.querySelector('.taro_router') || document.querySelector('.taro-tabbar__panel') || document.body;
|
|
278
260
|
}
|
|
279
261
|
}, {
|
|
280
262
|
key: "componentDidMount",
|
|
@@ -337,15 +319,13 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
337
319
|
}, {
|
|
338
320
|
key: "componentDidUpdate",
|
|
339
321
|
value: function componentDidUpdate(_, prevState) {
|
|
340
|
-
|
|
341
|
-
var _this$contentRef;
|
|
342
|
-
|
|
343
|
-
var pageEl = (_this$contentRef = this.contentRef) === null || _this$contentRef === void 0 ? void 0 : _this$contentRef.closest('.taro_page');
|
|
322
|
+
var _a, _b;
|
|
344
323
|
|
|
345
|
-
|
|
346
|
-
|
|
324
|
+
if (prevState.currSt !== this.state.currSt && this.state.currSt === PullDownState.release) {
|
|
325
|
+
var pageEl = (_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.closest('.taro_page');
|
|
347
326
|
|
|
348
|
-
|
|
327
|
+
if (pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) {
|
|
328
|
+
(_b = pageEl.__page) === null || _b === void 0 ? void 0 : _b.onPullDownRefresh();
|
|
349
329
|
}
|
|
350
330
|
}
|
|
351
331
|
}
|
|
@@ -354,8 +334,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
354
334
|
value: function render() {
|
|
355
335
|
var _this3 = this;
|
|
356
336
|
|
|
357
|
-
var props =
|
|
358
|
-
|
|
337
|
+
var props = Object.assign({}, this.props);
|
|
359
338
|
delete props.damping;
|
|
360
339
|
delete props.indicator;
|
|
361
340
|
delete props.distanceToRefresh;
|
|
@@ -364,7 +343,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
364
343
|
var className = props.className,
|
|
365
344
|
prefixCls = props.prefixCls,
|
|
366
345
|
children = props.children,
|
|
367
|
-
restProps =
|
|
346
|
+
restProps = __rest(props, ["className", "prefixCls", "children"]);
|
|
368
347
|
|
|
369
348
|
var renderRefresh = function renderRefresh(cls) {
|
|
370
349
|
var _this3$state = _this3.state,
|
|
@@ -388,7 +367,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
388
367
|
return renderRefresh("".concat(prefixCls, "-content ").concat(prefixCls, "-down"));
|
|
389
368
|
}
|
|
390
369
|
|
|
391
|
-
return React.createElement("pull-down-refresh",
|
|
370
|
+
return React.createElement("pull-down-refresh", Object.assign({
|
|
392
371
|
ref: function ref(el) {
|
|
393
372
|
_this3.containerRef = el;
|
|
394
373
|
},
|
|
@@ -400,12 +379,12 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
|
|
|
400
379
|
return PullDownRefresh;
|
|
401
380
|
}(React.Component);
|
|
402
381
|
|
|
403
|
-
|
|
382
|
+
PullDownRefresh.defaultProps = {
|
|
404
383
|
prefixCls: 'rmc-pull-to-refresh',
|
|
405
384
|
distanceToRefresh: 50,
|
|
406
385
|
damping: 100,
|
|
407
386
|
indicator: INDICATOR
|
|
408
|
-
}
|
|
387
|
+
};
|
|
409
388
|
|
|
410
389
|
export { PullDownRefresh as default };
|
|
411
390
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/pull-down-refresh/index.tsx"],"sourcesContent":["import React from 'react'\r\nimport classNames from 'classnames'\r\nimport Taro from '@tarojs/taro'\r\n\r\nimport './style/index.css'\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 = typeof navigator !== 'undefined' &&\r\n /(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) {}\r\n\r\nconst willPreventDefault = supportsPassive ? { passive: false } : false\r\n\r\ninterface IProps {\r\n className?: string\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 document.querySelector('.taro-tabbar__panel') || document.body\r\n }\r\n\r\n componentDidMount () {\r\n this.init()\r\n this._isMounted = true\r\n this.listeners = [\r\n ['__taroStartPullDownRefresh', ({ 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 ['__taroStopPullDownRefresh', ({ 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 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 && this.state.currSt === PullDownState.release) {\r\n const pageEl: any = this.contentRef?.closest('.taro_page')\r\n if (pageEl?.__page) {\r\n pageEl.__page?.onPullDownRefresh()\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 // todos: 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 {\r\n className,\r\n prefixCls,\r\n children,\r\n ...restProps\r\n } = 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 {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","currSt","deactivate","dragOnEdge","flag","state","_isMounted","_lastScreenY","props","distanceToRefresh","setState","release","setContentStyle","finish","reset","ele","scrollContainer","_to","touchstart","onTouchStart","bind","touchmove","onTouchMove","touchend","onTouchEnd","touchcancel","keys","forEach","key","removeEventListener","_","_ScreenY","_startScreenY","touches","screenY","container","document","body","scrollNode","scrollingElement","scrollTop","dy","Math","abs","damping","ratio","screen","height","_screenY","isEdge","cancelable","preventDefault","_diff","round","activate","changedTouches","clientY","onRefresh","ty","contentRef","style","querySelector","init","listeners","successHandler","errorHandler","triggerPullDownRefresh","errMsg","evtName","callback","Taro","eventCenter","on","destroy","off","prevState","pageEl","closest","__page","onPullDownRefresh","indicator","className","prefixCls","children","restProps","renderRefresh","cls","cla","classNames","showIndicator","React","ref","el","containerRef","Component"],"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) {}\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 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 && this.state.currSt === PullDownState.release) {\r\n const pageEl: any = this.contentRef?.closest('.taro_page')\r\n if (pageEl?.__page) {\r\n pageEl.__page?.onPullDownRefresh()\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","querySelector","successHandler","errorHandler","errMsg","evtName","callback","Taro","eventCenter","on","off","prevState","pageEl","_a","closest","__page","onPullDownRefresh","assign","indicator","className","prefixCls","children","restProps","__rest","renderRefresh","cls","cla","classNames","showIndicator","React","createElement","ref","el","containerRef","Component","defaultProps"],"mappings":"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"}
|