@arco-design/mobile-react 2.30.8 → 2.30.10
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 +25 -0
- package/README.en-US.md +70 -2
- package/README.md +69 -2
- package/cjs/_helpers/render.d.ts +6 -1
- package/cjs/_helpers/render.js +24 -2
- package/cjs/carousel/index.js +3 -0
- 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/picker/index.js +3 -2
- package/cjs/picker/type.d.ts +1 -1
- package/cjs/picker-view/components/cascader.d.ts +1 -0
- package/cjs/picker-view/components/cascader.js +8 -1
- package/cjs/picker-view/components/picker-cell.d.ts +1 -0
- package/cjs/picker-view/components/picker-cell.js +6 -1
- package/cjs/picker-view/index.d.ts +6 -1
- package/cjs/picker-view/index.js +25 -13
- package/cjs/skeleton/type.d.ts +1 -1
- package/cjs/skeleton/type.js +1 -6
- package/cjs/tabs/tab-cell.js +54 -29
- package/cjs/tabs/type.d.ts +5 -0
- package/dist/index.js +137 -58
- package/dist/index.min.js +3 -3
- package/esm/_helpers/render.d.ts +6 -1
- package/esm/_helpers/render.js +21 -1
- package/esm/carousel/index.js +3 -0
- 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/picker/index.js +3 -2
- package/esm/picker/type.d.ts +1 -1
- package/esm/picker-view/components/cascader.d.ts +1 -0
- package/esm/picker-view/components/cascader.js +8 -1
- package/esm/picker-view/components/picker-cell.d.ts +1 -0
- package/esm/picker-view/components/picker-cell.js +6 -1
- package/esm/picker-view/index.d.ts +6 -1
- package/esm/picker-view/index.js +26 -13
- package/esm/skeleton/type.d.ts +1 -1
- package/esm/skeleton/type.js +1 -2
- package/esm/tabs/tab-cell.js +55 -29
- package/esm/tabs/type.d.ts +5 -0
- package/package.json +3 -3
- package/umd/_helpers/render.d.ts +6 -1
- package/umd/_helpers/render.js +23 -2
- package/umd/carousel/index.js +3 -0
- 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/picker/index.js +3 -2
- package/umd/picker/type.d.ts +1 -1
- package/umd/picker-view/components/cascader.d.ts +1 -0
- package/umd/picker-view/components/cascader.js +8 -1
- package/umd/picker-view/components/picker-cell.d.ts +1 -0
- package/umd/picker-view/components/picker-cell.js +6 -1
- package/umd/picker-view/index.d.ts +6 -1
- package/umd/picker-view/index.js +25 -13
- package/umd/skeleton/type.d.ts +1 -1
- package/umd/skeleton/type.js +4 -6
- package/umd/tabs/tab-cell.js +54 -29
- package/umd/tabs/type.d.ts +5 -0
@@ -1,11 +1,11 @@
|
|
1
|
-
@import
|
1
|
+
@import '../../../style/mixin.less';
|
2
2
|
|
3
3
|
.@{prefix}-image {
|
4
4
|
display: inline-block;
|
5
5
|
position: relative;
|
6
6
|
|
7
7
|
&.preview {
|
8
|
-
transition: all .3s ease-in-out;
|
8
|
+
transition: all 0.3s ease-in-out;
|
9
9
|
|
10
10
|
.image-container,
|
11
11
|
.image-loading-container .image-loading,
|
@@ -109,7 +109,6 @@
|
|
109
109
|
}
|
110
110
|
|
111
111
|
.image-error-container {
|
112
|
-
|
113
112
|
.image-retry-load {
|
114
113
|
position: absolute;
|
115
114
|
top: 0;
|
@@ -127,7 +126,6 @@
|
|
127
126
|
}
|
128
127
|
|
129
128
|
.image-loading-container {
|
130
|
-
|
131
129
|
.image-loading {
|
132
130
|
position: absolute;
|
133
131
|
top: 0;
|
@@ -21,9 +21,7 @@
|
|
21
21
|
|
22
22
|
function open(Component) {
|
23
23
|
return function (config, context) {
|
24
|
-
var baseProps = (0, _extends2.default)({
|
25
|
-
unmountOnExit: true
|
26
|
-
}, config || {}, {
|
24
|
+
var baseProps = (0, _extends2.default)({}, config || {}, {
|
27
25
|
close: function close() {}
|
28
26
|
}); // 不同的key用不同的容器挂载
|
29
27
|
// @en Different keys are mounted in different containers
|
@@ -59,10 +57,7 @@
|
|
59
57
|
|
60
58
|
dynamicProps.onClose = function () {
|
61
59
|
baseProps.onClose && baseProps.onClose();
|
62
|
-
|
63
|
-
if (baseProps.unmountOnExit) {
|
64
|
-
(0, _mobileUtils.removeElement)(div);
|
65
|
-
}
|
60
|
+
(0, _mobileUtils.removeElement)(div);
|
66
61
|
};
|
67
62
|
|
68
63
|
dynamicProps.openIndex = -1;
|
package/umd/masking/methods.js
CHANGED
@@ -36,14 +36,14 @@
|
|
36
36
|
}); // 不同的key用不同的容器挂载
|
37
37
|
|
38
38
|
var id = "_" + (containerId || 'ARCO_MASKING') + "_DIV_" + (config.key || '') + "_";
|
39
|
-
|
40
|
-
var
|
41
|
-
div = _appendElementById.child;
|
42
|
-
|
39
|
+
var existedDiv = baseProps.unmountOnExit ? null : document.getElementById(id);
|
40
|
+
var div = existedDiv || (0, _mobileUtils.appendElementById)(id, baseProps.getContainer).child;
|
43
41
|
var leaving = false;
|
44
42
|
|
45
|
-
var _ReactDOMRender = new _render.ReactDOMRender(Component, div, context),
|
46
|
-
render = _ReactDOMRender.render
|
43
|
+
var _ReactDOMRender = new _render.ReactDOMRender(Component, div, context, id, existedDiv ? _render.renderRootCache[id] : undefined),
|
44
|
+
render = _ReactDOMRender.render,
|
45
|
+
unmount = _ReactDOMRender.unmount,
|
46
|
+
setRootCache = _ReactDOMRender.setRootCache;
|
47
47
|
|
48
48
|
var dynamicProps = (0, _extends2.default)({}, baseProps, {
|
49
49
|
getContainer: function getContainer() {
|
@@ -68,11 +68,17 @@
|
|
68
68
|
baseProps.onClose && baseProps.onClose(scene);
|
69
69
|
|
70
70
|
if (baseProps.unmountOnExit) {
|
71
|
+
unmount();
|
71
72
|
(0, _mobileUtils.removeElement)(div);
|
72
73
|
}
|
73
74
|
};
|
74
75
|
|
75
76
|
render(dynamicProps);
|
77
|
+
|
78
|
+
if (!baseProps.unmountOnExit) {
|
79
|
+
setRootCache();
|
80
|
+
}
|
81
|
+
|
76
82
|
(0, _mobileUtils.nextTick)(function () {
|
77
83
|
if (leaving) return;
|
78
84
|
dynamicProps.visible = true;
|
package/umd/picker/index.js
CHANGED
@@ -127,12 +127,13 @@
|
|
127
127
|
|
128
128
|
(_pickerViewRef$curren6 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren6.scrollToCurrentIndex();
|
129
129
|
(0, _mobileUtils.nextTick)(function () {
|
130
|
-
var _pickerViewRef$curren7;
|
130
|
+
var _pickerViewRef$curren7, _pickerViewRef$curren8;
|
131
131
|
|
132
132
|
var val = ((_pickerViewRef$curren7 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren7.getAllColumnValues()) || scrollValueRef.current || [];
|
133
|
+
var selectedData = ((_pickerViewRef$curren8 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren8.getAllColumnData()) || [];
|
133
134
|
|
134
135
|
if (onOk) {
|
135
|
-
onOk(val);
|
136
|
+
onOk(val, selectedData);
|
136
137
|
}
|
137
138
|
|
138
139
|
if (onChange) {
|
package/umd/picker/type.d.ts
CHANGED
@@ -81,7 +81,7 @@ export interface PickerProps extends Omit<PopupProps, 'visible' | 'close' | 'chi
|
|
81
81
|
* 点击选中时执行的回调
|
82
82
|
* @en Callback when clicking on Ok
|
83
83
|
*/
|
84
|
-
onOk?: (value: ValueType[]) => void;
|
84
|
+
onOk?: (value: ValueType[], data: PickerData[]) => void;
|
85
85
|
/**
|
86
86
|
* 点击取消时执行的回调
|
87
87
|
* @en Callback when clicking to cancel
|
@@ -19,6 +19,7 @@ export interface CascaderRef {
|
|
19
19
|
getCellMovingStatus: () => PickerCellMovingStatus[];
|
20
20
|
scrollToCurrentIndex: () => void;
|
21
21
|
getAllCellsValue: () => ValueType[];
|
22
|
+
getAllCellsData: () => PickerData[];
|
22
23
|
}
|
23
24
|
declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<CascaderRef>>;
|
24
25
|
export default Cascader;
|
@@ -45,7 +45,8 @@
|
|
45
45
|
return {
|
46
46
|
getCellMovingStatus: getCellMovingStatus,
|
47
47
|
scrollToCurrentIndex: scrollToCurrentIndex,
|
48
|
-
getAllCellsValue: getAllCellsValue
|
48
|
+
getAllCellsValue: getAllCellsValue,
|
49
|
+
getAllCellsData: getAllCellsData
|
49
50
|
};
|
50
51
|
});
|
51
52
|
|
@@ -67,6 +68,12 @@
|
|
67
68
|
});
|
68
69
|
}
|
69
70
|
|
71
|
+
function getAllCellsData() {
|
72
|
+
return pickerCellsRef.current.map(function (cell) {
|
73
|
+
return cell.getCurrentCellData();
|
74
|
+
});
|
75
|
+
}
|
76
|
+
|
70
77
|
function _onValueChange(value, index, newData) {
|
71
78
|
var children = (0, _mobileUtils.arrayTreeFilter)(data, function (item, level) {
|
72
79
|
return level <= index && item.value === value[level];
|
@@ -22,6 +22,7 @@ export interface PickerCellRef {
|
|
22
22
|
movingStatus: PickerCellMovingStatus;
|
23
23
|
scrollToCurrentIndex: () => void;
|
24
24
|
getCurrentCellValue: () => ValueType;
|
25
|
+
getCurrentCellData: () => PickerData;
|
25
26
|
}
|
26
27
|
declare const PickerCell: React.ForwardRefExoticComponent<PickerCellProps & React.RefAttributes<PickerCellRef>>;
|
27
28
|
export default PickerCell;
|
@@ -311,6 +311,10 @@
|
|
311
311
|
return (_data$currentIndex = data[currentIndex]) == null ? void 0 : _data$currentIndex.value;
|
312
312
|
}
|
313
313
|
|
314
|
+
function getCurrentCellData() {
|
315
|
+
return data[currentIndex];
|
316
|
+
}
|
317
|
+
|
314
318
|
function _clearTimer() {
|
315
319
|
timeRef.current && clearTimeout(timeRef.current);
|
316
320
|
timeRef.current = null;
|
@@ -376,7 +380,8 @@
|
|
376
380
|
return {
|
377
381
|
movingStatus: movingStatusRef.current,
|
378
382
|
scrollToCurrentIndex: scrollToCurrentIndex,
|
379
|
-
getCurrentCellValue: getCurrentCellValue
|
383
|
+
getCurrentCellValue: getCurrentCellValue,
|
384
|
+
getCurrentCellData: getCurrentCellData
|
380
385
|
};
|
381
386
|
});
|
382
387
|
return !hideEmptyCols || data && data.length ? /*#__PURE__*/_react.default.createElement("div", {
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
2
2
|
import MultiPicker from '../picker-view/components/multi-picker';
|
3
3
|
import PickerCell from '../picker-view/components/picker-cell';
|
4
4
|
import Cascader from '../picker-view/components/cascader';
|
5
|
-
import { PickerViewProps, ValueType, PickerCellMovingStatus } from './type';
|
5
|
+
import { PickerViewProps, ValueType, PickerData, PickerCellMovingStatus } from './type';
|
6
6
|
export * from './type';
|
7
7
|
export { MultiPicker, PickerCell, Cascader };
|
8
8
|
export interface PickerViewRef {
|
@@ -41,6 +41,11 @@ export interface PickerViewRef {
|
|
41
41
|
* @en Jump directly to the current most recent line (will break scrolling when called)
|
42
42
|
*/
|
43
43
|
scrollToCurrentIndex: () => void;
|
44
|
+
/**
|
45
|
+
* 获取所有列的 data
|
46
|
+
* @en Get all column data
|
47
|
+
*/
|
48
|
+
getAllColumnData: () => PickerData[];
|
44
49
|
}
|
45
50
|
declare const _default: React.ForwardRefExoticComponent<PickerViewProps & React.RefAttributes<PickerViewRef>> & {
|
46
51
|
displayName?: string | undefined;
|
package/umd/picker-view/index.js
CHANGED
@@ -41,6 +41,14 @@
|
|
41
41
|
|
42
42
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
43
43
|
|
44
|
+
var isArray = function isArray(dt) {
|
45
|
+
return dt ? Array.isArray(dt[0]) : false;
|
46
|
+
};
|
47
|
+
|
48
|
+
var isStrOrNum = function isStrOrNum(dt) {
|
49
|
+
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
50
|
+
};
|
51
|
+
|
44
52
|
var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
45
53
|
var _props$className = props.className,
|
46
54
|
className = _props$className === void 0 ? '' : _props$className,
|
@@ -90,14 +98,6 @@
|
|
90
98
|
var innerData = (0, _react.useMemo)(function () {
|
91
99
|
var newData;
|
92
100
|
|
93
|
-
var isArray = function isArray(dt) {
|
94
|
-
return dt ? Array.isArray(dt[0]) : false;
|
95
|
-
};
|
96
|
-
|
97
|
-
var isStrOrNum = function isStrOrNum(dt) {
|
98
|
-
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
99
|
-
};
|
100
|
-
|
101
101
|
if (isArray(data)) {
|
102
102
|
if (isStrOrNum(data)) {
|
103
103
|
newData = data.map(function (item) {
|
@@ -131,6 +131,17 @@
|
|
131
131
|
});
|
132
132
|
};
|
133
133
|
|
134
|
+
var getAllColumnData = function getAllColumnData() {
|
135
|
+
var _cascaderRef$current2;
|
136
|
+
|
137
|
+
var curValues = cascade ? ((_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.getAllCellsData()) || [] : pickerCellsRef.current.map(function (cell) {
|
138
|
+
return cell.getCurrentCellData();
|
139
|
+
});
|
140
|
+
return curValues.filter(function (v) {
|
141
|
+
return v !== undefined;
|
142
|
+
});
|
143
|
+
};
|
144
|
+
|
134
145
|
function getColumnValue(index) {
|
135
146
|
if (index === void 0) {
|
136
147
|
index = 0;
|
@@ -140,18 +151,18 @@
|
|
140
151
|
}
|
141
152
|
|
142
153
|
function getCellMovingStatus() {
|
143
|
-
var _cascaderRef$
|
154
|
+
var _cascaderRef$current3;
|
144
155
|
|
145
|
-
return cascade ? ((_cascaderRef$
|
156
|
+
return cascade ? ((_cascaderRef$current3 = cascaderRef.current) == null ? void 0 : _cascaderRef$current3.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
|
146
157
|
return cell.movingStatus;
|
147
158
|
});
|
148
159
|
}
|
149
160
|
|
150
161
|
function scrollToCurrentIndex() {
|
151
162
|
if (cascade) {
|
152
|
-
var _cascaderRef$
|
163
|
+
var _cascaderRef$current4;
|
153
164
|
|
154
|
-
(_cascaderRef$
|
165
|
+
(_cascaderRef$current4 = cascaderRef.current) == null ? void 0 : _cascaderRef$current4.scrollToCurrentIndex();
|
155
166
|
return;
|
156
167
|
}
|
157
168
|
|
@@ -168,7 +179,8 @@
|
|
168
179
|
getColumnValue: getColumnValue,
|
169
180
|
updateLayout: updateLayout,
|
170
181
|
resetValue: resetValue,
|
171
|
-
scrollToCurrentIndex: scrollToCurrentIndex
|
182
|
+
scrollToCurrentIndex: scrollToCurrentIndex,
|
183
|
+
getAllColumnData: getAllColumnData
|
172
184
|
};
|
173
185
|
});
|
174
186
|
|
package/umd/skeleton/type.d.ts
CHANGED
package/umd/skeleton/type.js
CHANGED
@@ -1,19 +1,17 @@
|
|
1
1
|
(function (global, factory) {
|
2
2
|
if (typeof define === "function" && define.amd) {
|
3
|
-
define(["exports"
|
3
|
+
define(["exports"], factory);
|
4
4
|
} else if (typeof exports !== "undefined") {
|
5
|
-
factory(exports
|
5
|
+
factory(exports);
|
6
6
|
} else {
|
7
7
|
var mod = {
|
8
8
|
exports: {}
|
9
9
|
};
|
10
|
-
factory(mod.exports
|
10
|
+
factory(mod.exports);
|
11
11
|
global.type = mod.exports;
|
12
12
|
}
|
13
|
-
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports
|
13
|
+
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {
|
14
14
|
"use strict";
|
15
15
|
|
16
16
|
_exports.__esModule = true;
|
17
|
-
_exports.BaseProps = _helpers.BaseProps;
|
18
|
-
_exports.SimpleBaseProps = _helpers.SimpleBaseProps;
|
19
17
|
});
|
package/umd/tabs/tab-cell.js
CHANGED
@@ -94,14 +94,18 @@
|
|
94
94
|
return tabs.length < overflowThreshold ? tabBarArrange : 'start';
|
95
95
|
}),
|
96
96
|
originArrange = _useState3[0],
|
97
|
-
setOriginArrange = _useState3[1];
|
97
|
+
setOriginArrange = _useState3[1];
|
98
98
|
|
99
|
+
var _useState4 = (0, _react.useState)(false),
|
100
|
+
forceUpdate = _useState4[0],
|
101
|
+
setForceUpdate = _useState4[1]; // 默认tab小于overflowThreshold个时不开启加载前隐藏,大于overflowThreshold个时开启
|
99
102
|
|
100
|
-
|
103
|
+
|
104
|
+
var _useState5 = (0, _react.useState)(function () {
|
101
105
|
return hideTabBarBeforeMounted === void 0 ? tabs.length < overflowThreshold || activeIndex === 0 : !hideTabBarBeforeMounted;
|
102
106
|
}),
|
103
|
-
showTab =
|
104
|
-
setShowTab =
|
107
|
+
showTab = _useState5[0],
|
108
|
+
setShowTab = _useState5[1];
|
105
109
|
|
106
110
|
var isVertical = tabDirection === 'vertical';
|
107
111
|
var isLine = (type || '').indexOf('line') !== -1;
|
@@ -116,6 +120,15 @@
|
|
116
120
|
var hasDivider = tabBarHasDivider === void 0 ? isLine : tabBarHasDivider;
|
117
121
|
var wrapSize = isVertical ? wrapWidth : wrapHeight;
|
118
122
|
var system = (0, _helpers.useSystem)();
|
123
|
+
|
124
|
+
var updateScrollPosition = function updateScrollPosition() {
|
125
|
+
if (wrapSize && tabBarScrollChance !== 'none') {
|
126
|
+
setTimeout(function () {
|
127
|
+
scrollToCenter();
|
128
|
+
}, tabBarScrollChance === 'after-jump' ? Math.max(transitionDuration || 0, duration || 0) : 0);
|
129
|
+
}
|
130
|
+
};
|
131
|
+
|
119
132
|
(0, _react.useEffect)(function () {
|
120
133
|
(0, _mobileUtils.nextTick)(function () {
|
121
134
|
setCellOverflow(); // dom出来之后originArrange置空,交由tabBarArrange控制
|
@@ -135,31 +148,16 @@
|
|
135
148
|
(_underlineRef$current = underlineRef.current) == null ? void 0 : _underlineRef$current.resetUnderlineStyle();
|
136
149
|
});
|
137
150
|
}, [activeIndex, tabs, getCellPadding('left'), getCellPadding('right'), tabBarGutter, tabDirection]);
|
138
|
-
(0, _react.useImperativeHandle)(ref, function () {
|
139
|
-
return {
|
140
|
-
dom: domRef.current,
|
141
|
-
scrollTo: scrollTo,
|
142
|
-
scrollToCenter: scrollToCenter,
|
143
|
-
hasOverflow: hasOverflow,
|
144
|
-
setCaterpillarAnimate: function setCaterpillarAnimate(ratio) {
|
145
|
-
var _underlineRef$current2;
|
146
|
-
|
147
|
-
return (_underlineRef$current2 = underlineRef.current) == null ? void 0 : _underlineRef$current2.setCaterpillarAnimate(ratio);
|
148
|
-
},
|
149
|
-
resetUnderlineStyle: function resetUnderlineStyle() {
|
150
|
-
var _underlineRef$current3;
|
151
|
-
|
152
|
-
return (_underlineRef$current3 = underlineRef.current) == null ? void 0 : _underlineRef$current3.resetUnderlineStyle();
|
153
|
-
}
|
154
|
-
};
|
155
|
-
}, [scrollToCenter, scrollTo, hasOverflow]);
|
156
151
|
(0, _react.useEffect)(function () {
|
157
|
-
|
158
|
-
setTimeout(function () {
|
159
|
-
scrollToCenter();
|
160
|
-
}, tabBarScrollChance === 'after-jump' ? Math.max(transitionDuration || 0, duration || 0) : 0);
|
161
|
-
}
|
152
|
+
updateScrollPosition();
|
162
153
|
}, [activeIndex, wrapSize]);
|
154
|
+
(0, _react.useEffect)(function () {
|
155
|
+
var _underlineRef$current2;
|
156
|
+
|
157
|
+
setCellOverflow();
|
158
|
+
(_underlineRef$current2 = underlineRef.current) == null ? void 0 : _underlineRef$current2.resetUnderlineStyle();
|
159
|
+
updateScrollPosition();
|
160
|
+
}, [forceUpdate]);
|
163
161
|
(0, _react.useEffect)(function () {
|
164
162
|
tabBarScrollChance !== 'none' && scrollToCenter(true); // TabCell左右可滚动时,防止触发父级touchmove事件导致滚不动
|
165
163
|
// @en When the TabCell can be scrolled left and right, prevent the parent touchmove event from being triggered which result in inability to scroll
|
@@ -300,7 +298,7 @@
|
|
300
298
|
return typeof tab === 'string' ? tab : tab.title;
|
301
299
|
}
|
302
300
|
|
303
|
-
function renderTabUnderline() {
|
301
|
+
var renderTabUnderline = function renderTabUnderline() {
|
304
302
|
if (!showUnderline || !isLine) {
|
305
303
|
return null;
|
306
304
|
}
|
@@ -331,7 +329,7 @@
|
|
331
329
|
getTabCenterLeft: getTabCenterLeft,
|
332
330
|
getTabRect: getTabRect
|
333
331
|
}, lineProps));
|
334
|
-
}
|
332
|
+
};
|
335
333
|
|
336
334
|
var cellInner = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, tabs.map(function (tab, index) {
|
337
335
|
return /*#__PURE__*/_react.default.createElement("div", {
|
@@ -374,6 +372,33 @@
|
|
374
372
|
}
|
375
373
|
}) : null);
|
376
374
|
|
375
|
+
var _updateLayout = function updateLayout() {
|
376
|
+
setForceUpdate(function (val) {
|
377
|
+
return !val;
|
378
|
+
});
|
379
|
+
};
|
380
|
+
|
381
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
382
|
+
return {
|
383
|
+
dom: domRef.current,
|
384
|
+
scrollTo: scrollTo,
|
385
|
+
scrollToCenter: scrollToCenter,
|
386
|
+
hasOverflow: hasOverflow,
|
387
|
+
setCaterpillarAnimate: function setCaterpillarAnimate(ratio) {
|
388
|
+
var _underlineRef$current3;
|
389
|
+
|
390
|
+
return (_underlineRef$current3 = underlineRef.current) == null ? void 0 : _underlineRef$current3.setCaterpillarAnimate(ratio);
|
391
|
+
},
|
392
|
+
resetUnderlineStyle: function resetUnderlineStyle() {
|
393
|
+
var _underlineRef$current4;
|
394
|
+
|
395
|
+
return (_underlineRef$current4 = underlineRef.current) == null ? void 0 : _underlineRef$current4.resetUnderlineStyle();
|
396
|
+
},
|
397
|
+
updateLayout: function updateLayout() {
|
398
|
+
return _updateLayout();
|
399
|
+
}
|
400
|
+
};
|
401
|
+
}, [scrollToCenter, scrollTo, hasOverflow]);
|
377
402
|
return /*#__PURE__*/_react.default.createElement("div", {
|
378
403
|
className: (0, _mobileUtils.cls)(prefix + "-container-wrap", tabDirection, "type-" + type, tabBarClass, system),
|
379
404
|
style: tabBarStyle
|
package/umd/tabs/type.d.ts
CHANGED
@@ -565,6 +565,11 @@ export interface TabCellRef {
|
|
565
565
|
* @en Recalculate underline style
|
566
566
|
*/
|
567
567
|
resetUnderlineStyle: () => void;
|
568
|
+
/**
|
569
|
+
* 强制更新 tab-cell
|
570
|
+
* @en Force update tab-cell
|
571
|
+
*/
|
572
|
+
updateLayout: () => void;
|
568
573
|
}
|
569
574
|
export interface TabPaneProps extends Pick<TabsProps, 'duration' | 'transitionDuration' | 'lazyloadCount' | 'hideContentStyle' | 'renderHideContent' | 'mode' | 'tabPaneClass' | 'tabPaneStyle' | 'tabPaneExtra' | 'getScrollContainer' | 'scrollThrottle' | 'scrollOffset' | 'goLastWhenScrollBottom' | 'scrollVertical' | 'translateZ' | 'fullScreen' | 'autoHeight' | 'onScroll' | 'swipeEnergySaving'> {
|
570
575
|
prefixCls?: string;
|