@arco-design/mobile-react 2.30.7 → 2.30.9
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/CHANGELOG.md +26 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/_helpers/render.d.ts +6 -1
- package/cjs/_helpers/render.js +24 -2
- package/cjs/ellipsis/components/js-ellipsis.js +5 -2
- package/cjs/image/style/index.less +2 -4
- package/cjs/image-preview/methods.js +2 -7
- package/cjs/masking/methods.js +12 -6
- package/cjs/skeleton/type.d.ts +1 -0
- package/cjs/swipe-load/index.js +24 -19
- package/cjs/swipe-load/style/css/index.css +4 -0
- package/cjs/swipe-load/style/index.less +1 -1
- package/cjs/tabs/index.js +2 -1
- package/dist/index.js +310 -223
- package/dist/index.min.js +5 -5
- package/dist/style.css +4 -0
- package/dist/style.min.css +1 -1
- package/esm/_helpers/render.d.ts +6 -1
- package/esm/_helpers/render.js +21 -1
- package/esm/ellipsis/components/js-ellipsis.js +4 -2
- package/esm/image/style/index.less +2 -4
- package/esm/image-preview/methods.js +2 -7
- package/esm/masking/methods.js +13 -7
- package/esm/skeleton/type.d.ts +1 -0
- package/esm/swipe-load/index.js +24 -19
- package/esm/swipe-load/style/css/index.css +4 -0
- package/esm/swipe-load/style/index.less +1 -1
- package/esm/tabs/index.js +2 -1
- package/package.json +3 -3
- package/umd/_helpers/render.d.ts +6 -1
- package/umd/_helpers/render.js +23 -2
- package/umd/ellipsis/components/js-ellipsis.js +7 -6
- package/umd/image/style/index.less +2 -4
- package/umd/image-preview/methods.js +2 -7
- package/umd/masking/methods.js +12 -6
- package/umd/skeleton/type.d.ts +1 -0
- package/umd/swipe-load/index.js +24 -19
- package/umd/swipe-load/style/css/index.css +4 -0
- package/umd/swipe-load/style/index.less +1 -1
- package/umd/tabs/index.js +2 -1
package/umd/swipe-load/index.js
CHANGED
@@ -79,7 +79,8 @@
|
|
79
79
|
|
80
80
|
var _useContext = (0, _react.useContext)(_contextProvider.GlobalContext),
|
81
81
|
_useContext$locale = _useContext.locale,
|
82
|
-
locale = _useContext$locale === void 0 ? _mobileUtils.defaultLocale : _useContext$locale
|
82
|
+
locale = _useContext$locale === void 0 ? _mobileUtils.defaultLocale : _useContext$locale,
|
83
|
+
useRtl = _useContext.useRtl;
|
83
84
|
|
84
85
|
var _useState = (0, _react.useState)(disabled),
|
85
86
|
disableState = _useState[0],
|
@@ -161,16 +162,20 @@
|
|
161
162
|
// 判断元素是否属于滚动元素 先置为1 之后变成0表示非滚动容器
|
162
163
|
// @en Determine whether the element belongs to a scrolling element. Set it to 1 and then change to 0 to indicate a non-scrolling container
|
163
164
|
if (!scrollContainer.scrollLeft) {
|
164
|
-
scrollContainer.scrollLeft = 1;
|
165
|
+
scrollContainer.scrollLeft = useRtl ? -1 : 1;
|
165
166
|
}
|
166
167
|
|
167
168
|
endX = e.touches[0].clientX || 0;
|
168
169
|
var diff = endX - startX;
|
169
170
|
offsetRef.current = diff;
|
170
|
-
var labelDiff = (0, _mobileUtils.fingerDisToLabelDis)(Math.abs(diff), damping); //
|
171
|
+
var labelDiff = (0, _mobileUtils.fingerDisToLabelDis)(Math.abs(diff), damping); // 判断是否是滚动到列表开始方向,ltr模式下是向左滚动,rtl模式下是向右滚动
|
172
|
+
|
173
|
+
var isScrollToLeft = useRtl ? diff < 0 : diff > 0; // 判断是否是滚动到列表结束方向,ltr模式下是向右滚动,rtl模式下是向左滚动
|
174
|
+
|
175
|
+
var isScrollToRight = useRtl ? diff > 0 : diff < 0; // 滑动到最左侧,处理回弹效果
|
171
176
|
// @en Swipe to the far left to handle the rebound effect
|
172
177
|
|
173
|
-
if (
|
178
|
+
if (isScrollToLeft && Math.abs(scrollContainer.scrollLeft) <= 1 && bounceWhenBumpBoundary) {
|
174
179
|
e.stopPropagation();
|
175
180
|
e.cancelBubble && e.preventDefault();
|
176
181
|
bouncingRef.current = true;
|
@@ -188,14 +193,14 @@
|
|
188
193
|
// @en Swipe left to the end and the 'more' label is loaded. Judging by scrollLeft, the scroll container reaches the edge and the non-scroll container does not judge
|
189
194
|
|
190
195
|
|
191
|
-
if (
|
196
|
+
if (isScrollToRight && (Math.abs(scrollContainer.scrollLeft) + scrollContainer.clientWidth >= scrollContainer.scrollWidth - 1 || !scrollContainer.scrollLeft) && !ifToRightRef.current) {
|
192
197
|
showLoadMoreRef.current = true;
|
193
198
|
loadingCurrent.style.display = 'flex';
|
194
199
|
} // 继续滑动露出标签
|
195
200
|
// @en Continue swiping to reveal labels
|
196
201
|
|
197
202
|
|
198
|
-
if (showLoadMoreRef.current &&
|
203
|
+
if (showLoadMoreRef.current && isScrollToRight) {
|
199
204
|
// 此时禁止list原生滚动
|
200
205
|
// @en Disable list native scrolling at this time
|
201
206
|
e.stopPropagation();
|
@@ -215,22 +220,22 @@
|
|
215
220
|
|
216
221
|
(0, _helpers.setStyleWithVendor)(loadingCurrent, {
|
217
222
|
transition: 'none',
|
218
|
-
transform: "translateX(-" + labelRightMargin + "px) translateZ(0)"
|
223
|
+
transform: useRtl ? "translateX(" + labelRightMargin + "px) translateZ(0)" : "translateX(-" + labelRightMargin + "px) translateZ(0)"
|
219
224
|
});
|
220
225
|
(0, _helpers.setStyleWithVendor)(scrollContainer, {
|
221
226
|
transition: 'none',
|
222
|
-
transform: "translateX(-" + listRightMargin + "px) translateZ(0)"
|
227
|
+
transform: useRtl ? "translateX(" + listRightMargin + "px) translateZ(0)" : "translateX(-" + listRightMargin + "px) translateZ(0)"
|
223
228
|
});
|
224
229
|
}
|
225
230
|
|
226
|
-
if (
|
231
|
+
if (isScrollToLeft && Math.abs(scrollContainer.scrollLeft) + scrollContainer.clientWidth <= scrollContainer.scrollWidth - 1) {
|
227
232
|
showLoadMoreRef.current = false;
|
228
233
|
loadingCurrent.style.display = 'none';
|
229
234
|
} // 针对ios惯性滚动处理
|
230
235
|
// @en Handling inertial scrolling for ios
|
231
236
|
|
232
237
|
|
233
|
-
if (
|
238
|
+
if (isScrollToRight && Math.abs(scrollContainer.scrollLeft) + scrollContainer.clientWidth <= scrollContainer.scrollWidth - 1) {
|
234
239
|
ifToRightRef.current = false;
|
235
240
|
} else {
|
236
241
|
ifToRightRef.current = true;
|
@@ -275,7 +280,7 @@
|
|
275
280
|
// @em Swipe left, labels are all displayed
|
276
281
|
|
277
282
|
|
278
|
-
if (labelDiff >= minConfirmOffset && (scrollContainer.scrollLeft + scrollContainer.clientWidth >= scrollContainer.scrollWidth - 1 || !scrollContainer.scrollLeft) && showLoadMoreRef.current) {
|
283
|
+
if (labelDiff >= minConfirmOffset && (Math.abs(scrollContainer.scrollLeft) + scrollContainer.clientWidth >= scrollContainer.scrollWidth - 1 || !scrollContainer.scrollLeft) && showLoadMoreRef.current) {
|
279
284
|
onConfirm(); // 安卓机型返回动画优化
|
280
285
|
// @en Return animation optimization on Android
|
281
286
|
|
@@ -303,6 +308,8 @@
|
|
303
308
|
};
|
304
309
|
});
|
305
310
|
return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref) {
|
311
|
+
var _ref2, _ref3;
|
312
|
+
|
306
313
|
var prefixCls = _ref.prefixCls;
|
307
314
|
return /*#__PURE__*/_react.default.createElement("div", {
|
308
315
|
className: prefixCls + "-swipe-load " + className,
|
@@ -313,19 +320,17 @@
|
|
313
320
|
}, children), renderLabel ? /*#__PURE__*/_react.default.createElement("div", {
|
314
321
|
className: (0, _mobileUtils.cls)(prefixCls + "-custom-loading-area"),
|
315
322
|
ref: loadingRef,
|
316
|
-
style: {
|
317
|
-
position: 'absolute'
|
318
|
-
|
319
|
-
}
|
323
|
+
style: (_ref2 = {
|
324
|
+
position: 'absolute'
|
325
|
+
}, _ref2[useRtl ? 'left' : 'right'] = initPos + "px", _ref2)
|
320
326
|
}, renderLabel.length ? renderLabel(labelOffsetState) : renderLabel()) : /*#__PURE__*/_react.default.createElement("div", {
|
321
327
|
className: (0, _mobileUtils.cls)(prefixCls + "-loading-area"),
|
322
328
|
ref: loadingRef,
|
323
|
-
style: {
|
329
|
+
style: (_ref3 = {
|
324
330
|
width: circleSize + "px",
|
325
331
|
height: circleSize + "px",
|
326
|
-
position: 'absolute'
|
327
|
-
|
328
|
-
}
|
332
|
+
position: 'absolute'
|
333
|
+
}, _ref3[useRtl ? 'left' : 'right'] = "-" + circleSize + "px", _ref3)
|
329
334
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
330
335
|
className: (0, _mobileUtils.cls)(prefixCls + "-loading-label"),
|
331
336
|
ref: loadingLabelRef
|
@@ -519,6 +519,10 @@
|
|
519
519
|
color: #1d2129 ;
|
520
520
|
font-size: 0.24rem ;
|
521
521
|
}
|
522
|
+
[dir="rtl"] .arco-swipe-load .arco-loading-area .arco-loading-label {
|
523
|
+
margin-left: initial;
|
524
|
+
margin-right: 0.4rem ;
|
525
|
+
}
|
522
526
|
/***************************************************
|
523
527
|
* *
|
524
528
|
* Arco Theme Style *
|
@@ -20,7 +20,7 @@
|
|
20
20
|
.use-var(border-radius, swipe-load-label-border-radius);
|
21
21
|
|
22
22
|
.@{prefix}-loading-label {
|
23
|
-
.use-var(margin-left, swipe-load-label-text-margin-left);
|
23
|
+
.use-var-with-rtl(margin-left, swipe-load-label-text-margin-left);
|
24
24
|
.use-var(width, swipe-load-label-text-width);
|
25
25
|
.use-var(color, swipe-load-label-text-color);
|
26
26
|
.use-var(font-size, swipe-load-label-text-font-size);
|
package/umd/tabs/index.js
CHANGED
@@ -466,11 +466,12 @@
|
|
466
466
|
changeFromRef.current = changeFrom || '';
|
467
467
|
setCellTrans(true);
|
468
468
|
setInnerIndex(newIndex);
|
469
|
-
setDistance(0);
|
470
469
|
|
471
470
|
if (newIndex !== activeIndexRef.current) {
|
472
471
|
onChange && onChange(tabs[newIndex], newIndex, changeFrom);
|
473
472
|
}
|
473
|
+
|
474
|
+
setDistance(0);
|
474
475
|
}
|
475
476
|
|
476
477
|
return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref) {
|