@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.
Files changed (41) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/render.d.ts +6 -1
  5. package/cjs/_helpers/render.js +24 -2
  6. package/cjs/ellipsis/components/js-ellipsis.js +5 -2
  7. package/cjs/image/style/index.less +2 -4
  8. package/cjs/image-preview/methods.js +2 -7
  9. package/cjs/masking/methods.js +12 -6
  10. package/cjs/skeleton/type.d.ts +1 -0
  11. package/cjs/swipe-load/index.js +24 -19
  12. package/cjs/swipe-load/style/css/index.css +4 -0
  13. package/cjs/swipe-load/style/index.less +1 -1
  14. package/cjs/tabs/index.js +2 -1
  15. package/dist/index.js +310 -223
  16. package/dist/index.min.js +5 -5
  17. package/dist/style.css +4 -0
  18. package/dist/style.min.css +1 -1
  19. package/esm/_helpers/render.d.ts +6 -1
  20. package/esm/_helpers/render.js +21 -1
  21. package/esm/ellipsis/components/js-ellipsis.js +4 -2
  22. package/esm/image/style/index.less +2 -4
  23. package/esm/image-preview/methods.js +2 -7
  24. package/esm/masking/methods.js +13 -7
  25. package/esm/skeleton/type.d.ts +1 -0
  26. package/esm/swipe-load/index.js +24 -19
  27. package/esm/swipe-load/style/css/index.css +4 -0
  28. package/esm/swipe-load/style/index.less +1 -1
  29. package/esm/tabs/index.js +2 -1
  30. package/package.json +3 -3
  31. package/umd/_helpers/render.d.ts +6 -1
  32. package/umd/_helpers/render.js +23 -2
  33. package/umd/ellipsis/components/js-ellipsis.js +7 -6
  34. package/umd/image/style/index.less +2 -4
  35. package/umd/image-preview/methods.js +2 -7
  36. package/umd/masking/methods.js +12 -6
  37. package/umd/skeleton/type.d.ts +1 -0
  38. package/umd/swipe-load/index.js +24 -19
  39. package/umd/swipe-load/style/css/index.css +4 -0
  40. package/umd/swipe-load/style/index.less +1 -1
  41. package/umd/tabs/index.js +2 -1
@@ -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 (diff > 0 && scrollContainer.scrollLeft <= 1 && bounceWhenBumpBoundary) {
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 (diff < 0 && (scrollContainer.scrollLeft + scrollContainer.clientWidth >= scrollContainer.scrollWidth - 1 || !scrollContainer.scrollLeft) && !ifToRightRef.current) {
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 && diff < 0) {
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 (diff > 0 && scrollContainer.scrollLeft + scrollContainer.clientWidth <= scrollContainer.scrollWidth - 1) {
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 (diff < 0 && scrollContainer.scrollLeft + scrollContainer.clientWidth <= scrollContainer.scrollWidth - 1) {
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
- right: initPos + "px"
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
- right: "-" + circleSize + "px"
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) {