dhre-ui-kit 0.0.294 → 0.0.296
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/lib/index.d.ts +71 -71
- package/lib/index.js +75 -67
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +217 -209
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var React
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var reactRedux = require('react-redux');
|
|
7
7
|
var reactNative = require('react-native');
|
|
8
8
|
var Modal = require('react-native-modal');
|
|
@@ -41,7 +41,7 @@ function _interopNamespace(e) {
|
|
|
41
41
|
return Object.freeze(n);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React
|
|
44
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
45
45
|
var Modal__default = /*#__PURE__*/_interopDefaultLegacy(Modal);
|
|
46
46
|
var Clipboard__default = /*#__PURE__*/_interopDefaultLegacy(Clipboard);
|
|
47
47
|
var LottieView__default = /*#__PURE__*/_interopDefaultLegacy(LottieView);
|
|
@@ -302,7 +302,7 @@ const theme = {
|
|
|
302
302
|
}
|
|
303
303
|
};
|
|
304
304
|
|
|
305
|
-
const ThemeContext = React
|
|
305
|
+
const ThemeContext = React.createContext(void 0);
|
|
306
306
|
const ThemeProvider = ({ children }) => {
|
|
307
307
|
const mode = reactRedux.useSelector((state) => state.theme.currentTheme);
|
|
308
308
|
const filteredTheme = Object.keys(theme).reduce((acc, key) => {
|
|
@@ -312,7 +312,7 @@ const ThemeProvider = ({ children }) => {
|
|
|
312
312
|
return /* @__PURE__ */ React__default["default"].createElement(ThemeContext.Provider, { value: { theme: filteredTheme, mode } }, children);
|
|
313
313
|
};
|
|
314
314
|
const useTheme = () => {
|
|
315
|
-
const context = React
|
|
315
|
+
const context = React.useContext(ThemeContext);
|
|
316
316
|
if (context === void 0) {
|
|
317
317
|
throw new Error("useTheme must be used within a ThemeProvider");
|
|
318
318
|
}
|
|
@@ -1039,8 +1039,8 @@ const Checkbox = ({
|
|
|
1039
1039
|
containerStyle,
|
|
1040
1040
|
onPress
|
|
1041
1041
|
}) => {
|
|
1042
|
-
const [checked, setChecked] = React
|
|
1043
|
-
React
|
|
1042
|
+
const [checked, setChecked] = React.useState(isChecked || false);
|
|
1043
|
+
React.useEffect(() => {
|
|
1044
1044
|
setChecked(isChecked);
|
|
1045
1045
|
}, [isChecked]);
|
|
1046
1046
|
const handlePress = () => {
|
|
@@ -1123,7 +1123,7 @@ const CustomDropdown$1 = ({
|
|
|
1123
1123
|
upArrowIcon,
|
|
1124
1124
|
downArrowIcon
|
|
1125
1125
|
}) => {
|
|
1126
|
-
const [showOptions, setShowOptions] = React
|
|
1126
|
+
const [showOptions, setShowOptions] = React.useState(false);
|
|
1127
1127
|
return /* @__PURE__ */ React__default["default"].createElement(reactNative.View, { testID: testId }, /* @__PURE__ */ React__default["default"].createElement(
|
|
1128
1128
|
CustomTypography,
|
|
1129
1129
|
{
|
|
@@ -1252,10 +1252,10 @@ const CustomTextInput = ({
|
|
|
1252
1252
|
searchIcon,
|
|
1253
1253
|
...props
|
|
1254
1254
|
}) => {
|
|
1255
|
-
const [value, setValue] = React
|
|
1256
|
-
const [isFocused, setIsFocused] = React
|
|
1257
|
-
const [error, setError] = React
|
|
1258
|
-
const [isSecureTextEntry, setIsSecureTextEntry] = React
|
|
1255
|
+
const [value, setValue] = React.useState("");
|
|
1256
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
1257
|
+
const [error, setError] = React.useState(!!errorMessage);
|
|
1258
|
+
const [isSecureTextEntry, setIsSecureTextEntry] = React.useState(secureTextEntry);
|
|
1259
1259
|
const onFocus = () => {
|
|
1260
1260
|
handleFocus?.();
|
|
1261
1261
|
setIsFocused(true);
|
|
@@ -1574,7 +1574,7 @@ const CustomProgressBar = ({
|
|
|
1574
1574
|
valueTextStyle,
|
|
1575
1575
|
percentageTextStyle
|
|
1576
1576
|
}) => {
|
|
1577
|
-
React
|
|
1577
|
+
React.useEffect(() => {
|
|
1578
1578
|
const progressInterval = setInterval(() => {
|
|
1579
1579
|
if (progress < value) {
|
|
1580
1580
|
setProgress((prevProgress) => prevProgress + increment);
|
|
@@ -1746,16 +1746,24 @@ const Tabs = ({
|
|
|
1746
1746
|
options,
|
|
1747
1747
|
initialSelected = [],
|
|
1748
1748
|
onSelectionChange,
|
|
1749
|
+
rating,
|
|
1749
1750
|
style
|
|
1750
1751
|
}) => {
|
|
1751
1752
|
const { theme } = useTheme();
|
|
1752
|
-
const [data, setData] = React
|
|
1753
|
+
const [data, setData] = React.useState(
|
|
1753
1754
|
options.map((option) => ({
|
|
1754
1755
|
title: option,
|
|
1755
1756
|
id: option,
|
|
1756
1757
|
isSelected: initialSelected?.includes(option)
|
|
1757
1758
|
}))
|
|
1758
1759
|
);
|
|
1760
|
+
React.useEffect(() => {
|
|
1761
|
+
setData(options.map((option) => ({
|
|
1762
|
+
title: option,
|
|
1763
|
+
id: option,
|
|
1764
|
+
isSelected: initialSelected?.includes(option)
|
|
1765
|
+
})));
|
|
1766
|
+
}, [rating]);
|
|
1759
1767
|
const handlePress = (id) => {
|
|
1760
1768
|
const updatedData = data?.map(
|
|
1761
1769
|
(item) => item?.id === id ? { ...item, isSelected: !item?.isSelected } : item
|
|
@@ -1832,7 +1840,7 @@ const Tags = ({
|
|
|
1832
1840
|
icon,
|
|
1833
1841
|
iconStyle
|
|
1834
1842
|
}) => {
|
|
1835
|
-
const [selectedTags, setSelectedTags] = React
|
|
1843
|
+
const [selectedTags, setSelectedTags] = React.useState([]);
|
|
1836
1844
|
const toggleTag = (tag) => {
|
|
1837
1845
|
setSelectedTags((prevSelectedTags) => {
|
|
1838
1846
|
const selectedTagsSet = new Set(prevSelectedTags);
|
|
@@ -1930,11 +1938,11 @@ const CustomSwitch = ({
|
|
|
1930
1938
|
trackWidth = type !== ToggleButtonType.SMALL ? 35 : 15,
|
|
1931
1939
|
width = type !== ToggleButtonType.SMALL ? 60 : 40
|
|
1932
1940
|
}) => {
|
|
1933
|
-
const [isOn, setIsOn] = React
|
|
1934
|
-
const animatedValue = React
|
|
1941
|
+
const [isOn, setIsOn] = React.useState(value);
|
|
1942
|
+
const animatedValue = React.useRef(
|
|
1935
1943
|
new reactNative.Animated.Value(value ? trackWidth : 0)
|
|
1936
1944
|
).current;
|
|
1937
|
-
React
|
|
1945
|
+
React.useEffect(() => {
|
|
1938
1946
|
reactNative.Animated.timing(animatedValue, {
|
|
1939
1947
|
toValue: isOn ? trackWidth : 0,
|
|
1940
1948
|
duration: 200,
|
|
@@ -2016,18 +2024,18 @@ const Accordion = ({
|
|
|
2016
2024
|
icon,
|
|
2017
2025
|
titleVariant = "B4_REGULAR"
|
|
2018
2026
|
}) => {
|
|
2019
|
-
const contentRef = React
|
|
2020
|
-
const [animation] = React
|
|
2021
|
-
const [contentHeight, setContentHeight] = React
|
|
2027
|
+
const contentRef = React.useRef(null);
|
|
2028
|
+
const [animation] = React.useState(new reactNative.Animated.Value(0));
|
|
2029
|
+
const [contentHeight, setContentHeight] = React.useState(0);
|
|
2022
2030
|
const { theme } = useTheme();
|
|
2023
|
-
React
|
|
2031
|
+
React.useEffect(() => {
|
|
2024
2032
|
if (contentRef.current) {
|
|
2025
2033
|
contentRef.current.measure((x, y, width, height) => {
|
|
2026
2034
|
setContentHeight(height);
|
|
2027
2035
|
});
|
|
2028
2036
|
}
|
|
2029
2037
|
}, [isOpen]);
|
|
2030
|
-
React
|
|
2038
|
+
React.useEffect(() => {
|
|
2031
2039
|
reactNative.Animated.timing(animation, {
|
|
2032
2040
|
toValue: isOpen ? 1 : 0,
|
|
2033
2041
|
duration: 300,
|
|
@@ -2122,14 +2130,14 @@ const styles$l = reactNative.StyleSheet.create({
|
|
|
2122
2130
|
|
|
2123
2131
|
const Toast = React__default["default"].forwardRef(
|
|
2124
2132
|
({ sucessIcon, errorIcon }, ref) => {
|
|
2125
|
-
const [visible, setVisible] = React
|
|
2126
|
-
const [message, setMessage] = React
|
|
2127
|
-
const [isSuccess, setIsSuccess] = React
|
|
2128
|
-
const [btnText, setBtnText] = React
|
|
2129
|
-
const [onBtnPress, setOnBtnPress] = React
|
|
2130
|
-
const [progress, setProgress] = React
|
|
2131
|
-
const [height, setHeight] = React
|
|
2132
|
-
const bottom = React
|
|
2133
|
+
const [visible, setVisible] = React.useState(false);
|
|
2134
|
+
const [message, setMessage] = React.useState("");
|
|
2135
|
+
const [isSuccess, setIsSuccess] = React.useState(true);
|
|
2136
|
+
const [btnText, setBtnText] = React.useState(null);
|
|
2137
|
+
const [onBtnPress, setOnBtnPress] = React.useState(null);
|
|
2138
|
+
const [progress, setProgress] = React.useState(0);
|
|
2139
|
+
const [height, setHeight] = React.useState(72);
|
|
2140
|
+
const bottom = React.useRef(new reactNative.Animated.Value(-80)).current;
|
|
2133
2141
|
const showToast = (toastMessage, duration = 3e3, success = true, buttonText = null, buttonAction = null, height2 = 72) => {
|
|
2134
2142
|
setMessage(toastMessage);
|
|
2135
2143
|
setIsSuccess(success);
|
|
@@ -2159,7 +2167,7 @@ const Toast = React__default["default"].forwardRef(
|
|
|
2159
2167
|
const simulateProgress = () => {
|
|
2160
2168
|
setProgress((prev) => prev + 0.1 > 1 ? 1 : prev + 0.1);
|
|
2161
2169
|
};
|
|
2162
|
-
React
|
|
2170
|
+
React.useEffect(() => {
|
|
2163
2171
|
if (visible) {
|
|
2164
2172
|
setProgress(0);
|
|
2165
2173
|
const interval = setInterval(simulateProgress, 180);
|
|
@@ -2427,8 +2435,8 @@ const SwipableList = (props) => {
|
|
|
2427
2435
|
titleStyle
|
|
2428
2436
|
} = props;
|
|
2429
2437
|
const { theme } = useTheme();
|
|
2430
|
-
const [currentOpenId, setCurrentOpenId] = React
|
|
2431
|
-
const swipeableRefs = React
|
|
2438
|
+
const [currentOpenId, setCurrentOpenId] = React.useState(null);
|
|
2439
|
+
const swipeableRefs = React.useRef({});
|
|
2432
2440
|
const closeSwipeable = (id) => {
|
|
2433
2441
|
swipeableRefs.current[id]?.close();
|
|
2434
2442
|
};
|
|
@@ -2574,7 +2582,7 @@ const CustomIcon = ({
|
|
|
2574
2582
|
};
|
|
2575
2583
|
|
|
2576
2584
|
function AnimationWithImperativeApi() {
|
|
2577
|
-
return /* @__PURE__ */
|
|
2585
|
+
return /* @__PURE__ */ React__default["default"].createElement(reactNative.View, { style: { flex: 1 } }, /* @__PURE__ */ React__default["default"].createElement(
|
|
2578
2586
|
LottieView__default["default"],
|
|
2579
2587
|
{
|
|
2580
2588
|
style: { width: "100%", height: "100%" },
|
|
@@ -2872,7 +2880,7 @@ const styles$d = reactNative.StyleSheet.create({
|
|
|
2872
2880
|
|
|
2873
2881
|
const DateRangePicker = (props) => {
|
|
2874
2882
|
const { onButtonPress, btnTitle = "Apply" } = props;
|
|
2875
|
-
const [selectedRange, setSelectedRange] = React
|
|
2883
|
+
const [selectedRange, setSelectedRange] = React.useState({
|
|
2876
2884
|
startDate: "",
|
|
2877
2885
|
endDate: ""
|
|
2878
2886
|
});
|
|
@@ -3091,7 +3099,7 @@ const ScrollableList = ({
|
|
|
3091
3099
|
errorStyle,
|
|
3092
3100
|
activeTextStyle
|
|
3093
3101
|
}) => {
|
|
3094
|
-
const [selectedItem, setSelectedItem] = React
|
|
3102
|
+
const [selectedItem, setSelectedItem] = React.useState(
|
|
3095
3103
|
data && data.length > 0 ? data[0].name : null
|
|
3096
3104
|
);
|
|
3097
3105
|
const { theme } = useTheme();
|
|
@@ -3306,10 +3314,10 @@ const CountryDropDown = ({
|
|
|
3306
3314
|
errorMessage,
|
|
3307
3315
|
label
|
|
3308
3316
|
}) => {
|
|
3309
|
-
const [countryCode, setCountryCode] = React
|
|
3310
|
-
const [callingCode, setCallingCode] = React
|
|
3311
|
-
const [pickerVisible, setPickerVisible] = React
|
|
3312
|
-
const [isFocused, setIsFocused] = React
|
|
3317
|
+
const [countryCode, setCountryCode] = React.useState(defaultCountryCode);
|
|
3318
|
+
const [callingCode, setCallingCode] = React.useState(defaultCallingCode);
|
|
3319
|
+
const [pickerVisible, setPickerVisible] = React.useState(false);
|
|
3320
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
3313
3321
|
const handleSelect = (country) => {
|
|
3314
3322
|
setCountryCode(country.cca2);
|
|
3315
3323
|
setCallingCode(`+${country.callingCode[0]}`);
|
|
@@ -3555,8 +3563,8 @@ const CustomDropdown = (props) => {
|
|
|
3555
3563
|
selectedItemTextStyle,
|
|
3556
3564
|
disable
|
|
3557
3565
|
} = props;
|
|
3558
|
-
const [value, setValue] = React
|
|
3559
|
-
const [isFocus, setIsFocus] = React
|
|
3566
|
+
const [value, setValue] = React.useState(defaultValue);
|
|
3567
|
+
const [isFocus, setIsFocus] = React.useState(false);
|
|
3560
3568
|
const renderLabel = () => {
|
|
3561
3569
|
if (value || isFocus) {
|
|
3562
3570
|
return /* @__PURE__ */ React__default["default"].createElement(
|
|
@@ -3714,12 +3722,12 @@ const CustomSwitchBtn = ({
|
|
|
3714
3722
|
inActiveTextStyle,
|
|
3715
3723
|
circleStyle
|
|
3716
3724
|
}) => {
|
|
3717
|
-
const [animatedValue] = React
|
|
3725
|
+
const [animatedValue] = React.useState(new reactNative.Animated.Value(value ? 1 : 0));
|
|
3718
3726
|
const translateX = animatedValue.interpolate({
|
|
3719
3727
|
inputRange: [0, 1],
|
|
3720
3728
|
outputRange: [0, 28]
|
|
3721
3729
|
});
|
|
3722
|
-
React
|
|
3730
|
+
React.useEffect(() => {
|
|
3723
3731
|
reactNative.Animated.timing(animatedValue, {
|
|
3724
3732
|
toValue: value ? 1 : 0,
|
|
3725
3733
|
duration: 300,
|
|
@@ -3921,10 +3929,10 @@ const CustomDocumentPicker = ({
|
|
|
3921
3929
|
uploadIcon,
|
|
3922
3930
|
deleteIcon
|
|
3923
3931
|
}) => {
|
|
3924
|
-
const [error, setError] = React
|
|
3925
|
-
const [docDetails, setDocDetails] = React
|
|
3932
|
+
const [error, setError] = React.useState("");
|
|
3933
|
+
const [docDetails, setDocDetails] = React.useState();
|
|
3926
3934
|
const { theme } = useTheme();
|
|
3927
|
-
const pickDocument = React
|
|
3935
|
+
const pickDocument = React.useCallback(async () => {
|
|
3928
3936
|
try {
|
|
3929
3937
|
const res = await DocumentPicker__default["default"].pickSingle({
|
|
3930
3938
|
type: fileTypes
|
|
@@ -3949,7 +3957,7 @@ const CustomDocumentPicker = ({
|
|
|
3949
3957
|
}
|
|
3950
3958
|
}
|
|
3951
3959
|
}, [fileTypes, maxFileSize, onDocumentUpload]);
|
|
3952
|
-
const removeDocument = React
|
|
3960
|
+
const removeDocument = React.useCallback(() => {
|
|
3953
3961
|
setDocDetails(void 0);
|
|
3954
3962
|
}, []);
|
|
3955
3963
|
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(
|
|
@@ -3989,7 +3997,7 @@ const CustomDocumentPicker = ({
|
|
|
3989
3997
|
}
|
|
3990
3998
|
));
|
|
3991
3999
|
};
|
|
3992
|
-
var CustomDocumentPicker$1 = withThemeProvider(React
|
|
4000
|
+
var CustomDocumentPicker$1 = withThemeProvider(React.memo(CustomDocumentPicker));
|
|
3993
4001
|
|
|
3994
4002
|
const styles$5 = reactNative.StyleSheet.create({
|
|
3995
4003
|
textInputContainer: {
|
|
@@ -4049,11 +4057,11 @@ const OTPInput = React__default["default"].forwardRef(
|
|
|
4049
4057
|
timerToResend = 6e4,
|
|
4050
4058
|
timerIcon
|
|
4051
4059
|
}, ref) => {
|
|
4052
|
-
const [otp, setOTP] = React
|
|
4053
|
-
const [isResendOtpEnable, setIsResendOtpEnable] = React
|
|
4054
|
-
const [activeInput, setActiveInput] = React
|
|
4055
|
-
const [resendOTPCount, setResendOTPCount] = React
|
|
4056
|
-
const [errorMessageMaxReachCount, setErrorMessageMaxReachCount] = React
|
|
4060
|
+
const [otp, setOTP] = React.useState("");
|
|
4061
|
+
const [isResendOtpEnable, setIsResendOtpEnable] = React.useState(false);
|
|
4062
|
+
const [activeInput, setActiveInput] = React.useState(null);
|
|
4063
|
+
const [resendOTPCount, setResendOTPCount] = React.useState(0);
|
|
4064
|
+
const [errorMessageMaxReachCount, setErrorMessageMaxReachCount] = React.useState("");
|
|
4057
4065
|
const filteredTheme = Object?.keys(theme)?.reduce(
|
|
4058
4066
|
(acc, key) => {
|
|
4059
4067
|
acc[key] = theme[key][mode];
|
|
@@ -4062,8 +4070,8 @@ const OTPInput = React__default["default"].forwardRef(
|
|
|
4062
4070
|
{}
|
|
4063
4071
|
);
|
|
4064
4072
|
const { theme: theme$1 } = mode ? { theme: filteredTheme } : useTheme();
|
|
4065
|
-
const [timeLeft, setTimeLeft] = React
|
|
4066
|
-
React
|
|
4073
|
+
const [timeLeft, setTimeLeft] = React.useState(60);
|
|
4074
|
+
React.useEffect(() => {
|
|
4067
4075
|
let timer;
|
|
4068
4076
|
if (!isResendOtpEnable && timeLeft > 0) {
|
|
4069
4077
|
timer = setInterval(() => {
|
|
@@ -4074,9 +4082,9 @@ const OTPInput = React__default["default"].forwardRef(
|
|
|
4074
4082
|
}
|
|
4075
4083
|
return () => clearInterval(timer);
|
|
4076
4084
|
}, [timeLeft, isResendOtpEnable]);
|
|
4077
|
-
const refs = React
|
|
4085
|
+
const refs = React.useRef([]);
|
|
4078
4086
|
refs.current = Array(length).fill(0).map((_, index) => refs.current[index] || null);
|
|
4079
|
-
React
|
|
4087
|
+
React.useEffect(() => {
|
|
4080
4088
|
enableResendOtp();
|
|
4081
4089
|
}, []);
|
|
4082
4090
|
const onClickResendOTP = () => {
|
|
@@ -4106,7 +4114,7 @@ const OTPInput = React__default["default"].forwardRef(
|
|
|
4106
4114
|
setTimeLeft(timerToResend / 1e3);
|
|
4107
4115
|
}, timerToResend);
|
|
4108
4116
|
};
|
|
4109
|
-
React
|
|
4117
|
+
React.useEffect(() => {
|
|
4110
4118
|
if (reactNative.Platform.OS === "android") {
|
|
4111
4119
|
onStartListeningOtp();
|
|
4112
4120
|
}
|
|
@@ -4162,7 +4170,7 @@ const OTPInput = React__default["default"].forwardRef(
|
|
|
4162
4170
|
refs.current[index - 1]?.focus();
|
|
4163
4171
|
}
|
|
4164
4172
|
};
|
|
4165
|
-
React
|
|
4173
|
+
React.useEffect(() => {
|
|
4166
4174
|
if (otp.length === length) {
|
|
4167
4175
|
onComplete?.(otp);
|
|
4168
4176
|
}
|
|
@@ -4466,12 +4474,12 @@ const CustomSlideButton = React__default["default"].forwardRef(
|
|
|
4466
4474
|
sliderTextColor = "#000",
|
|
4467
4475
|
resetTimer = 2e3
|
|
4468
4476
|
}, ref) => {
|
|
4469
|
-
const value = React
|
|
4470
|
-
const cardRef = React
|
|
4471
|
-
const [translateX] = React
|
|
4472
|
-
const sliderConteinerRef = React
|
|
4473
|
-
const [color, setColor] = React
|
|
4474
|
-
const [sliderBackgroundColorRef, setSliderBackgroundColorRef] = React
|
|
4477
|
+
const value = React.useRef(0);
|
|
4478
|
+
const cardRef = React.useRef(null);
|
|
4479
|
+
const [translateX] = React.useState(new reactNative.Animated.Value(0));
|
|
4480
|
+
const sliderConteinerRef = React.useRef(null);
|
|
4481
|
+
const [color, setColor] = React.useState(new reactNative.Animated.Value(0));
|
|
4482
|
+
const [sliderBackgroundColorRef, setSliderBackgroundColorRef] = React.useState(new reactNative.Animated.Value(0));
|
|
4475
4483
|
React__default["default"].useImperativeHandle(ref, () => ({
|
|
4476
4484
|
reset() {
|
|
4477
4485
|
resetAll();
|
|
@@ -4955,7 +4963,7 @@ const styles = reactNative.StyleSheet.create({
|
|
|
4955
4963
|
});
|
|
4956
4964
|
|
|
4957
4965
|
const RadioButtonGroup = ({ data, onSelect, containerStyle, labelStyle, optionContainerStyle }) => {
|
|
4958
|
-
const [selectedOption, setSelectedOption] = React
|
|
4966
|
+
const [selectedOption, setSelectedOption] = React.useState(data[0]?.value);
|
|
4959
4967
|
const handleSelect = (item) => {
|
|
4960
4968
|
setSelectedOption(item.value);
|
|
4961
4969
|
onSelect(item);
|