@xhsreds/reds-rn-next 0.11.1-premode-test.0 → 0.11.1-web202512221520
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/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-13.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/BiKD1VTc.js.map +1 -1
- package/lib/cjs/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js +3 -0
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/cjs/components/Alert/Alert.js +12 -9
- package/lib/cjs/components/Alert/Alert.js.map +1 -1
- package/lib/cjs/components/Alert/hooks/alert.js +1 -0
- package/lib/cjs/components/Alert/hooks/alert.js.map +1 -1
- package/lib/cjs/components/Alert/index.js +1 -0
- package/lib/cjs/components/Alert/index.js.map +1 -1
- package/lib/cjs/components/Button/Viewable.web.js +47 -0
- package/lib/cjs/components/Button/Viewable.web.js.map +1 -0
- package/lib/cjs/components/Collapse/Item/Item.web.js +164 -0
- package/lib/cjs/components/Collapse/Item/Item.web.js.map +1 -0
- package/lib/cjs/components/Image/index.js +1 -1
- package/lib/cjs/components/Image/index.js.map +1 -1
- package/lib/cjs/components/NoticeBar/NoticeBar.js +12 -6
- package/lib/cjs/components/NoticeBar/NoticeBar.js.map +1 -1
- package/lib/cjs/components/PickerView/PickerView.js +2 -1
- package/lib/cjs/components/PickerView/PickerView.js.map +1 -1
- package/lib/cjs/components/PickerView/Wheel.js +22 -2
- package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
- package/lib/cjs/components/Popover/Popover.js +24 -28
- package/lib/cjs/components/Popover/Popover.js.map +1 -1
- package/lib/cjs/components/ProgressIndicator/ProgressIndicator.js +3 -3
- package/lib/cjs/components/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/lib/cjs/components/Radio/Radio.js +1 -0
- package/lib/cjs/components/Radio/Radio.js.map +1 -1
- package/lib/cjs/components/Radio/index.js +1 -0
- package/lib/cjs/components/Radio/index.js.map +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +13 -2
- package/lib/cjs/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/cjs/components/SlimAlert/Alert.js +12 -8
- package/lib/cjs/components/SlimAlert/Alert.js.map +1 -1
- package/lib/cjs/components/SlimAlert/PortalHost.js +28 -0
- package/lib/cjs/components/SlimAlert/PortalHost.js.map +1 -0
- package/lib/cjs/components/SlimAlert/PortalHost.web.js +12171 -0
- package/lib/cjs/components/SlimAlert/PortalHost.web.js.map +1 -0
- package/lib/cjs/components/SlimAlert/index.js +1 -0
- package/lib/cjs/components/SlimAlert/index.js.map +1 -1
- package/lib/cjs/components/Tag/Tag.js +10 -3
- package/lib/cjs/components/Tag/Tag.js.map +1 -1
- package/lib/cjs/components/TextField/TextField.js +22 -12
- package/lib/cjs/components/TextField/TextField.js.map +1 -1
- package/lib/cjs/components/TextView/TextView.js +4 -2
- package/lib/cjs/components/TextView/TextView.js.map +1 -1
- package/lib/cjs/components/Toast/Toast.js +1 -1
- package/lib/cjs/components/Toast/Toast.js.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/pvCount/pvData.js +11 -6
- package/lib/cjs/pvCount/pvData.js.map +1 -1
- package/lib/esm/_chunks/Dr5vetot.js.map +1 -1
- package/lib/esm/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/esm/components/ActionablePopover/ActionablePopover.js +3 -0
- package/lib/esm/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/esm/components/Alert/Alert.js +12 -9
- package/lib/esm/components/Alert/Alert.js.map +1 -1
- package/lib/esm/components/Alert/hooks/alert.js +1 -0
- package/lib/esm/components/Alert/hooks/alert.js.map +1 -1
- package/lib/esm/components/Alert/index.js +1 -0
- package/lib/esm/components/Alert/index.js.map +1 -1
- package/lib/esm/components/Button/Viewable.web.js +43 -0
- package/lib/esm/components/Button/Viewable.web.js.map +1 -0
- package/lib/esm/components/Collapse/Item/Item.web.js +160 -0
- package/lib/esm/components/Collapse/Item/Item.web.js.map +1 -0
- package/lib/esm/components/Image/index.js +1 -1
- package/lib/esm/components/Image/index.js.map +1 -1
- package/lib/esm/components/NoticeBar/NoticeBar.js +13 -7
- package/lib/esm/components/NoticeBar/NoticeBar.js.map +1 -1
- package/lib/esm/components/PickerView/PickerView.js +2 -1
- package/lib/esm/components/PickerView/PickerView.js.map +1 -1
- package/lib/esm/components/PickerView/Wheel.js +23 -3
- package/lib/esm/components/PickerView/Wheel.js.map +1 -1
- package/lib/esm/components/Popover/Popover.js +24 -28
- package/lib/esm/components/Popover/Popover.js.map +1 -1
- package/lib/esm/components/ProgressIndicator/ProgressIndicator.js +4 -4
- package/lib/esm/components/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/lib/esm/components/Radio/Radio.js +1 -0
- package/lib/esm/components/Radio/Radio.js.map +1 -1
- package/lib/esm/components/Radio/index.js +1 -0
- package/lib/esm/components/Radio/index.js.map +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +13 -2
- package/lib/esm/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/esm/components/SlimAlert/Alert.js +12 -8
- package/lib/esm/components/SlimAlert/Alert.js.map +1 -1
- package/lib/esm/components/SlimAlert/PortalHost.js +24 -0
- package/lib/esm/components/SlimAlert/PortalHost.js.map +1 -0
- package/lib/esm/components/SlimAlert/PortalHost.web.js +12167 -0
- package/lib/esm/components/SlimAlert/PortalHost.web.js.map +1 -0
- package/lib/esm/components/SlimAlert/index.js +1 -0
- package/lib/esm/components/SlimAlert/index.js.map +1 -1
- package/lib/esm/components/Tag/Tag.js +12 -5
- package/lib/esm/components/Tag/Tag.js.map +1 -1
- package/lib/esm/components/TextField/TextField.js +22 -12
- package/lib/esm/components/TextField/TextField.js.map +1 -1
- package/lib/esm/components/TextView/TextView.js +4 -2
- package/lib/esm/components/TextView/TextView.js.map +1 -1
- package/lib/esm/components/Toast/Toast.js +2 -2
- package/lib/esm/components/Toast/Toast.js.map +1 -1
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/pvCount/pvData.js +11 -6
- package/lib/esm/pvCount/pvData.js.map +1 -1
- package/lib/src/components/Button/Viewable.web.d.ts +3 -0
- package/lib/src/components/Collapse/Item/Item.web.d.ts +7 -0
- package/lib/src/components/Form/interface/index.d.ts +0 -1
- package/lib/src/components/Image/interface/index.d.ts +0 -2
- package/lib/src/components/Search/interface/index.d.ts +0 -2
- package/lib/src/components/Slider/interface/index.d.ts +0 -2
- package/lib/src/components/SlimAlert/Alert.d.ts +1 -1
- package/lib/src/components/SlimAlert/PortalHost.d.ts +6 -0
- package/lib/src/components/SlimAlert/PortalHost.web.d.ts +6 -0
- package/lib/src/components/Video/interface/index.d.ts +0 -2
- package/lib/types/components/Button/Viewable.web.d.ts +3 -0
- package/lib/types/components/Collapse/Item/Item.web.d.ts +7 -0
- package/lib/types/components/SlimAlert/Alert.d.ts +1 -1
- package/lib/types/components/SlimAlert/PortalHost.d.ts +6 -0
- package/lib/types/components/SlimAlert/PortalHost.web.d.ts +6 -0
- package/package.json +9 -5
- package/src/components/ActionSheets/ActionSheets.tsx +0 -1
- package/src/components/ActionablePopover/ActionablePopover.tsx +3 -0
- package/src/components/Alert/Alert.tsx +5 -5
- package/src/components/Button/Viewable.web.tsx +44 -0
- package/src/components/Collapse/Item/Item.web.tsx +150 -0
- package/src/components/DatePicker/interface/index.ts +1 -0
- package/src/components/Image/index.ts +1 -1
- package/src/components/NoticeBar/NoticeBar.tsx +29 -5
- package/src/components/PickerView/PickerView.tsx +1 -1
- package/src/components/PickerView/Wheel.tsx +32 -3
- package/src/components/Popover/Popover.tsx +24 -26
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +4 -12
- package/src/components/Sheets/AnimatedSheets.tsx +7 -3
- package/src/components/SlimAlert/Alert.tsx +9 -7
- package/src/components/SlimAlert/PortalHost.tsx +7 -0
- package/src/components/SlimAlert/PortalHost.web.tsx +11 -0
- package/src/components/Tag/Tag.tsx +7 -3
- package/src/components/TextField/TextField.tsx +19 -8
- package/src/components/TextView/TextView.tsx +15 -3
- package/src/components/Toast/Toast.tsx +2 -2
- package/src/i18n/@types/resources.d.ts +27 -27
- package/src/i18n/index.json +31 -31
- package/tsconfig.dts.json +1 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_chunks/nlVjgQi5.js');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var reactNative = require('react-native');
|
|
8
|
+
var components_Collapse_Item_interface_index = require('./interface/index.js');
|
|
9
|
+
var components_Collapse_Item_styles = require('./styles.js');
|
|
10
|
+
var components_Icon_Icon = require('../../Icon/Icon.js');
|
|
11
|
+
var rederIconSvgReDs_icon = require('@xhs/reder-icon-svg-ReDs_icon');
|
|
12
|
+
var components_Collapse_hooks_useCollapseContext = require('../hooks/useCollapseContext.js');
|
|
13
|
+
require('../../ConfigProvider/hooks/ConfigCache/ConfigCache.js');
|
|
14
|
+
require('@xhs/reds-apm/src/index.native');
|
|
15
|
+
var components_ConfigProvider_hooks_themeToken_useThemeToken = require('../../ConfigProvider/hooks/themeToken/useThemeToken.js');
|
|
16
|
+
require('@xhsreds/reds-token-next');
|
|
17
|
+
require('../../ConfigProvider/hooks/ConfigContext/ConfigContext.js');
|
|
18
|
+
require('../../../_chunks/NjAxlnfB.js');
|
|
19
|
+
require('../../../pvCount/useUnmountedProcess.js');
|
|
20
|
+
require('../../../pvCount/pvData.js');
|
|
21
|
+
|
|
22
|
+
var Item = function Item(_ref) {
|
|
23
|
+
var value = _ref.value,
|
|
24
|
+
title = _ref.title,
|
|
25
|
+
lazyRender = _ref.lazyRender,
|
|
26
|
+
children = _ref.children,
|
|
27
|
+
onClick = _ref.onClick;
|
|
28
|
+
var _React$useContext = React.useContext(components_Collapse_hooks_useCollapseContext.CollapseContext),
|
|
29
|
+
addActiveValue = _React$useContext.addActiveValue,
|
|
30
|
+
isActiveValue = _React$useContext.isActiveValue,
|
|
31
|
+
removeActiveValue = _React$useContext.removeActiveValue,
|
|
32
|
+
size = _React$useContext.size,
|
|
33
|
+
registerChild = _React$useContext.registerChild,
|
|
34
|
+
unregisterChild = _React$useContext.unregisterChild;
|
|
35
|
+
var styles = components_Collapse_Item_styles.default(size || "Medium");
|
|
36
|
+
var _useState = React.useState(false),
|
|
37
|
+
_useState2 = _rollupPluginBabelHelpers._slicedToArray(_useState, 2),
|
|
38
|
+
visible = _useState2[0],
|
|
39
|
+
setVisible = _useState2[1];
|
|
40
|
+
var _useState3 = React.useState(!lazyRender),
|
|
41
|
+
_useState4 = _rollupPluginBabelHelpers._slicedToArray(_useState3, 2);
|
|
42
|
+
_useState4[0];
|
|
43
|
+
var setShouldMount = _useState4[1];
|
|
44
|
+
var _useState5 = React.useState(0),
|
|
45
|
+
_useState6 = _rollupPluginBabelHelpers._slicedToArray(_useState5, 2),
|
|
46
|
+
contentHeight = _useState6[0],
|
|
47
|
+
setContentHeight = _useState6[1];
|
|
48
|
+
var firstRender = React.useRef(false);
|
|
49
|
+
var measureRef = React.useRef(null);
|
|
50
|
+
var contentRef = React.useRef(null);
|
|
51
|
+
var themeColor = components_ConfigProvider_hooks_themeToken_useThemeToken.useThemeColor();
|
|
52
|
+
var _useState7 = React.useState(false),
|
|
53
|
+
_useState8 = _rollupPluginBabelHelpers._slicedToArray(_useState7, 2),
|
|
54
|
+
lineItem = _useState8[0],
|
|
55
|
+
setLineItem = _useState8[1];
|
|
56
|
+
var childInfo = {
|
|
57
|
+
setLine: function setLine(value2) {
|
|
58
|
+
return setLineItem(value2);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
React.useEffect(function () {
|
|
62
|
+
registerChild(childInfo);
|
|
63
|
+
return function () {
|
|
64
|
+
return unregisterChild(childInfo);
|
|
65
|
+
};
|
|
66
|
+
}, []);
|
|
67
|
+
var _useState9 = React.useState(false),
|
|
68
|
+
_useState0 = _rollupPluginBabelHelpers._slicedToArray(_useState9, 2);
|
|
69
|
+
_useState0[0];
|
|
70
|
+
var setInitialMeasureDone = _useState0[1];
|
|
71
|
+
var setFirstRenderTag = function setFirstRenderTag() {
|
|
72
|
+
firstRender.current = true;
|
|
73
|
+
setShouldMount(true);
|
|
74
|
+
};
|
|
75
|
+
var handleContentLayout = function handleContentLayout(event) {
|
|
76
|
+
var measuredHeight = event.nativeEvent.layout.height;
|
|
77
|
+
if (measuredHeight !== contentHeight) {
|
|
78
|
+
setContentHeight(measuredHeight);
|
|
79
|
+
setInitialMeasureDone(true);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
React.useEffect(function () {
|
|
83
|
+
var isActive = !!(isActiveValue !== null && isActiveValue !== void 0 && isActiveValue(value));
|
|
84
|
+
if (isActive) {
|
|
85
|
+
var _measureRef$current, _measureRef$current$m;
|
|
86
|
+
(_measureRef$current = measureRef.current) === null || _measureRef$current === void 0 || (_measureRef$current$m = _measureRef$current.measure) === null || _measureRef$current$m === void 0 || _measureRef$current$m.call(_measureRef$current, function (x, y, width, height) {
|
|
87
|
+
setContentHeight(height);
|
|
88
|
+
setInitialMeasureDone(true);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
setVisible(isActive);
|
|
92
|
+
if (!firstRender.current && isActive) {
|
|
93
|
+
setFirstRenderTag();
|
|
94
|
+
}
|
|
95
|
+
}, [isActiveValue === null || isActiveValue === void 0 ? void 0 : isActiveValue(value)]);
|
|
96
|
+
var onPress = function onPress() {
|
|
97
|
+
var nextActive = !(isActiveValue !== null && isActiveValue !== void 0 && isActiveValue(value));
|
|
98
|
+
if (nextActive) {
|
|
99
|
+
addActiveValue === null || addActiveValue === void 0 || addActiveValue(value);
|
|
100
|
+
if (!firstRender.current) setFirstRenderTag();
|
|
101
|
+
} else {
|
|
102
|
+
removeActiveValue === null || removeActiveValue === void 0 || removeActiveValue(value);
|
|
103
|
+
}
|
|
104
|
+
setVisible(nextActive);
|
|
105
|
+
onClick === null || onClick === void 0 || onClick(value);
|
|
106
|
+
};
|
|
107
|
+
var cloneChildren = React.useMemo(function () {
|
|
108
|
+
return React.Children.map(children, function (child) {
|
|
109
|
+
return /*#__PURE__*/React.cloneElement(child, _rollupPluginBabelHelpers._objectSpread2({
|
|
110
|
+
style: {
|
|
111
|
+
color: themeColor.Paragraph
|
|
112
|
+
}
|
|
113
|
+
}, child.props));
|
|
114
|
+
});
|
|
115
|
+
}, [children]);
|
|
116
|
+
return /* @__PURE__ */React.createElement(reactNative.View, null, /* @__PURE__ */React.createElement(reactNative.TouchableWithoutFeedback, {
|
|
117
|
+
onPress: onPress
|
|
118
|
+
}, /* @__PURE__ */React.createElement(reactNative.View, {
|
|
119
|
+
style: styles.header
|
|
120
|
+
}, /* @__PURE__ */React.createElement(reactNative.Text, {
|
|
121
|
+
style: styles.title
|
|
122
|
+
}, title), /* @__PURE__ */React.createElement(reactNative.View, {
|
|
123
|
+
style: {
|
|
124
|
+
transform: "rotate(".concat(visible ? 180 : 0, "deg)"),
|
|
125
|
+
transition: "transform 200ms ease-in-out"
|
|
126
|
+
}
|
|
127
|
+
}, /* @__PURE__ */React.createElement(components_Icon_Icon.default, {
|
|
128
|
+
icon: rederIconSvgReDs_icon.ArrowDownCenterB,
|
|
129
|
+
size: 16,
|
|
130
|
+
fill: themeColor.Title
|
|
131
|
+
})))), /* @__PURE__ */React.createElement(reactNative.View, {
|
|
132
|
+
ref: measureRef,
|
|
133
|
+
onLayout: handleContentLayout,
|
|
134
|
+
style: _rollupPluginBabelHelpers._objectSpread2({
|
|
135
|
+
position: "absolute",
|
|
136
|
+
opacity: 0,
|
|
137
|
+
paddingHorizontal: 16,
|
|
138
|
+
paddingBottom: 12,
|
|
139
|
+
top: -9999,
|
|
140
|
+
width: "100%"
|
|
141
|
+
}, styles.content)
|
|
142
|
+
}, cloneChildren), /* @__PURE__ */React.createElement(reactNative.View, {
|
|
143
|
+
ref: contentRef,
|
|
144
|
+
style: _rollupPluginBabelHelpers._objectSpread2({
|
|
145
|
+
overflow: "hidden",
|
|
146
|
+
height: visible ? contentHeight : 0,
|
|
147
|
+
paddingHorizontal: 16,
|
|
148
|
+
paddingBottom: visible ? 12 : 0,
|
|
149
|
+
minHeight: visible ? 1 : 0,
|
|
150
|
+
// @ts-expect-error
|
|
151
|
+
transition: "height 200ms ease-in-out, padding 200ms ease-in-out, opacity 200ms ease-in-out"
|
|
152
|
+
}, styles.content)
|
|
153
|
+
}, cloneChildren), lineItem && /* @__PURE__ */React.createElement(reactNative.View, {
|
|
154
|
+
style: {
|
|
155
|
+
backgroundColor: themeColor.Separator,
|
|
156
|
+
height: 0.5,
|
|
157
|
+
marginHorizontal: 16
|
|
158
|
+
}
|
|
159
|
+
}));
|
|
160
|
+
};
|
|
161
|
+
Item.defaultProps = components_Collapse_Item_interface_index.ItemDefaultProps;
|
|
162
|
+
|
|
163
|
+
exports.default = Item;
|
|
164
|
+
//# sourceMappingURL=Item.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Item.web.js","sources":["../../../../../src/components/Collapse/Item/Item.web.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo } from \"react\";\nimport { View, Text, TouchableWithoutFeedback, LayoutChangeEvent, ViewStyle } from \"react-native\";\nimport { IItem, ItemDefaultProps } from \"./interface/index\";\nimport createStyles from \"./styles\";\nimport { Icon } from \"../../Icon\";\nimport { ArrowUpM, ArrowDownCenterB } from \"@xhs/reder-icon-svg-ReDs_icon\";\nimport { CollapseContext } from \"../hooks/useCollapseContext\";\nimport { useThemeColor } from \"../../ConfigProvider\";\n\nconst Item = ({ value, title, lazyRender, children, onClick }: IItem) => {\n const { addActiveValue, isActiveValue, removeActiveValue, size, registerChild, unregisterChild } =\n React.useContext(CollapseContext);\n const styles = createStyles(size || \"Medium\");\n const [visible, setVisible] = useState(false);\n const [shouldMount, setShouldMount] = useState(!lazyRender);\n const [contentHeight, setContentHeight] = useState(0);\n const firstRender = useRef(false);\n const measureRef = useRef<View>(null);\n const contentRef = useRef<View>(null);\n\n const themeColor = useThemeColor();\n const [lineItem, setLineItem] = useState(false);\n\n const childInfo = {\n setLine: (value: boolean) => setLineItem(value),\n };\n\n useEffect(() => {\n registerChild(childInfo);\n return () => unregisterChild(childInfo);\n }, []);\n\n const [initialMeasureDone, setInitialMeasureDone] = useState(false);\n\n const setFirstRenderTag = () => {\n firstRender.current = true;\n setShouldMount(true);\n };\n\n const handleContentLayout = (event: LayoutChangeEvent) => {\n const measuredHeight = event.nativeEvent.layout.height;\n if (measuredHeight !== contentHeight) {\n setContentHeight(measuredHeight);\n setInitialMeasureDone(true);\n }\n };\n\n // 初始可见状态同步逻辑\n useEffect(() => {\n const isActive = !!isActiveValue?.(value);\n if (isActive) {\n measureRef.current?.measure?.((x, y, width, height) => {\n setContentHeight(height);\n setInitialMeasureDone(true);\n });\n }\n setVisible(isActive);\n if (!firstRender.current && isActive) {\n setFirstRenderTag();\n }\n }, [isActiveValue?.(value)]);\n\n const onPress = () => {\n const nextActive = !isActiveValue?.(value);\n\n if (nextActive) {\n addActiveValue?.(value);\n if (!firstRender.current) setFirstRenderTag();\n } else {\n removeActiveValue?.(value);\n }\n\n setVisible(nextActive);\n onClick?.(value);\n };\n\n const cloneChildren = useMemo(() => {\n return React.Children.map(children, (child: any) => {\n return React.cloneElement(child, {\n style: { color: themeColor.Paragraph },\n ...child.props,\n });\n });\n }, [children]);\n\n return (\n <View>\n <TouchableWithoutFeedback onPress={onPress}>\n <View style={styles.header}>\n <Text style={styles.title}>{title}</Text>\n <View\n style={\n { transform: `rotate(${visible ? 180 : 0}deg)`, transition: \"transform 200ms ease-in-out\" } as ViewStyle\n }\n >\n <Icon icon={ArrowDownCenterB} size={16} fill={themeColor.Title} />\n </View>\n </View>\n </TouchableWithoutFeedback>\n\n {/* 测量视图 */}\n <View\n ref={measureRef}\n onLayout={handleContentLayout}\n style={{\n position: \"absolute\",\n opacity: 0,\n paddingHorizontal: 16,\n paddingBottom: 12,\n top: -9999,\n width: \"100%\",\n ...styles.content,\n }}\n >\n {cloneChildren}\n </View>\n\n {/* Web 内容视图 */}\n <View\n ref={contentRef}\n style={{\n overflow: \"hidden\",\n height: visible ? contentHeight : 0,\n paddingHorizontal: 16,\n paddingBottom: visible ? 12 : 0,\n minHeight: visible ? 1 : 0,\n // @ts-expect-error\n transition: \"height 200ms ease-in-out, padding 200ms ease-in-out, opacity 200ms ease-in-out\",\n ...styles.content,\n }}\n >\n {cloneChildren}\n </View>\n\n {/* 分割线 */}\n {lineItem && (\n <View\n style={{\n backgroundColor: themeColor.Separator,\n height: 0.5,\n marginHorizontal: 16,\n }}\n />\n )}\n </View>\n );\n};\n\nItem.defaultProps = ItemDefaultProps;\nexport default Item;\n"],"names":["Item","_ref","value","title","lazyRender","children","onClick","_React$useContext","React","useContext","CollapseContext","addActiveValue","isActiveValue","removeActiveValue","size","registerChild","unregisterChild","styles","createStyles","_useState","useState","_useState2","_slicedToArray","visible","setVisible","_useState3","_useState4","shouldMount","setShouldMount","_useState5","_useState6","contentHeight","setContentHeight","firstRender","useRef","measureRef","contentRef","themeColor","useThemeColor","_useState7","_useState8","lineItem","setLineItem","childInfo","setLine","useEffect","_useState9","_useState0","initialMeasureDone","setInitialMeasureDone","setFirstRenderTag","current","handleContentLayout","event","measuredHeight","nativeEvent","layout","height","isActive","_measureRef$current","_measureRef$current$m","measure","call","x","y","width","onPress","nextActive","cloneChildren","useMemo","Children","map","child","cloneElement","_objectSpread","style","color","Paragraph","props","View","createElement","TouchableWithoutFeedback","header","Text","transform","concat","transition","Icon","icon","ArrowDownCenterB","fill","Title","ref","onLayout","position","opacity","paddingHorizontal","paddingBottom","top","content","overflow","minHeight","backgroundColor","Separator","marginHorizontal","defaultProps","ItemDefaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,IAAA,GAAO,SAAPA,IAAAA,CAAAC,IAAA,EAAmE;AAAA,EAAA,IAAzDC,KAAA,GAAAD,IAAA,CAAAC,KAAA;IAAOC,aAAAA;IAAOC,UAAY,GAAAH,IAAA,CAAZG,UAAY;IAAAC,QAAA,GAAAJ,IAAA,CAAAI,QAAA;IAAUC,eAAAA;AAC5C,EAAA,IAAAC,iBAAA,GACJC,KAAM,CAAAC,UAAA,CAAWC,4DAAe,CAAA;IAD1BC,cAAgB,GAAAJ,iBAAA,CAAhBI,cAAgB;IAAAC,aAAA,GAAAL,iBAAA,CAAAK,aAAA;IAAeC,iBAAmB,GAAAN,iBAAA,CAAnBM,iBAAmB;IAAAC,IAAA,GAAAP,iBAAA,CAAAO,IAAA;IAAMC,kCAAAA;IAAeC,eAAgB,GAAAT,iBAAA,CAAhBS,eAAgB,CAAA;AAEzF,EAAA,IAAAC,MAAA,GAASC,uCAAa,CAAAJ,IAAA,IAAQ,QAAQ,CAAA,CAAA;AAC5C,EAAA,IAAAK,SAAA,GAA8BC,eAAS,KAAK,CAAA;IAAAC,UAAA,GAAAC,wCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAArCI,IAAAA,OAAA,GAAAF,UAAA,CAAA,CAAA,CAAA;AAASG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAAI,UAAA,GAAsCL,cAAA,CAAS,CAAChB,UAAU,CAAA,CAAA;IAAAsB,UAAA,GAAAJ,wCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA,CAAA;AAAnDE,IAAaD,UAAA,CAAA,CAAA,CAAA,CAAA;AAAAE,QAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,EAAA;AAClC,EAAA,IAAAG,UAAA,GAA0CT,eAAS,CAAC,CAAA;IAAAU,UAAA,GAAAR,wCAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAA7CE,IAAAA,aAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAeE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAG,WAAA,GAAcC,aAAO,KAAK,CAAA,CAAA;AAC1B,EAAA,IAAAC,UAAA,GAAaD,aAAa,IAAI,CAAA,CAAA;AAC9B,EAAA,IAAAE,UAAA,GAAaF,aAAa,IAAI,CAAA,CAAA;AAEpC,EAAA,IAAMG,aAAaC,sEAAc,EAAA,CAAA;AACjC,EAAA,IAAAC,UAAA,GAAgCnB,eAAS,KAAK,CAAA;IAAAoB,UAAA,GAAAlB,wCAAA,CAAAiB,UAAA,EAAA,CAAA,CAAA;AAAvCE,IAAAA,QAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAUE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAMG,SAAY,GAAA;AAChBC,IAAAA,OAAS,EAAA,SAATA,OAASA,CAAC1C,MAAmB,EAAA;MAAA,OAAAwC,WAAA,CAAYxC,MAAK,CAAA,CAAA;AAAA,KAAA;GAChD,CAAA;AAEA2C,EAAAA,eAAA,CAAU,YAAM;IACd9B,aAAA,CAAc4B,SAAS,CAAA,CAAA;IAChB,OAAA,YAAA;MAAA,OAAM3B,gBAAgB2B,SAAS,CAAA,CAAA;AAAA,KAAA,CAAA;GACxC,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,IAAAG,UAAA,GAAoD1B,eAAS,KAAK,CAAA,CAAA;IAAA2B,UAAA,GAAAzB,wCAAA,CAAAwB,UAAA,EAAA,CAAA,CAAA,CAAA;AAA3DE,IAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAAoBE,QAAAA,qBAAqB,GAAAF,UAAA,CAAA,CAAA,EAAA;AAEhD,EAAA,IAAMG,oBAAoB,SAApBA,oBAA0B;IAC9BjB,WAAA,CAAYkB,OAAU,GAAA,IAAA,CAAA;IACtBvB,cAAA,CAAe,IAAI,CAAA,CAAA;GACrB,CAAA;AAEM,EAAA,IAAAwB,mBAAA,GAAsB,SAAtBA,mBAAAA,CAAuBC,KAA6B,EAAA;IAClD,IAAAC,cAAA,GAAiBD,KAAM,CAAAE,WAAA,CAAYC,MAAO,CAAAC,MAAA,CAAA;IAChD,IAAIH,mBAAmBvB,aAAe,EAAA;MACpCC,gBAAA,CAAiBsB,cAAc,CAAA,CAAA;MAC/BL,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAC5B,KAAA;GACF,CAAA;AAGAJ,EAAAA,eAAA,CAAU,YAAM;IACd,IAAMa,QAAW,GAAA,CAAC,EAAC9C,aAAA,KAAAA,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,IAAAA,aAAA,CAAgBV,KAAK,CAAA,CAAA,CAAA;AACxC,IAAA,IAAIwD,QAAU,EAAA;MAAA,IAAAC,mBAAA,EAAAC,qBAAA,CAAA;AACZ,MAAA,CAAAD,mBAAA,GAAAxB,UAAA,CAAWgB,gFAAXQ,mBAAA,CAAoBE,OAAU,MAAAD,IAAAA,IAAAA,qBAAA,KAA9BA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAE,IAAA,CAAAH,mBAAA,EAA8B,UAACI,CAAG,EAAAC,CAAA,EAAGC,OAAOR,MAAW,EAAA;QACrDzB,gBAAA,CAAiByB,MAAM,CAAA,CAAA;QACvBR,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAC5B,OAAC,CAAA,CAAA;AACH,KAAA;IACAzB,UAAA,CAAWkC,QAAQ,CAAA,CAAA;AACf,IAAA,IAAA,CAACzB,WAAY,CAAAkB,OAAA,IAAWO,QAAU,EAAA;AAClBR,MAAAA,iBAAA,EAAA,CAAA;AACpB,KAAA;GACC,EAAA,CAACtC,aAAgB,KAAhBA,IAAAA,IAAAA,aAAgB,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAgB,CAAAV,KAAK,CAAC,CAAC,CAAA,CAAA;AAE3B,EAAA,IAAMgE,UAAU,SAAVA,UAAgB;IACd,IAAAC,UAAA,GAAa,EAACvD,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,IAAAA,aAAA,CAAgBV,KAAK,CAAA,CAAA,CAAA;AAEzC,IAAA,IAAIiE,UAAY,EAAA;AACdxD,MAAAA,cAAA,aAAAA,cAAA,KAAA,KAAA,CAAA,IAAAA,cAAA,CAAiBT,KAAK,CAAA,CAAA;AAClB,MAAA,IAAA,CAAC+B,WAAY,CAAAkB,OAAA,EAA2BD,iBAAA,EAAA,CAAA;AAC9C,KAAO,MAAA;AACLrC,MAAAA,iBAAA,aAAAA,iBAAA,KAAA,KAAA,CAAA,IAAAA,iBAAA,CAAoBX,KAAK,CAAA,CAAA;AAC3B,KAAA;IAEAsB,UAAA,CAAW2C,UAAU,CAAA,CAAA;AACrB7D,IAAAA,OAAA,aAAAA,OAAA,KAAA,KAAA,CAAA,IAAAA,OAAA,CAAUJ,KAAK,CAAA,CAAA;GACjB,CAAA;AAEM,EAAA,IAAAkE,aAAA,GAAgBC,cAAQ,YAAM;IAClC,OAAO7D,KAAM,CAAA8D,QAAA,CAASC,GAAI,CAAAlE,QAAA,EAAU,UAACmE,KAAe,EAAA;AAC3C,MAAA,oBAAAhE,KAAA,CAAMiE,aAAaD,KAAO,EAAAE,wCAAA,CAAA;AAC/BC,QAAAA,KAAO,EAAA;UAAEC,KAAO,EAAAvC,UAAA,CAAWwC,SAAAA;AAAU,SAAA;AAAA,OAAA,EAClCL,KAAM,CAAAM,KAAA,CACV,CAAA,CAAA;AACH,KAAC,CAAA,CAAA;AACH,GAAA,EAAG,CAACzE,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,0CACG0E,gBACC,EAAA,IAAA,iBAAAvE,KAAA,CAAAwE,aAAA,CAACC,oCAAyB,EAAA;AAAAf,IAAAA,OAAA,EAAAA,OAAAA;AAAA,GAAA,qCACvBa,gBAAK,EAAA;IAAAJ,KAAA,EAAO1D,MAAO,CAAAiE,MAAAA;AAAA,GAAA,qCACjBC,gBAAK,EAAA;IAAAR,KAAA,EAAO1D,MAAO,CAAAd,KAAAA;GAAA,EAAQA,KAAM,CAClC,iBAAAK,KAAA,CAAAwE,aAAA,CAACD,gBAAA,EAAA;AACCJ,IAAAA,KAAA,EACE;MAAES,SAAW,EAAA,SAAA,CAAAC,MAAA,CAAU9D,UAAU,GAAM,GAAA,CAAC,EAAQ,MAAA,CAAA;AAAA+D,MAAAA,UAAA,EAAY,6BAAA;AAA8B,KAAA;AAAA,GAAA,iBAG5F9E,KAAA,CAAAwE,aAAA,CAACO;AAAKC,IAAAA,IAAM,EAAAC,sCAAA;AAAkB3E,IAAAA,MAAM,EAAI;IAAA4E,IAAA,EAAMrD,WAAWsD,KAAAA;GAAO,CAClE,CACF,CACF,CAGA,iBAAAnF,KAAA,CAAAwE,aAAA,CAACD,gBAAA,EAAA;AACCa,IAAAA,GAAK,EAAAzD,UAAA;AACL0D,IAAAA,QAAU,EAAAzC,mBAAA;AACVuB,IAAAA,KAAO,EAAAD,wCAAA,CAAA;AACLoB,MAAAA,QAAU,EAAA,UAAA;AACVC,MAAAA,OAAS,EAAA,CAAA;AACTC,MAAAA,iBAAmB,EAAA,EAAA;AACnBC,MAAAA,aAAe,EAAA,EAAA;MACfC,GAAK,EAAA,CAAA,IAAA;AACLjC,MAAAA,KAAO,EAAA,MAAA;KACJhD,EAAAA,MAAO,CAAAkF,OAAA,CAAA;GACZ,EAEC/B,aACH,CAGA,iBAAA5D,KAAA,CAAAwE,aAAA,CAACD,gBAAA,EAAA;AACCa,IAAAA,GAAK,EAAAxD,UAAA;AACLuC,IAAAA,KAAO,EAAAD,wCAAA,CAAA;AACL0B,MAAAA,QAAU,EAAA,QAAA;AACV3C,MAAAA,MAAA,EAAQlC,UAAUQ,aAAgB,GAAA,CAAA;AAClCiE,MAAAA,iBAAmB,EAAA,EAAA;AACnBC,MAAAA,aAAA,EAAe1E,UAAU,EAAK,GAAA,CAAA;AAC9B8E,MAAAA,SAAA,EAAW9E,UAAU,CAAI,GAAA,CAAA;AAAA;AAEzB+D,MAAAA,UAAY,EAAA,gFAAA;KACTrE,EAAAA,MAAO,CAAAkF,OAAA,CAAA;AACZ,GAAA,EAEC/B,aACH,GAGC3B,QACC,mBAAAjC,KAAA,CAAAwE,aAAA,CAACD,gBAAA,EAAA;AACCJ,IAAAA,KAAO,EAAA;MACL2B,iBAAiBjE,UAAW,CAAAkE,SAAA;AAC5B9C,MAAAA,MAAQ,EAAA,GAAA;AACR+C,MAAAA,gBAAkB,EAAA,EAAA;AACpB,KAAA;AAAA,GACF,CAEJ,CAAA,CAAA;AAEJ,EAAA;AAEAxG,IAAA,CAAKyG,YAAe,GAAAC,yDAAA;;;;"}
|
|
@@ -25,7 +25,7 @@ require('../../pvCount/pvData.js');
|
|
|
25
25
|
require('./VisibilitySensor.js');
|
|
26
26
|
|
|
27
27
|
var _Platform$constants;
|
|
28
|
-
var ImageComponent = ((_Platform$constants = reactNative.Platform.constants) === null || _Platform$constants === void 0 || (_Platform$constants = _Platform$constants.reactNativeVersion) === null || _Platform$constants === void 0 ? void 0 : _Platform$constants.minor) === 72 ? components_Image_Image.default : components_Image_Image69.default;
|
|
28
|
+
var ImageComponent = ((_Platform$constants = reactNative.Platform.constants) === null || _Platform$constants === void 0 || (_Platform$constants = _Platform$constants.reactNativeVersion) === null || _Platform$constants === void 0 ? void 0 : _Platform$constants.minor) === 72 || reactNative.Platform.OS === "web" ? components_Image_Image.default : components_Image_Image69.default;
|
|
29
29
|
|
|
30
30
|
exports.Image69 = components_Image_Image69.default;
|
|
31
31
|
exports.ImageType = components_Image_interface_index.index;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Image/index.ts"],"sourcesContent":["import { Platform } from \"react-native\";\nimport Image from \"./Image\";\nimport Image69 from \"./Image69\";\nimport * as ImageType from \"./interface\";\n\nconst ImageComponent = Platform.constants?.reactNativeVersion?.minor === 72 ? Image : Image69;\nexport default ImageComponent;\nexport { ImageComponent as Image, ImageType, Image69 };\n"],"names":["ImageComponent","_Platform$constants","Platform","constants","reactNativeVersion","minor","Image","Image69"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Image/index.ts"],"sourcesContent":["import { Platform } from \"react-native\";\nimport Image from \"./Image\";\nimport Image69 from \"./Image69\";\nimport * as ImageType from \"./interface\";\n\nconst ImageComponent = Platform.constants?.reactNativeVersion?.minor === 72 || Platform.OS === \"web\" ? Image : Image69;\nexport default ImageComponent;\nexport { ImageComponent as Image, ImageType, Image69 };\n"],"names":["ImageComponent","_Platform$constants","Platform","constants","reactNativeVersion","minor","OS","Image","Image69"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,cAAA,GAAiB,CAAAC,CAAAA,mBAAA,GAAAC,qBAASC,SAAW,MAAA,IAAA,IAAAF,mBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,mBAAA,GAApBA,mBAAA,CAAoBG,kBAAA,MAAAH,IAAAA,IAAAA,mBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAwCI,WAAU,EAAM,IAAAH,oBAAA,CAASI,EAAO,KAAA,KAAA,GAAQC,8BAAQ,GAAAC;;;;;;;"}
|
|
@@ -20,6 +20,11 @@ require('../../_chunks/DoNqsT5m.js');
|
|
|
20
20
|
require('../LanguageProvider/hooks/LanguageContext.js');
|
|
21
21
|
require('../../i18n/index.js');
|
|
22
22
|
|
|
23
|
+
var AnimatedTextStyle = reactNative.Platform.OS === "web" ? {
|
|
24
|
+
textOverflow: "initial",
|
|
25
|
+
overflow: "initial",
|
|
26
|
+
maxWidth: "auto"
|
|
27
|
+
} : {};
|
|
23
28
|
var NoticeBar = function NoticeBar(props) {
|
|
24
29
|
pvCount_useUnmountedProcess.default("NoticeBar");
|
|
25
30
|
var _useState = React.useState(true),
|
|
@@ -70,7 +75,7 @@ var NoticeBar = function NoticeBar(props) {
|
|
|
70
75
|
return Math.max(textWidth - containerWidth, 0);
|
|
71
76
|
}, [textWidth, containerWidth]);
|
|
72
77
|
React.useEffect(function () {
|
|
73
|
-
if (props.type === components_NoticeBar_interface_index.NoticeBarType.SCROLLABLE && textWidth > 0) {
|
|
78
|
+
if (props.type === components_NoticeBar_interface_index.NoticeBarType.SCROLLABLE && textWidth > 0 && scrollDistance > 0) {
|
|
74
79
|
var _startScrolling = function startScrolling() {
|
|
75
80
|
scrollX.setValue(0);
|
|
76
81
|
reactNative.Animated.timing(scrollX, {
|
|
@@ -100,6 +105,9 @@ var NoticeBar = function NoticeBar(props) {
|
|
|
100
105
|
React.useEffect(function () {
|
|
101
106
|
setVisible(!!props.visible);
|
|
102
107
|
}, [props.visible]);
|
|
108
|
+
var handleAnimatedTextLayout = function handleAnimatedTextLayout(e) {
|
|
109
|
+
setTextWidth(e.nativeEvent.layout.width);
|
|
110
|
+
};
|
|
103
111
|
return _visible ? /* @__PURE__ */React.createElement(reactNative.View, {
|
|
104
112
|
style: [styles.container, {
|
|
105
113
|
backgroundColor: color,
|
|
@@ -120,7 +128,7 @@ var NoticeBar = function NoticeBar(props) {
|
|
|
120
128
|
}, props.type === components_NoticeBar_interface_index.NoticeBarType.SCROLLABLE ? /* @__PURE__ */React.createElement(reactNative.View, {
|
|
121
129
|
style: {
|
|
122
130
|
minHeight: 18,
|
|
123
|
-
overflow: "scroll",
|
|
131
|
+
overflow: reactNative.Platform.OS === "web" ? "hidden" : "scroll",
|
|
124
132
|
flexDirection: "row"
|
|
125
133
|
}
|
|
126
134
|
}, /* @__PURE__ */React.createElement(reactNative.Animated.Text, {
|
|
@@ -129,10 +137,8 @@ var NoticeBar = function NoticeBar(props) {
|
|
|
129
137
|
transform: [{
|
|
130
138
|
translateX: scrollX
|
|
131
139
|
}]
|
|
132
|
-
}],
|
|
133
|
-
onLayout:
|
|
134
|
-
return setTextWidth(e.nativeEvent.layout.width);
|
|
135
|
-
}
|
|
140
|
+
}, AnimatedTextStyle],
|
|
141
|
+
onLayout: handleAnimatedTextLayout
|
|
136
142
|
}, /* @__PURE__ */React.createElement(reactNative.Text, {
|
|
137
143
|
style: styles.text
|
|
138
144
|
}, props.content), /* @__PURE__ */React.createElement(reactNative.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoticeBar.js","sources":["../../../../src/components/NoticeBar/NoticeBar.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, TouchableWithoutFeedback, Text, Image, Animated, Easing } from \"react-native\";\nimport { RedsNoticeBar, NoticeBarDefaultProps, NoticeBarType, NoticeBarActionType } from \"./interface/index\";\nimport getStyles from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nconst NoticeBar = (props: RedsNoticeBar) => {\n useMounted(\"NoticeBar\");\n const [_visible, setVisible] = useState(true);\n\n const themeColor = useThemeColor();\n\n const styles = getStyles(themeColor);\n\n const jumpKey = useLanguage(\"componentKey\", \"jumpKey\");\n\n const icon = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n case \"success\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c62ce17c572dff50aa28209bedf635fc303d18f8.png\";\n case \"warning\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/11b33735cbfddd621d1163dec26a5c240bc407f1.png\";\n case \"danger\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/4df0100d42449186672e3c4d9863ec4bce4bb23a.png\";\n default:\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n }\n }, [props.theme]);\n\n const color = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return themeColor.Info2;\n case \"success\":\n return themeColor.Success2;\n case \"warning\":\n return themeColor.Warning2;\n case \"danger\":\n return themeColor.Primary2;\n default:\n return themeColor.Info2;\n }\n }, [props.theme, themeColor]);\n\n const [textWidth, setTextWidth] = useState(0);\n const [containerWidth, setContainerWidth] = useState(0);\n const scrollX = useRef(new Animated.Value(0)).current;\n\n const scrollDistance = useMemo(() => Math.max(textWidth - containerWidth, 0), [textWidth, containerWidth]);\n\n useEffect(() => {\n if (props.type === NoticeBarType.SCROLLABLE && textWidth > 0) {\n const startScrolling = () => {\n scrollX.setValue(0);\n Animated.timing(scrollX, {\n toValue: -scrollDistance,\n duration: scrollDistance * 30,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n startScrolling();\n }\n });\n };\n\n startScrolling();\n }\n }, [textWidth, containerWidth, props.type, scrollDistance]);\n\n const handleLink = () => {\n props.onClick?.();\n };\n\n const handleClose = () => {\n setVisible(false);\n props.onClose?.();\n };\n\n useEffect(() => {\n setVisible(!!props.visible);\n }, [props.visible]);\n\n return _visible ? (\n <View\n style={[\n styles.container,\n { backgroundColor: color, alignItems: props.type === NoticeBarType.MUTILINE ? \"flex-start\" : \"center\" },\n props.style,\n ]}\n >\n {props.withIcon ? <Image source={{ uri: icon }} style={styles.icon} testID=\"notice-icon\" /> : <></>}\n {props.children}\n <View\n style={styles.textWrapper}\n testID=\"text-wrapper\"\n onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}\n >\n {props.type === NoticeBarType.SCROLLABLE ? (\n <View style={{ minHeight: 18, overflow: \"scroll\", flexDirection: \"row\" }}>\n <Animated.Text\n numberOfLines={1}\n style={[{ transform: [{ translateX: scrollX }] }]}\n onLayout={(e) => setTextWidth(e.nativeEvent.layout.width)}\n >\n <Text style={styles.text}>{props.content}</Text>\n <Text style={styles.text}>{\" \"}</Text>\n <Text style={styles.text}>{props.content}</Text>\n </Animated.Text>\n </View>\n ) : (\n <Text\n style={[styles.text]}\n numberOfLines={props.type === NoticeBarType.BASIC ? 1 : undefined}\n ellipsizeMode=\"tail\"\n >\n {props.content}\n </Text>\n )}\n </View>\n {props.actionType === NoticeBarActionType.TEXTACTION ? (\n <Text style={styles.linkText} onPress={handleLink}>\n {props.actionText || jumpKey}\n </Text>\n ) : (\n <></>\n )}\n {/* 跳转icon */}\n {props.actionType === NoticeBarActionType.ICONACTION ? (\n <TouchableWithoutFeedback onPress={handleLink}>\n <Image\n testID=\"action-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/2708eed5e1ec88c28d5358d1496e6c8d28eaf819.png\",\n }}\n style={styles.link}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n {/* 关闭icon */}\n {props.closable ? (\n <TouchableWithoutFeedback onPress={handleClose}>\n <Image\n testID=\"close-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/0792412fe36bc5bed739e0a62c504b3b83caeedb.png\",\n }}\n style={styles.close}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n );\n};\n\nNoticeBar.defaultProps = NoticeBarDefaultProps;\n\nexport default NoticeBar;\n"],"names":["NoticeBar","props","useMounted","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","themeColor","useThemeColor","styles","getStyles","jumpKey","useLanguage","icon","useMemo","theme","color","Info2","Success2","Warning2","Primary2","_useState3","_useState4","textWidth","setTextWidth","_useState5","_useState6","containerWidth","setContainerWidth","scrollX","useRef","Animated","Value","current","scrollDistance","Math","max","useEffect","type","NoticeBarType","SCROLLABLE","startScrolling","setValue","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","_ref","finished","handleLink","_props$onClick","onClick","call","handleClose","_props$onClose","onClose","visible","React","createElement","View","style","container","backgroundColor","alignItems","MUTILINE","withIcon","Image","source","uri","testID","Fragment","children","textWrapper","onLayout","e","nativeEvent","layout","width","minHeight","overflow","flexDirection","Text","numberOfLines","transform","translateX","text","content","BASIC","ellipsizeMode","actionType","NoticeBarActionType","TEXTACTION","linkText","onPress","actionText","ICONACTION","TouchableWithoutFeedback","link","closable","close","defaultProps","NoticeBarDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NoticeBar.js","sources":["../../../../src/components/NoticeBar/NoticeBar.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport {\n View,\n TouchableWithoutFeedback,\n Text,\n Image,\n Animated,\n Easing,\n LayoutChangeEvent,\n Platform,\n TextStyle,\n} from \"react-native\";\nimport { RedsNoticeBar, NoticeBarDefaultProps, NoticeBarType, NoticeBarActionType } from \"./interface/index\";\nimport getStyles from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst AnimatedTextStyle =\n Platform.OS === \"web\"\n ? {\n textOverflow: \"initial\",\n overflow: \"initial\",\n maxWidth: \"auto\",\n }\n : {};\n\nconst NoticeBar = (props: RedsNoticeBar) => {\n useMounted(\"NoticeBar\");\n const [_visible, setVisible] = useState(true);\n\n const themeColor = useThemeColor();\n\n const styles = getStyles(themeColor);\n\n const jumpKey = useLanguage(\"componentKey\", \"jumpKey\");\n\n const icon = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n case \"success\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c62ce17c572dff50aa28209bedf635fc303d18f8.png\";\n case \"warning\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/11b33735cbfddd621d1163dec26a5c240bc407f1.png\";\n case \"danger\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/4df0100d42449186672e3c4d9863ec4bce4bb23a.png\";\n default:\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n }\n }, [props.theme]);\n\n const color = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return themeColor.Info2;\n case \"success\":\n return themeColor.Success2;\n case \"warning\":\n return themeColor.Warning2;\n case \"danger\":\n return themeColor.Primary2;\n default:\n return themeColor.Info2;\n }\n }, [props.theme, themeColor]);\n\n const [textWidth, setTextWidth] = useState(0);\n const [containerWidth, setContainerWidth] = useState(0);\n const scrollX = useRef(new Animated.Value(0)).current;\n\n const scrollDistance = useMemo(() => Math.max(textWidth - containerWidth, 0), [textWidth, containerWidth]);\n\n useEffect(() => {\n if (props.type === NoticeBarType.SCROLLABLE && textWidth > 0 && scrollDistance > 0) {\n const startScrolling = () => {\n scrollX.setValue(0);\n Animated.timing(scrollX, {\n toValue: -scrollDistance,\n duration: scrollDistance * 30,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n startScrolling();\n }\n });\n };\n\n startScrolling();\n }\n }, [textWidth, containerWidth, props.type, scrollDistance]);\n\n const handleLink = () => {\n props.onClick?.();\n };\n\n const handleClose = () => {\n setVisible(false);\n props.onClose?.();\n };\n\n useEffect(() => {\n setVisible(!!props.visible);\n }, [props.visible]);\n\n const handleAnimatedTextLayout = (e: LayoutChangeEvent) => {\n setTextWidth(e.nativeEvent.layout.width);\n };\n\n return _visible ? (\n <View\n style={[\n styles.container,\n { backgroundColor: color, alignItems: props.type === NoticeBarType.MUTILINE ? \"flex-start\" : \"center\" },\n props.style,\n ]}\n >\n {props.withIcon ? <Image source={{ uri: icon }} style={styles.icon} testID=\"notice-icon\" /> : <></>}\n {props.children}\n <View\n style={styles.textWrapper}\n testID=\"text-wrapper\"\n onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}\n >\n {props.type === NoticeBarType.SCROLLABLE ? (\n <View style={{ minHeight: 18, overflow: Platform.OS === \"web\" ? \"hidden\" : \"scroll\", flexDirection: \"row\" }}>\n <Animated.Text\n numberOfLines={1}\n style={[{ transform: [{ translateX: scrollX }] }, AnimatedTextStyle as TextStyle]}\n onLayout={handleAnimatedTextLayout}\n >\n <Text style={styles.text}>{props.content}</Text>\n <Text style={styles.text}>{\" \"}</Text>\n <Text style={styles.text}>{props.content}</Text>\n </Animated.Text>\n </View>\n ) : (\n <Text\n style={[styles.text]}\n numberOfLines={props.type === NoticeBarType.BASIC ? 1 : undefined}\n ellipsizeMode=\"tail\"\n >\n {props.content}\n </Text>\n )}\n </View>\n {props.actionType === NoticeBarActionType.TEXTACTION ? (\n <Text style={styles.linkText} onPress={handleLink}>\n {props.actionText || jumpKey}\n </Text>\n ) : (\n <></>\n )}\n {/* 跳转icon */}\n {props.actionType === NoticeBarActionType.ICONACTION ? (\n <TouchableWithoutFeedback onPress={handleLink}>\n <Image\n testID=\"action-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/2708eed5e1ec88c28d5358d1496e6c8d28eaf819.png\",\n }}\n style={styles.link}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n {/* 关闭icon */}\n {props.closable ? (\n <TouchableWithoutFeedback onPress={handleClose}>\n <Image\n testID=\"close-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/0792412fe36bc5bed739e0a62c504b3b83caeedb.png\",\n }}\n style={styles.close}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n );\n};\n\nNoticeBar.defaultProps = NoticeBarDefaultProps;\n\nexport default NoticeBar;\n"],"names":["AnimatedTextStyle","Platform","OS","textOverflow","overflow","maxWidth","NoticeBar","props","useMounted","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","themeColor","useThemeColor","styles","getStyles","jumpKey","useLanguage","icon","useMemo","theme","color","Info2","Success2","Warning2","Primary2","_useState3","_useState4","textWidth","setTextWidth","_useState5","_useState6","containerWidth","setContainerWidth","scrollX","useRef","Animated","Value","current","scrollDistance","Math","max","useEffect","type","NoticeBarType","SCROLLABLE","startScrolling","setValue","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","_ref","finished","handleLink","_props$onClick","onClick","call","handleClose","_props$onClose","onClose","visible","handleAnimatedTextLayout","e","nativeEvent","layout","width","React","createElement","View","style","container","backgroundColor","alignItems","MUTILINE","withIcon","Image","source","uri","testID","Fragment","children","textWrapper","onLayout","minHeight","flexDirection","Text","numberOfLines","transform","translateX","text","content","BASIC","ellipsizeMode","actionType","NoticeBarActionType","TEXTACTION","linkText","onPress","actionText","ICONACTION","TouchableWithoutFeedback","link","closable","close","defaultProps","NoticeBarDefaultProps"],"mappings":"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"}
|
|
@@ -91,7 +91,8 @@ var PickerView = function PickerView(props) {
|
|
|
91
91
|
type: "default"
|
|
92
92
|
})) : /* @__PURE__ */React.createElement(reactNative.View, {
|
|
93
93
|
style: [components_PickerView_styles.default.wheelWrapper, {
|
|
94
|
-
backgroundColor: themeColor.Bg2
|
|
94
|
+
backgroundColor: themeColor.Bg2,
|
|
95
|
+
overflow: "scroll"
|
|
95
96
|
}]
|
|
96
97
|
}, columns.map(function (column, colIndex) {
|
|
97
98
|
return /* @__PURE__ */React.createElement(components_PickerView_Wheel.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickerView.js","sources":["../../../../src/components/PickerView/PickerView.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { View } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport ProgressIndicator from \"../ProgressIndicator\";\nimport { RedsPickerView } from \"./interface/index\";\nimport styles from \"./styles\";\nimport Wheel from \"./Wheel\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst itemHeight = 40;\n\nconst PickerView = (props: RedsPickerView) => {\n useMounted(\"PickerView\");\n const { loading, columns = [], value = [], onChange = () => {}, accessibility = {} } = props;\n\n const themeColor = useThemeColor(\"Picker\");\n\n const [currentValue, setCurrentValue] = useState<string[]>([]);\n\n const [lastValue, setLastValue] = useState<string[]>([]);\n\n const handleSelect = (val: string, index: number) => {\n const newVal = currentValue.map((i, idx) => {\n return idx === index ? val : i;\n });\n if (newVal.join() !== currentValue.join()) {\n setCurrentValue(newVal);\n onChange(newVal);\n }\n };\n\n useEffect(() => {\n if (!value?.length) {\n const newVal = columns?.map?.((col) => col?.[0]?.value);\n setCurrentValue(newVal);\n } else if (value.join(\"\") !== lastValue.join(\"\")) {\n setCurrentValue(value);\n }\n setLastValue(value);\n }, [value]);\n\n return (\n <View style={[styles.wrapper, { backgroundColor: themeColor.Bg2 }]}>\n <View style={[{ height: 5 * itemHeight }]}>\n {loading || columns?.length === 0 ? (\n <View style={styles.progressIndicator} testID=\"progress-indicator\">\n <ProgressIndicator type=\"default\" />\n </View>\n ) : (\n <View style={[styles.wheelWrapper, { backgroundColor: themeColor.Bg2 }]}>\n {columns.map((column, colIndex) => (\n <Wheel\n key={colIndex}\n index={colIndex}\n column={column}\n value={currentValue?.[colIndex]}\n onSelect={handleSelect}\n accessibility={accessibility}\n />\n ))}\n </View>\n )}\n </View>\n {/* mask */}\n {!loading ? (\n <View style={styles.mask} pointerEvents=\"none\">\n <View style={[styles.maskTop, { backgroundColor: themeColor.Bg2 }]} />\n <View\n style={[\n styles.maskMiddle,\n { height: itemHeight, borderTopColor: themeColor.Separator, borderBottomColor: themeColor.Separator },\n ]}\n />\n <View style={[styles.maskBottom, { backgroundColor: themeColor.Bg2 }]} />\n </View>\n ) : (\n <></>\n )}\n </View>\n );\n};\n\nexport default React.memo(PickerView);\n"],"names":["itemHeight","PickerView","props","useMounted","loading","columns","_props$columns","value","_props$value","_props$onChange","onChange","_props$accessibility","accessibility","themeColor","useThemeColor","_useState","useState","_useState2","_slicedToArray","currentValue","setCurrentValue","_useState3","_useState4","lastValue","setLastValue","handleSelect","val","index","newVal","map","i","idx","join","useEffect","length","_columns$map","call","col","_col$","React","createElement","View","style","styles","wrapper","backgroundColor","Bg2","height","progressIndicator","testID","ProgressIndicator","type","wheelWrapper","column","colIndex","Wheel","key","onSelect","mask","pointerEvents","maskTop","maskMiddle","borderTopColor","Separator","borderBottomColor","maskBottom","memo"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PickerView.js","sources":["../../../../src/components/PickerView/PickerView.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { View } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport ProgressIndicator from \"../ProgressIndicator\";\nimport { RedsPickerView } from \"./interface/index\";\nimport styles from \"./styles\";\nimport Wheel from \"./Wheel\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst itemHeight = 40;\n\nconst PickerView = (props: RedsPickerView) => {\n useMounted(\"PickerView\");\n const { loading, columns = [], value = [], onChange = () => {}, accessibility = {} } = props;\n\n const themeColor = useThemeColor(\"Picker\");\n\n const [currentValue, setCurrentValue] = useState<string[]>([]);\n\n const [lastValue, setLastValue] = useState<string[]>([]);\n\n const handleSelect = (val: string, index: number) => {\n const newVal = currentValue.map((i, idx) => {\n return idx === index ? val : i;\n });\n if (newVal.join() !== currentValue.join()) {\n setCurrentValue(newVal);\n onChange(newVal);\n }\n };\n\n useEffect(() => {\n if (!value?.length) {\n const newVal = columns?.map?.((col) => col?.[0]?.value);\n setCurrentValue(newVal);\n } else if (value.join(\"\") !== lastValue.join(\"\")) {\n setCurrentValue(value);\n }\n setLastValue(value);\n }, [value]);\n\n return (\n <View style={[styles.wrapper, { backgroundColor: themeColor.Bg2 }]}>\n <View style={[{ height: 5 * itemHeight }]}>\n {loading || columns?.length === 0 ? (\n <View style={styles.progressIndicator} testID=\"progress-indicator\">\n <ProgressIndicator type=\"default\" />\n </View>\n ) : (\n <View style={[styles.wheelWrapper, { backgroundColor: themeColor.Bg2, overflow: \"scroll\" }]}>\n {columns.map((column, colIndex) => (\n <Wheel\n key={colIndex}\n index={colIndex}\n column={column}\n value={currentValue?.[colIndex]}\n onSelect={handleSelect}\n accessibility={accessibility}\n />\n ))}\n </View>\n )}\n </View>\n {/* mask */}\n {!loading ? (\n <View style={styles.mask} pointerEvents=\"none\">\n <View style={[styles.maskTop, { backgroundColor: themeColor.Bg2 }]} />\n <View\n style={[\n styles.maskMiddle,\n { height: itemHeight, borderTopColor: themeColor.Separator, borderBottomColor: themeColor.Separator },\n ]}\n />\n <View style={[styles.maskBottom, { backgroundColor: themeColor.Bg2 }]} />\n </View>\n ) : (\n <></>\n )}\n </View>\n );\n};\n\nexport default React.memo(PickerView);\n"],"names":["itemHeight","PickerView","props","useMounted","loading","columns","_props$columns","value","_props$value","_props$onChange","onChange","_props$accessibility","accessibility","themeColor","useThemeColor","_useState","useState","_useState2","_slicedToArray","currentValue","setCurrentValue","_useState3","_useState4","lastValue","setLastValue","handleSelect","val","index","newVal","map","i","idx","join","useEffect","length","_columns$map","call","col","_col$","React","createElement","View","style","styles","wrapper","backgroundColor","Bg2","height","progressIndicator","testID","ProgressIndicator","type","wheelWrapper","overflow","column","colIndex","Wheel","key","onSelect","mask","pointerEvents","maskTop","maskMiddle","borderTopColor","Separator","borderBottomColor","maskBottom","memo"],"mappings":"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"}
|
|
@@ -116,7 +116,11 @@ var Wheel = function Wheel(props) {
|
|
|
116
116
|
onPress: function onPress() {
|
|
117
117
|
return handleClick(index2);
|
|
118
118
|
},
|
|
119
|
-
key: item.value
|
|
119
|
+
key: item.value,
|
|
120
|
+
style: reactNative.Platform.OS === "web" ? {
|
|
121
|
+
border: "none",
|
|
122
|
+
alignSelf: "inherit"
|
|
123
|
+
} : {}
|
|
120
124
|
}, /* @__PURE__ */React.createElement(reactNative.View, _rollupPluginBabelHelpers._objectSpread2({
|
|
121
125
|
style: [components_PickerView_styles.default.wheel, {
|
|
122
126
|
height: itemHeight,
|
|
@@ -131,9 +135,25 @@ var Wheel = function Wheel(props) {
|
|
|
131
135
|
}), item.label)));
|
|
132
136
|
});
|
|
133
137
|
};
|
|
138
|
+
React.useEffect(function () {
|
|
139
|
+
var _scrollerRef$current2;
|
|
140
|
+
if (reactNative.Platform.OS !== "web") {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
var handleScrollEnd = function handleScrollEnd(e) {
|
|
144
|
+
var selectIndex = Math.round(e.target.scrollTop / itemHeight);
|
|
145
|
+
setIndex(selectIndex);
|
|
146
|
+
};
|
|
147
|
+
(_scrollerRef$current2 = scrollerRef.current) === null || _scrollerRef$current2 === void 0 || _scrollerRef$current2.addEventListener("scrollend", handleScrollEnd);
|
|
148
|
+
return function () {
|
|
149
|
+
var _scrollerRef$current3;
|
|
150
|
+
(_scrollerRef$current3 = scrollerRef.current) === null || _scrollerRef$current3 === void 0 || _scrollerRef$current3.removeEventListener("scrollend", handleScrollEnd);
|
|
151
|
+
};
|
|
152
|
+
}, [scrollerRef.current, itemHeight]);
|
|
134
153
|
return /* @__PURE__ */React.createElement(reactNative.ScrollView, _rollupPluginBabelHelpers._objectSpread2({
|
|
135
154
|
style: {
|
|
136
|
-
flex: 1
|
|
155
|
+
flex: 1,
|
|
156
|
+
height: "100%"
|
|
137
157
|
},
|
|
138
158
|
nestedScrollEnabled: true,
|
|
139
159
|
horizontal: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport { NativeScrollEvent, NativeSyntheticEvent, ScrollView, View, Text, TouchableNativeFeedback } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n const [scrollEnded, setScrollEnded] = useState(false);\n\n const [scrollHeight, setScrollHeight] = useState(0);\n\n const [lastValue, setLastValue] = useState(value);\n\n const onScrollEndDrag = () => {\n setScrollEnded(true);\n };\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n if (value !== lastValue) {\n const idx = getSelectIndex(column, value);\n setIndex(idx);\n }\n }, [column, value]);\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n /**\n * index\n */\n const [index, setIndex] = useState<any>();\n\n const timer = useRef<any>();\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n value && setIndex(getSelectIndex(column, value));\n }, [column, value]);\n\n useEffect(() => {\n const newVal = column?.[index]?.value;\n scrollTo(index * itemHeight);\n if (newVal) {\n onSelect(newVal, props.index);\n setLastValue(newVal);\n }\n }, [index, props.index]);\n\n useEffect(() => {\n if (scrollEnded) {\n // @ts-ignore\n if (scrollHeight != null) {\n timer.current = setTimeout(() => {\n const selectIndex = Math.round(scrollHeight / itemHeight);\n if (selectIndex >= 0 && selectIndex < column.length) {\n setIndex(selectIndex);\n }\n }, 0);\n }\n setScrollEnded(false);\n }\n return () => {\n timer.current && clearTimeout(timer.current);\n };\n }, [scrollEnded]);\n\n /**\n * 滚动ScrollView\n * @param y 滚动距离\n */\n const scrollTo = (y: any) => {\n setTimeout(() => {\n // @ts-ignore\n scrollerRef?.current?.scrollTo?.({\n y,\n animated: true,\n });\n });\n };\n\n /**\n * 计算当前滚动高度\n * @param column 数组\n * @param value 选中值\n * @returns\n */\n const getSelectIndex = (column: Column[], value?: string) => {\n return value\n ? Math.max(\n column.findIndex((item) => {\n if (isNaN(parseInt(item.value)) || isNaN(parseInt(value))) {\n return value && item.value === value;\n } else {\n return value && parseInt(item.value) === parseInt(value);\n }\n }),\n 0,\n )\n : 0;\n };\n\n /**\n * 结束滚动\n * @param e\n */\n const onMomentumScrollEnd = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n e.persist?.();\n let contentOffset = e.nativeEvent.contentOffset;\n const selectIndex = Math.round(contentOffset.y / itemHeight);\n setIndex(selectIndex);\n const newVal = column?.[selectIndex]?.value;\n setLastValue(newVal);\n };\n\n const onScroll = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n setScrollHeight(e.nativeEvent.contentOffset.y);\n };\n\n const handleClick = (index: number) => {\n setIndex(index);\n };\n\n /**\n * 渲染item\n * @returns ReactNode\n */\n const renderItems = () => {\n return column.map((item, index) => (\n <TouchableNativeFeedback onPress={() => handleClick(index)} key={item.value}>\n <View\n style={[styles.wheel, { height: itemHeight, backgroundColor: themeColor.Bg2 }]}\n key={item.value}\n {...item.accessibility}\n >\n <Text {...item.accessibility} style={{ color: themeColor.Title, fontSize: typography.B1FontSize }}>\n {item.label}\n </Text>\n </View>\n </TouchableNativeFeedback>\n ));\n };\n\n return (\n <ScrollView\n style={{ flex: 1 }}\n nestedScrollEnabled\n horizontal={false}\n ref={(el: any) => (scrollerRef.current = el)}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n pagingEnabled={false}\n automaticallyAdjustContentInsets={false}\n directionalLockEnabled={true}\n decelerationRate=\"fast\"\n snapToInterval={itemHeight}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onScrollEndDrag}\n onScroll={onScroll}\n scrollEventThrottle={16}\n testID={`wheel${props.index}`}\n {...accessibility}\n >\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n {renderItems()}\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n </ScrollView>\n );\n};\n\nexport default Wheel;\n"],"names":["itemHeight","Wheel","props","value","_props$column","column","_props$onSelect","onSelect","_props$accessibility","accessibility","scrollerRef","useRef","_useState","useState","_useState2","_slicedToArray","scrollEnded","setScrollEnded","_useState3","_useState4","scrollHeight","setScrollHeight","_useState5","_useState6","lastValue","setLastValue","onScrollEndDrag","useEffect","idx","getSelectIndex","setIndex","themeColor","useThemeColor","_useState7","_useState8","index","timer","_column$index","newVal","scrollTo","current","setTimeout","selectIndex","Math","round","length","clearTimeout","y","_scrollerRef$current","_scrollerRef$current$","call","animated","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","_column$selectIndex","persist","contentOffset","nativeEvent","onScroll","handleClick","renderItems","map","React","createElement","TouchableNativeFeedback","onPress","key","View","_objectSpread","style","styles","wheel","height","backgroundColor","Bg2","Text","color","Title","fontSize","typography","B1FontSize","label","ScrollView","flex","nestedScrollEnabled","horizontal","ref","el","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","pagingEnabled","automaticallyAdjustContentInsets","directionalLockEnabled","decelerationRate","snapToInterval","scrollEventThrottle","testID","concat"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport {\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n View,\n Text,\n TouchableNativeFeedback,\n Platform,\n} from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n const [scrollEnded, setScrollEnded] = useState(false);\n\n const [scrollHeight, setScrollHeight] = useState(0);\n\n const [lastValue, setLastValue] = useState(value);\n\n const onScrollEndDrag = () => {\n setScrollEnded(true);\n };\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n if (value !== lastValue) {\n const idx = getSelectIndex(column, value);\n setIndex(idx);\n }\n }, [column, value]);\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n /**\n * index\n */\n const [index, setIndex] = useState<any>();\n\n const timer = useRef<any>();\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n value && setIndex(getSelectIndex(column, value));\n }, [column, value]);\n\n useEffect(() => {\n const newVal = column?.[index]?.value;\n scrollTo(index * itemHeight);\n if (newVal) {\n onSelect(newVal, props.index);\n setLastValue(newVal);\n }\n }, [index, props.index]);\n\n useEffect(() => {\n if (scrollEnded) {\n // @ts-ignore\n if (scrollHeight != null) {\n timer.current = setTimeout(() => {\n const selectIndex = Math.round(scrollHeight / itemHeight);\n if (selectIndex >= 0 && selectIndex < column.length) {\n setIndex(selectIndex);\n }\n }, 0);\n }\n setScrollEnded(false);\n }\n return () => {\n timer.current && clearTimeout(timer.current);\n };\n }, [scrollEnded]);\n\n /**\n * 滚动ScrollView\n * @param y 滚动距离\n */\n const scrollTo = (y: any) => {\n setTimeout(() => {\n // @ts-ignore\n scrollerRef?.current?.scrollTo?.({\n y,\n animated: true,\n });\n });\n };\n\n /**\n * 计算当前滚动高度\n * @param column 数组\n * @param value 选中值\n * @returns\n */\n const getSelectIndex = (column: Column[], value?: string) => {\n return value\n ? Math.max(\n column.findIndex((item) => {\n if (isNaN(parseInt(item.value)) || isNaN(parseInt(value))) {\n return value && item.value === value;\n } else {\n return value && parseInt(item.value) === parseInt(value);\n }\n }),\n 0,\n )\n : 0;\n };\n\n /**\n * 结束滚动\n * @param e\n */\n const onMomentumScrollEnd = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n e.persist?.();\n let contentOffset = e.nativeEvent.contentOffset;\n const selectIndex = Math.round(contentOffset.y / itemHeight);\n setIndex(selectIndex);\n const newVal = column?.[selectIndex]?.value;\n setLastValue(newVal);\n };\n\n const onScroll = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n setScrollHeight(e.nativeEvent.contentOffset.y);\n };\n\n const handleClick = (index: number) => {\n setIndex(index);\n };\n\n /**\n * 渲染item\n * @returns ReactNode\n */\n const renderItems = () => {\n return column.map((item, index) => (\n <TouchableNativeFeedback\n onPress={() => handleClick(index)}\n key={item.value}\n // @ts-expect-error\n style={Platform.OS === \"web\" ? { border: \"none\", alignSelf: \"inherit\" } : {}}\n >\n <View\n style={[styles.wheel, { height: itemHeight, backgroundColor: themeColor.Bg2 }]}\n key={item.value}\n {...item.accessibility}\n >\n <Text {...item.accessibility} style={{ color: themeColor.Title, fontSize: typography.B1FontSize }}>\n {item.label}\n </Text>\n </View>\n </TouchableNativeFeedback>\n ));\n };\n\n useEffect(() => {\n if (Platform.OS !== \"web\") {\n return;\n }\n const handleScrollEnd = (e: any) => {\n const selectIndex = Math.round(e.target.scrollTop / itemHeight);\n setIndex(selectIndex);\n };\n // @ts-expect-error\n scrollerRef.current?.addEventListener(\"scrollend\", handleScrollEnd);\n return () => {\n // @ts-expect-error\n scrollerRef.current?.removeEventListener(\"scrollend\", handleScrollEnd);\n };\n }, [scrollerRef.current, itemHeight]);\n\n return (\n <ScrollView\n style={{ flex: 1, height: \"100%\" }}\n nestedScrollEnabled\n horizontal={false}\n ref={(el: any) => (scrollerRef.current = el)}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n pagingEnabled={false}\n automaticallyAdjustContentInsets={false}\n directionalLockEnabled={true}\n decelerationRate=\"fast\"\n snapToInterval={itemHeight}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onScrollEndDrag}\n onScroll={onScroll}\n scrollEventThrottle={16}\n testID={`wheel${props.index}`}\n {...accessibility}\n >\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n {renderItems()}\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n </ScrollView>\n );\n};\n\nexport default Wheel;\n"],"names":["itemHeight","Wheel","props","value","_props$column","column","_props$onSelect","onSelect","_props$accessibility","accessibility","scrollerRef","useRef","_useState","useState","_useState2","_slicedToArray","scrollEnded","setScrollEnded","_useState3","_useState4","scrollHeight","setScrollHeight","_useState5","_useState6","lastValue","setLastValue","onScrollEndDrag","useEffect","idx","getSelectIndex","setIndex","themeColor","useThemeColor","_useState7","_useState8","index","timer","_column$index","newVal","scrollTo","current","setTimeout","selectIndex","Math","round","length","clearTimeout","y","_scrollerRef$current","_scrollerRef$current$","call","animated","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","_column$selectIndex","persist","contentOffset","nativeEvent","onScroll","handleClick","renderItems","map","React","createElement","TouchableNativeFeedback","onPress","key","style","Platform","OS","border","alignSelf","View","_objectSpread","styles","wheel","height","backgroundColor","Bg2","Text","color","Title","fontSize","typography","B1FontSize","label","_scrollerRef$current2","handleScrollEnd","target","scrollTop","addEventListener","_scrollerRef$current3","removeEventListener","ScrollView","flex","nestedScrollEnabled","horizontal","ref","el","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","pagingEnabled","automaticallyAdjustContentInsets","directionalLockEnabled","decelerationRate","snapToInterval","scrollEventThrottle","testID","concat"],"mappings":"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"}
|
|
@@ -56,45 +56,38 @@ var Popover = (function (_ref) {
|
|
|
56
56
|
_useState2 = _rollupPluginBabelHelpers._slicedToArray(_useState, 2),
|
|
57
57
|
_visible = _useState2[0],
|
|
58
58
|
setVisible = _useState2[1];
|
|
59
|
+
var _useState3 = React.useState({}),
|
|
60
|
+
_useState4 = _rollupPluginBabelHelpers._slicedToArray(_useState3, 2),
|
|
61
|
+
floatStyles = _useState4[0],
|
|
62
|
+
setFloatStyles = _useState4[1];
|
|
63
|
+
var _useState5 = React.useState({}),
|
|
64
|
+
_useState6 = _rollupPluginBabelHelpers._slicedToArray(_useState5, 2),
|
|
65
|
+
arrowStyles = _useState6[0],
|
|
66
|
+
setArrowStyles = _useState6[1];
|
|
59
67
|
var progress = React.useRef(new reactNative.Animated.Value(0)).current;
|
|
60
68
|
var childRef = React.useRef(null);
|
|
61
|
-
var
|
|
62
|
-
x: defaultValue,
|
|
63
|
-
y: defaultValue,
|
|
64
|
-
width: 0,
|
|
65
|
-
height: 0
|
|
66
|
-
}),
|
|
67
|
-
_useState4 = _rollupPluginBabelHelpers._slicedToArray(_useState3, 2),
|
|
68
|
-
layout = _useState4[0],
|
|
69
|
-
setLayout = _useState4[1];
|
|
70
|
-
var _useState5 = React.useState({
|
|
69
|
+
var _useState7 = React.useState({
|
|
71
70
|
x: defaultValue,
|
|
72
71
|
y: defaultValue,
|
|
73
72
|
width: 0,
|
|
74
73
|
height: 0
|
|
75
74
|
}),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var
|
|
75
|
+
_useState8 = _rollupPluginBabelHelpers._slicedToArray(_useState7, 2),
|
|
76
|
+
layout = _useState8[0],
|
|
77
|
+
setLayout = _useState8[1];
|
|
78
|
+
var handleFloatingLayout = function handleFloatingLayout(e) {
|
|
79
|
+
var floatingLayout = e.nativeEvent.layout;
|
|
80
80
|
var start = ["top-start", "bottom-start"].includes(placement);
|
|
81
81
|
var mid = ["top", "bottom"].includes(placement);
|
|
82
82
|
var end = ["top-end", "bottom-end"].includes(placement);
|
|
83
83
|
var diffX = floatingLayout.width - layout.width;
|
|
84
|
-
var isHarmony = Platform.OS === "harmony";
|
|
85
|
-
|
|
84
|
+
var isHarmony = reactNative.Platform.OS === "harmony";
|
|
85
|
+
var floatStyles2 = layout.height ? {
|
|
86
86
|
position: "absolute",
|
|
87
87
|
top: (placement.includes("top") ? layout.y - floatingLayout.height - 12 : layout.y + layout.height + 12) - ((offset === null || offset === void 0 ? void 0 : offset.y) || 0),
|
|
88
88
|
left: (start ? layout.x : mid ? layout.x - diffX / 2 : end ? layout.x - diffX : 0) + ((offset === null || offset === void 0 ? void 0 : offset.x) || 0) - (isHarmony ? reactNative.Dimensions.get("screen").width : 0)
|
|
89
89
|
} : {};
|
|
90
|
-
|
|
91
|
-
var arrowStyles = React.useMemo(function () {
|
|
92
|
-
var start = ["top-start", "bottom-start"].includes(placement);
|
|
93
|
-
var mid = ["top", "bottom"].includes(placement);
|
|
94
|
-
var end = ["top-end", "bottom-end"].includes(placement);
|
|
95
|
-
var diffX = floatingLayout.width - layout.width;
|
|
96
|
-
var isHarmony = Platform.OS === "harmony";
|
|
97
|
-
return layout.height ? {
|
|
90
|
+
var arrowStyles2 = layout.height ? {
|
|
98
91
|
transform: [{
|
|
99
92
|
rotate: placement.includes("top") ? "0deg" : "180deg"
|
|
100
93
|
}],
|
|
@@ -102,7 +95,9 @@ var Popover = (function (_ref) {
|
|
|
102
95
|
top: (placement.includes("top") ? layout.y - 12 : layout.y + layout.height + 6) + ((offset === null || offset === void 0 ? void 0 : offset.y) || 0) + ((arrowOffset === null || arrowOffset === void 0 ? void 0 : arrowOffset.y) || 0),
|
|
103
96
|
left: (start ? layout.x + 8 : mid ? layout.x - diffX / 2 + floatingLayout.width / 2 - 6 : end ? layout.x - diffX + floatingLayout.width - 24 : 0) + ((offset === null || offset === void 0 ? void 0 : offset.x) || 0) + ((arrowOffset === null || arrowOffset === void 0 ? void 0 : arrowOffset.x) || 0) - (isHarmony ? reactNative.Dimensions.get("screen").width : 0)
|
|
104
97
|
} : {};
|
|
105
|
-
|
|
98
|
+
setFloatStyles(floatStyles2);
|
|
99
|
+
setArrowStyles(arrowStyles2);
|
|
100
|
+
};
|
|
106
101
|
React.useEffect(function () {
|
|
107
102
|
var timer;
|
|
108
103
|
if (duration) {
|
|
@@ -201,6 +196,9 @@ var Popover = (function (_ref) {
|
|
|
201
196
|
},
|
|
202
197
|
onPressOut: function onPressOut(e) {
|
|
203
198
|
trigger === "touch" && onMaskChange(e, false);
|
|
199
|
+
if (reactNative.Platform.OS === "web" && trigger === "click") {
|
|
200
|
+
onMaskChange(e, true);
|
|
201
|
+
}
|
|
204
202
|
}
|
|
205
203
|
}, /* @__PURE__ */React.createElement(reactNative.View, {
|
|
206
204
|
collapsable: false,
|
|
@@ -225,9 +223,7 @@ var Popover = (function (_ref) {
|
|
|
225
223
|
zIndex: zIndex
|
|
226
224
|
}, /* @__PURE__ */React.createElement(React.Fragment, null, /* @__PURE__ */React.createElement(reactNative.Animated.View, {
|
|
227
225
|
collapsable: false,
|
|
228
|
-
onLayout:
|
|
229
|
-
setFloatingLayout(e.nativeEvent.layout);
|
|
230
|
-
},
|
|
226
|
+
onLayout: handleFloatingLayout,
|
|
231
227
|
style: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({
|
|
232
228
|
backgroundColor: popoverStyle.backgroundColor,
|
|
233
229
|
paddingHorizontal: 12,
|