antd-mobile 5.29.1 → 5.31.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/2x/README.md +1 -1
- package/2x/bundle/antd-mobile.cjs.development.js +3919 -3845
- package/2x/bundle/antd-mobile.cjs.js +9 -9
- package/2x/bundle/antd-mobile.es.development.js +3907 -3833
- package/2x/bundle/antd-mobile.es.js +7782 -7731
- package/2x/bundle/antd-mobile.umd.development.js +3919 -3845
- package/2x/bundle/antd-mobile.umd.js +9 -9
- package/2x/bundle/style.css +4 -2
- package/2x/cjs/components/avatar/avatar.js +1 -1
- package/2x/cjs/components/button/button.d.ts +2 -2
- package/2x/cjs/components/cascader/cascader.js +1 -6
- package/2x/cjs/components/cascader-view/cascader-view.d.ts +1 -0
- package/2x/cjs/components/cascader-view/cascader-view.js +2 -1
- package/2x/cjs/components/collapse/collapse.js +3 -1
- package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
- package/2x/cjs/components/date-picker/date-picker-utils.d.ts +1 -1
- package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +1 -1
- package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/2x/cjs/components/date-picker/index.d.ts +1 -1
- package/2x/cjs/components/dropdown/dropdown.d.ts +3 -0
- package/2x/cjs/components/dropdown/dropdown.js +4 -1
- package/2x/cjs/components/dropdown/index.d.ts +1 -0
- package/2x/cjs/components/ellipsis/ellipsis.d.ts +2 -2
- package/2x/cjs/components/ellipsis/ellipsis.js +18 -18
- package/2x/cjs/components/footer/footer.css +1 -1
- package/2x/cjs/components/form/form-subscribe.js +4 -1
- package/2x/cjs/components/form/form.js +1 -1
- package/2x/cjs/components/form/index.d.ts +1 -1
- package/2x/cjs/components/image/image.d.ts +1 -1
- package/2x/cjs/components/image/image.js +10 -0
- package/2x/cjs/components/image-uploader/image-uploader.js +4 -5
- package/2x/cjs/components/input/input.d.ts +2 -4
- package/2x/cjs/components/list/list-item.d.ts +1 -1
- package/2x/cjs/components/notice-bar/notice-bar.d.ts +2 -0
- package/2x/cjs/components/notice-bar/notice-bar.js +2 -1
- package/2x/cjs/components/page-indicator/page-indicator.css +1 -1
- package/2x/cjs/components/picker-view/picker-view.d.ts +2 -2
- package/2x/cjs/components/popup/popup.d.ts +1 -0
- package/2x/cjs/components/popup/popup.js +29 -16
- package/2x/cjs/components/pull-to-refresh/pull-to-refresh.js +4 -2
- package/2x/cjs/components/search-bar/search-bar.d.ts +2 -2
- package/2x/cjs/components/search-bar/search-bar.js +6 -2
- package/2x/cjs/components/slider/slider.js +6 -4
- package/2x/cjs/components/steps/steps.css +2 -0
- package/2x/cjs/components/swiper/swiper.js +21 -15
- package/2x/cjs/components/text-area/text-area.d.ts +1 -1
- package/2x/cjs/components/text-area/text-area.js +5 -3
- package/2x/cjs/utils/reduce-and-restore-motion.js +1 -1
- package/2x/es/components/avatar/avatar.js +1 -1
- package/2x/es/components/button/button.d.ts +2 -2
- package/2x/es/components/cascader/cascader.js +1 -6
- package/2x/es/components/cascader-view/cascader-view.d.ts +1 -0
- package/2x/es/components/cascader-view/cascader-view.js +2 -1
- package/2x/es/components/collapse/collapse.js +3 -1
- package/2x/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
- package/2x/es/components/date-picker/date-picker-utils.d.ts +1 -1
- package/2x/es/components/date-picker/date-picker-week-utils.d.ts +1 -1
- package/2x/es/components/date-picker/date-picker.d.ts +1 -1
- package/2x/es/components/date-picker/index.d.ts +1 -1
- package/2x/es/components/dropdown/dropdown.d.ts +3 -0
- package/2x/es/components/dropdown/dropdown.js +4 -1
- package/2x/es/components/dropdown/index.d.ts +1 -0
- package/2x/es/components/ellipsis/ellipsis.d.ts +2 -2
- package/2x/es/components/ellipsis/ellipsis.js +18 -18
- package/2x/es/components/footer/footer.css +1 -1
- package/2x/es/components/form/form-subscribe.js +4 -1
- package/2x/es/components/form/form.js +1 -1
- package/2x/es/components/form/index.d.ts +1 -1
- package/2x/es/components/image/image.d.ts +1 -1
- package/2x/es/components/image/image.js +11 -1
- package/2x/es/components/image-uploader/image-uploader.js +4 -5
- package/2x/es/components/input/input.d.ts +2 -4
- package/2x/es/components/list/list-item.d.ts +1 -1
- package/2x/es/components/notice-bar/notice-bar.d.ts +2 -0
- package/2x/es/components/notice-bar/notice-bar.js +2 -1
- package/2x/es/components/page-indicator/page-indicator.css +1 -1
- package/2x/es/components/picker-view/picker-view.d.ts +2 -2
- package/2x/es/components/popup/popup.d.ts +1 -0
- package/2x/es/components/popup/popup.js +29 -16
- package/2x/es/components/pull-to-refresh/pull-to-refresh.js +4 -2
- package/2x/es/components/search-bar/search-bar.d.ts +2 -2
- package/2x/es/components/search-bar/search-bar.js +6 -2
- package/2x/es/components/slider/slider.js +6 -4
- package/2x/es/components/steps/steps.css +2 -0
- package/2x/es/components/swiper/swiper.js +22 -16
- package/2x/es/components/text-area/text-area.d.ts +1 -1
- package/2x/es/components/text-area/text-area.js +4 -3
- package/2x/es/utils/reduce-and-restore-motion.js +1 -1
- package/2x/package.json +10 -10
- package/README.md +1 -1
- package/bundle/antd-mobile.cjs.development.js +3919 -3845
- package/bundle/antd-mobile.cjs.js +9 -9
- package/bundle/antd-mobile.compatible.umd.js +1 -1
- package/bundle/antd-mobile.es.development.js +3907 -3833
- package/bundle/antd-mobile.es.js +7782 -7731
- package/bundle/antd-mobile.umd.development.js +3919 -3845
- package/bundle/antd-mobile.umd.js +9 -9
- package/bundle/style.css +1 -1
- package/cjs/components/avatar/avatar.js +1 -1
- package/cjs/components/button/button.d.ts +2 -2
- package/cjs/components/cascader/cascader.js +1 -6
- package/cjs/components/cascader-view/cascader-view.d.ts +1 -0
- package/cjs/components/cascader-view/cascader-view.js +2 -1
- package/cjs/components/collapse/collapse.js +3 -1
- package/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
- package/cjs/components/date-picker/date-picker-utils.d.ts +1 -1
- package/cjs/components/date-picker/date-picker-week-utils.d.ts +1 -1
- package/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/cjs/components/date-picker/index.d.ts +1 -1
- package/cjs/components/dropdown/dropdown.d.ts +3 -0
- package/cjs/components/dropdown/dropdown.js +4 -1
- package/cjs/components/dropdown/index.d.ts +1 -0
- package/cjs/components/ellipsis/ellipsis.d.ts +2 -2
- package/cjs/components/ellipsis/ellipsis.js +18 -18
- package/cjs/components/footer/footer.css +1 -1
- package/cjs/components/form/form-subscribe.js +4 -1
- package/cjs/components/form/form.js +1 -1
- package/cjs/components/form/index.d.ts +1 -1
- package/cjs/components/image/image.d.ts +1 -1
- package/cjs/components/image/image.js +10 -0
- package/cjs/components/image-uploader/image-uploader.js +4 -5
- package/cjs/components/input/input.d.ts +2 -4
- package/cjs/components/list/list-item.d.ts +1 -1
- package/cjs/components/notice-bar/notice-bar.d.ts +2 -0
- package/cjs/components/notice-bar/notice-bar.js +2 -1
- package/cjs/components/page-indicator/page-indicator.css +1 -1
- package/cjs/components/picker-view/picker-view.d.ts +2 -2
- package/cjs/components/popup/popup.d.ts +1 -0
- package/cjs/components/popup/popup.js +29 -16
- package/cjs/components/pull-to-refresh/pull-to-refresh.js +4 -2
- package/cjs/components/search-bar/search-bar.d.ts +2 -2
- package/cjs/components/search-bar/search-bar.js +6 -2
- package/cjs/components/slider/slider.js +6 -4
- package/cjs/components/steps/steps.css +2 -0
- package/cjs/components/swiper/swiper.js +21 -15
- package/cjs/components/text-area/text-area.d.ts +1 -1
- package/cjs/components/text-area/text-area.js +5 -3
- package/cjs/utils/reduce-and-restore-motion.js +1 -1
- package/es/components/avatar/avatar.js +1 -1
- package/es/components/button/button.d.ts +2 -2
- package/es/components/cascader/cascader.js +1 -6
- package/es/components/cascader-view/cascader-view.d.ts +1 -0
- package/es/components/cascader-view/cascader-view.js +2 -1
- package/es/components/collapse/collapse.js +3 -1
- package/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
- package/es/components/date-picker/date-picker-utils.d.ts +1 -1
- package/es/components/date-picker/date-picker-week-utils.d.ts +1 -1
- package/es/components/date-picker/date-picker.d.ts +1 -1
- package/es/components/date-picker/index.d.ts +1 -1
- package/es/components/dropdown/dropdown.d.ts +3 -0
- package/es/components/dropdown/dropdown.js +4 -1
- package/es/components/dropdown/index.d.ts +1 -0
- package/es/components/ellipsis/ellipsis.d.ts +2 -2
- package/es/components/ellipsis/ellipsis.js +18 -18
- package/es/components/footer/footer.css +1 -1
- package/es/components/form/form-subscribe.js +4 -1
- package/es/components/form/form.js +1 -1
- package/es/components/form/index.d.ts +1 -1
- package/es/components/image/image.d.ts +1 -1
- package/es/components/image/image.js +11 -1
- package/es/components/image-uploader/image-uploader.js +4 -5
- package/es/components/input/input.d.ts +2 -4
- package/es/components/list/list-item.d.ts +1 -1
- package/es/components/notice-bar/notice-bar.d.ts +2 -0
- package/es/components/notice-bar/notice-bar.js +2 -1
- package/es/components/page-indicator/page-indicator.css +1 -1
- package/es/components/picker-view/picker-view.d.ts +2 -2
- package/es/components/popup/popup.d.ts +1 -0
- package/es/components/popup/popup.js +29 -16
- package/es/components/pull-to-refresh/pull-to-refresh.js +4 -2
- package/es/components/search-bar/search-bar.d.ts +2 -2
- package/es/components/search-bar/search-bar.js +6 -2
- package/es/components/slider/slider.js +6 -4
- package/es/components/steps/steps.css +2 -0
- package/es/components/swiper/swiper.js +22 -16
- package/es/components/text-area/text-area.d.ts +1 -1
- package/es/components/text-area/text-area.js +4 -3
- package/es/utils/reduce-and-restore-motion.js +1 -1
- package/package.json +10 -10
- package/umd/antd-mobile.js +1 -1
|
@@ -13,8 +13,10 @@ import { CloseOutline } from 'antd-mobile-icons';
|
|
|
13
13
|
import { defaultPopupBaseProps } from './popup-base-props';
|
|
14
14
|
import { useInnerVisible } from '../../utils/use-inner-visible';
|
|
15
15
|
import { useConfig } from '../config-provider';
|
|
16
|
+
import { useDrag } from '@use-gesture/react';
|
|
16
17
|
const classPrefix = `adm-popup`;
|
|
17
18
|
const defaultProps = Object.assign(Object.assign({}, defaultPopupBaseProps), {
|
|
19
|
+
closeOnSwipe: false,
|
|
18
20
|
position: 'bottom'
|
|
19
21
|
});
|
|
20
22
|
export const Popup = p => {
|
|
@@ -53,14 +55,27 @@ export const Popup = p => {
|
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
});
|
|
58
|
+
const bind = useDrag(({
|
|
59
|
+
swipe: [, swipeY]
|
|
60
|
+
}) => {
|
|
61
|
+
var _a;
|
|
62
|
+
if (!props.closeOnSwipe) return;
|
|
63
|
+
if (swipeY === 1 && props.position === 'bottom' || swipeY === -1 && props.position === 'top') {
|
|
64
|
+
(_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
65
|
+
}
|
|
66
|
+
}, {
|
|
67
|
+
axis: 'y',
|
|
68
|
+
enabled: ['top', 'bottom'].includes(props.position)
|
|
69
|
+
});
|
|
56
70
|
const maskVisible = useInnerVisible(active && props.visible);
|
|
57
|
-
const node = withStopPropagation(props.stopPropagation, withNativeProps(props, React.createElement("div", {
|
|
71
|
+
const node = withStopPropagation(props.stopPropagation, withNativeProps(props, React.createElement("div", Object.assign({
|
|
58
72
|
className: classPrefix,
|
|
59
73
|
onClick: props.onClick,
|
|
60
74
|
style: {
|
|
61
|
-
display: active ? undefined : 'none'
|
|
75
|
+
display: active ? undefined : 'none',
|
|
76
|
+
touchAction: ['top', 'bottom'].includes(props.position) ? 'none' : 'auto'
|
|
62
77
|
}
|
|
63
|
-
}, props.mask && React.createElement(Mask, {
|
|
78
|
+
}, bind()), props.mask && React.createElement(Mask, {
|
|
64
79
|
visible: maskVisible,
|
|
65
80
|
forceRender: props.forceRender,
|
|
66
81
|
destroyOnClose: props.destroyOnClose,
|
|
@@ -79,19 +94,17 @@ export const Popup = p => {
|
|
|
79
94
|
className: bodyCls,
|
|
80
95
|
style: Object.assign(Object.assign({}, props.bodyStyle), {
|
|
81
96
|
transform: percent.to(v => {
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return `translate(${v}%, 0)`;
|
|
94
|
-
}
|
|
97
|
+
if (props.position === 'bottom') {
|
|
98
|
+
return `translate(0, ${v}%)`;
|
|
99
|
+
}
|
|
100
|
+
if (props.position === 'top') {
|
|
101
|
+
return `translate(0, -${v}%)`;
|
|
102
|
+
}
|
|
103
|
+
if (props.position === 'left') {
|
|
104
|
+
return `translate(-${v}%, 0)`;
|
|
105
|
+
}
|
|
106
|
+
if (props.position === 'right') {
|
|
107
|
+
return `translate(${v}%, 0)`;
|
|
95
108
|
}
|
|
96
109
|
return 'none';
|
|
97
110
|
})
|
|
@@ -40,6 +40,7 @@ export const PullToRefresh = p => {
|
|
|
40
40
|
config: {
|
|
41
41
|
tension: 300,
|
|
42
42
|
friction: 30,
|
|
43
|
+
round: true,
|
|
43
44
|
clamp: true
|
|
44
45
|
}
|
|
45
46
|
}));
|
|
@@ -99,7 +100,8 @@ export const PullToRefresh = p => {
|
|
|
99
100
|
return;
|
|
100
101
|
}
|
|
101
102
|
const [, y] = state.movement;
|
|
102
|
-
|
|
103
|
+
const parsedY = Math.ceil(y);
|
|
104
|
+
if (state.first && parsedY > 0) {
|
|
103
105
|
const target = state.event.target;
|
|
104
106
|
if (!target || !(target instanceof Element)) return;
|
|
105
107
|
let scrollParent = getScrollParent(target);
|
|
@@ -124,7 +126,7 @@ export const PullToRefresh = p => {
|
|
|
124
126
|
event.preventDefault();
|
|
125
127
|
}
|
|
126
128
|
event.stopPropagation();
|
|
127
|
-
const height = Math.max(rubberbandIfOutOfBounds(
|
|
129
|
+
const height = Math.max(rubberbandIfOutOfBounds(parsedY, 0, 0, headHeight * 5, 0.5), 0);
|
|
128
130
|
api.start({
|
|
129
131
|
height
|
|
130
132
|
});
|
|
@@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import { InputRef, InputProps } from '../input';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
4
|
export declare type SearchBarRef = InputRef;
|
|
5
|
-
export declare type SearchBarProps = Pick<InputProps, 'onFocus' | 'onBlur' | 'onClear'> & {
|
|
5
|
+
export declare type SearchBarProps = Pick<InputProps, 'onFocus' | 'onBlur' | 'onClear' | 'onCompositionStart' | 'onCompositionEnd'> & {
|
|
6
6
|
value?: string;
|
|
7
7
|
defaultValue?: string;
|
|
8
8
|
maxLength?: number;
|
|
@@ -17,7 +17,7 @@ export declare type SearchBarProps = Pick<InputProps, 'onFocus' | 'onBlur' | 'on
|
|
|
17
17
|
onChange?: (val: string) => void;
|
|
18
18
|
onCancel?: () => void;
|
|
19
19
|
} & NativeProps<'--background' | '--border-radius' | '--placeholder-color' | '--height' | '--padding-left'>;
|
|
20
|
-
export declare const SearchBar: React.ForwardRefExoticComponent<Pick<InputProps, "onFocus" | "onBlur" | "onClear"> & {
|
|
20
|
+
export declare const SearchBar: React.ForwardRefExoticComponent<Pick<InputProps, "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "onClear"> & {
|
|
21
21
|
value?: string | undefined;
|
|
22
22
|
defaultValue?: string | undefined;
|
|
23
23
|
maxLength?: number | undefined;
|
|
@@ -110,11 +110,15 @@ export const SearchBar = forwardRef((p, ref) => {
|
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
"aria-label": locale.SearchBar.name,
|
|
113
|
-
onCompositionStart:
|
|
113
|
+
onCompositionStart: e => {
|
|
114
|
+
var _a;
|
|
114
115
|
composingRef.current = true;
|
|
116
|
+
(_a = props.onCompositionStart) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
115
117
|
},
|
|
116
|
-
onCompositionEnd:
|
|
118
|
+
onCompositionEnd: e => {
|
|
119
|
+
var _a;
|
|
117
120
|
composingRef.current = false;
|
|
121
|
+
(_a = props.onCompositionEnd) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
118
122
|
}
|
|
119
123
|
})), renderCancelButton()));
|
|
120
124
|
});
|
|
@@ -78,13 +78,14 @@ export const Slider = p => {
|
|
|
78
78
|
const pointList = useMemo(() => {
|
|
79
79
|
if (marks) {
|
|
80
80
|
return Object.keys(marks).map(parseFloat).sort((a, b) => a - b);
|
|
81
|
-
} else {
|
|
81
|
+
} else if (ticks) {
|
|
82
82
|
const points = [];
|
|
83
83
|
for (let i = getMiniDecimal(min); i.lessEquals(getMiniDecimal(max)); i = i.add(step)) {
|
|
84
84
|
points.push(i.toNumber());
|
|
85
85
|
}
|
|
86
86
|
return points;
|
|
87
87
|
}
|
|
88
|
+
return [];
|
|
88
89
|
}, [marks, ticks, step, min, max]);
|
|
89
90
|
function getValueByPosition(position) {
|
|
90
91
|
const newPosition = position < min ? min : position > max ? max : position;
|
|
@@ -93,9 +94,10 @@ export const Slider = p => {
|
|
|
93
94
|
if (pointList.length) {
|
|
94
95
|
value = nearest(pointList, newPosition);
|
|
95
96
|
} else {
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
97
|
+
// 使用 MiniDecimal 避免精度问题
|
|
98
|
+
const cell = Math.round((newPosition - min) / step);
|
|
99
|
+
const nextVal = getMiniDecimal(cell).multi(step);
|
|
100
|
+
value = getMiniDecimal(min).add(nextVal.toString()).toNumber();
|
|
99
101
|
}
|
|
100
102
|
return value;
|
|
101
103
|
}
|
|
@@ -10,7 +10,7 @@ import PageIndicator from '../page-indicator';
|
|
|
10
10
|
import { staged } from 'staged-components';
|
|
11
11
|
import { useRefState } from '../../utils/use-ref-state';
|
|
12
12
|
import { bound } from '../../utils/bound';
|
|
13
|
-
import { useIsomorphicLayoutEffect,
|
|
13
|
+
import { useIsomorphicLayoutEffect, useGetState } from 'ahooks';
|
|
14
14
|
import { mergeFuncProps } from '../../utils/with-func-props';
|
|
15
15
|
const classPrefix = `adm-swiper`;
|
|
16
16
|
const eventToPropRecord = {
|
|
@@ -35,6 +35,7 @@ let currentUid;
|
|
|
35
35
|
export const Swiper = forwardRef(staged((p, ref) => {
|
|
36
36
|
const props = mergeProps(defaultProps, p);
|
|
37
37
|
const [uid] = useState({});
|
|
38
|
+
const timeoutRef = useRef(null);
|
|
38
39
|
const isVertical = props.direction === 'vertical';
|
|
39
40
|
const slideRatio = props.slideSize / 100;
|
|
40
41
|
const offsetRatio = props.trackOffset / 100;
|
|
@@ -73,11 +74,7 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
73
74
|
const trackPixels = isVertical ? track.offsetHeight : track.offsetWidth;
|
|
74
75
|
return trackPixels * props.slideSize / 100;
|
|
75
76
|
}
|
|
76
|
-
const [current, setCurrent] =
|
|
77
|
-
useUpdateEffect(() => {
|
|
78
|
-
var _a;
|
|
79
|
-
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, current);
|
|
80
|
-
}, [current]);
|
|
77
|
+
const [current, setCurrent, getCurrent] = useGetState(props.defaultIndex);
|
|
81
78
|
const [dragging, setDragging, draggingRef] = useRefState(false);
|
|
82
79
|
function boundIndex(current) {
|
|
83
80
|
let min = 0;
|
|
@@ -172,9 +169,13 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
172
169
|
}
|
|
173
170
|
});
|
|
174
171
|
function swipeTo(index, immediate = false) {
|
|
172
|
+
var _a;
|
|
175
173
|
const roundedIndex = Math.round(index);
|
|
176
174
|
const targetIndex = loop ? modulus(roundedIndex, count) : bound(roundedIndex, 0, count - 1);
|
|
177
175
|
setCurrent(targetIndex);
|
|
176
|
+
if (targetIndex !== getCurrent()) {
|
|
177
|
+
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, targetIndex);
|
|
178
|
+
}
|
|
178
179
|
api.start({
|
|
179
180
|
position: (loop ? roundedIndex : boundIndex(roundedIndex)) * 100,
|
|
180
181
|
immediate
|
|
@@ -201,16 +202,17 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
201
202
|
autoplay,
|
|
202
203
|
autoplayInterval
|
|
203
204
|
} = props;
|
|
205
|
+
const runTimeSwiper = () => {
|
|
206
|
+
timeoutRef.current = window.setTimeout(() => {
|
|
207
|
+
swipeNext();
|
|
208
|
+
runTimeSwiper();
|
|
209
|
+
}, autoplayInterval);
|
|
210
|
+
};
|
|
204
211
|
useEffect(() => {
|
|
205
212
|
if (!autoplay || dragging) return;
|
|
206
|
-
|
|
207
|
-
function tick() {
|
|
208
|
-
interval = window.setTimeout(tick, autoplayInterval);
|
|
209
|
-
swipeNext();
|
|
210
|
-
}
|
|
211
|
-
interval = window.setTimeout(tick, autoplayInterval);
|
|
213
|
+
runTimeSwiper();
|
|
212
214
|
return () => {
|
|
213
|
-
if (
|
|
215
|
+
if (timeoutRef.current) window.clearTimeout(timeoutRef.current);
|
|
214
216
|
};
|
|
215
217
|
}, [autoplay, autoplayInterval, dragging, count]);
|
|
216
218
|
function renderTrackInner() {
|
|
@@ -219,7 +221,9 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
219
221
|
className: `${classPrefix}-track-inner`
|
|
220
222
|
}, React.Children.map(validChildren, (child, index) => {
|
|
221
223
|
return React.createElement(animated.div, {
|
|
222
|
-
className: `${classPrefix}-slide`,
|
|
224
|
+
className: classNames(`${classPrefix}-slide`, {
|
|
225
|
+
[`${classPrefix}-slide-active`]: current === index
|
|
226
|
+
}),
|
|
223
227
|
style: {
|
|
224
228
|
[isVertical ? 'y' : 'x']: position.to(position => {
|
|
225
229
|
let finalPosition = -position + index * 100;
|
|
@@ -238,9 +242,11 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
238
242
|
style: {
|
|
239
243
|
[isVertical ? 'y' : 'x']: position.to(position => `${-position}%`)
|
|
240
244
|
}
|
|
241
|
-
}, React.Children.map(validChildren, child => {
|
|
245
|
+
}, React.Children.map(validChildren, (child, index) => {
|
|
242
246
|
return React.createElement("div", {
|
|
243
|
-
className: `${classPrefix}-slide
|
|
247
|
+
className: classNames(`${classPrefix}-slide`, {
|
|
248
|
+
[`${classPrefix}-slide-active`]: current === index
|
|
249
|
+
})
|
|
244
250
|
}, child);
|
|
245
251
|
}));
|
|
246
252
|
}
|
|
@@ -21,7 +21,7 @@ export declare type TextAreaRef = {
|
|
|
21
21
|
blur: () => void;
|
|
22
22
|
nativeElement: HTMLTextAreaElement | null;
|
|
23
23
|
};
|
|
24
|
-
export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "
|
|
24
|
+
export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "autoFocus" | "name" | "readOnly" | "autoComplete"> & {
|
|
25
25
|
onChange?: ((val: string) => void) | undefined;
|
|
26
26
|
value?: string | undefined;
|
|
27
27
|
defaultValue?: string | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
2
2
|
import { useIsomorphicLayoutEffect } from 'ahooks';
|
|
3
|
+
import runes from 'runes2';
|
|
3
4
|
import { withNativeProps } from '../../utils/native-props';
|
|
4
5
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
5
6
|
import { mergeProps } from '../../utils/with-default-props';
|
|
@@ -68,7 +69,7 @@ export const TextArea = forwardRef((p, ref) => {
|
|
|
68
69
|
}, [value, autoSize]);
|
|
69
70
|
const compositingRef = useRef(false);
|
|
70
71
|
let count;
|
|
71
|
-
const valueLength =
|
|
72
|
+
const valueLength = runes(value).length;
|
|
72
73
|
if (typeof showCount === 'function') {
|
|
73
74
|
count = showCount(valueLength, maxLength);
|
|
74
75
|
} else if (showCount) {
|
|
@@ -87,7 +88,7 @@ export const TextArea = forwardRef((p, ref) => {
|
|
|
87
88
|
onChange: e => {
|
|
88
89
|
let v = e.target.value;
|
|
89
90
|
if (maxLength && !compositingRef.current) {
|
|
90
|
-
v =
|
|
91
|
+
v = runes(v).slice(0, maxLength).join('');
|
|
91
92
|
}
|
|
92
93
|
setValue(v);
|
|
93
94
|
},
|
|
@@ -102,7 +103,7 @@ export const TextArea = forwardRef((p, ref) => {
|
|
|
102
103
|
compositingRef.current = false;
|
|
103
104
|
if (maxLength) {
|
|
104
105
|
const v = e.target.value;
|
|
105
|
-
setValue(
|
|
106
|
+
setValue(runes(v).slice(0, maxLength).join(''));
|
|
106
107
|
}
|
|
107
108
|
(_a = props.onCompositionEnd) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
108
109
|
},
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "antd-mobile",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.31.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@floating-ui/dom": "^1.
|
|
6
|
-
"@rc-component/mini-decimal": "^1.0
|
|
7
|
-
"@react-spring/web": "~9.6.
|
|
5
|
+
"@floating-ui/dom": "^1.2.6",
|
|
6
|
+
"@rc-component/mini-decimal": "^1.1.0",
|
|
7
|
+
"@react-spring/web": "~9.6.1",
|
|
8
8
|
"@use-gesture/react": "10.2.20",
|
|
9
|
-
"ahooks": "^3.7.
|
|
9
|
+
"ahooks": "^3.7.6",
|
|
10
10
|
"antd-mobile-icons": "^0.3.0",
|
|
11
11
|
"antd-mobile-v5-count": "^1.0.1",
|
|
12
12
|
"classnames": "^2.3.2",
|
|
13
|
-
"dayjs": "^1.11.
|
|
13
|
+
"dayjs": "^1.11.7",
|
|
14
14
|
"lodash": "^4.17.21",
|
|
15
|
-
"rc-field-form": "~1.27.
|
|
16
|
-
"rc-util": "^5.
|
|
15
|
+
"rc-field-form": "~1.27.4",
|
|
16
|
+
"rc-util": "^5.30.0",
|
|
17
17
|
"react-is": "^18.2.0",
|
|
18
|
-
"
|
|
18
|
+
"runes2": "^1.1.2",
|
|
19
19
|
"staged-components": "^1.1.3",
|
|
20
|
-
"tslib": "^2.
|
|
20
|
+
"tslib": "^2.5.0",
|
|
21
21
|
"use-sync-external-store": "^1.2.0"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|