@shaquillehinds/react-native-dropdown-selector 0.0.1 → 0.0.2
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/README.md +2 -0
- package/lib/commonjs/DropDownSelector/DropDownSelector.controller.js +14 -2
- package/lib/commonjs/DropDownSelector/DropDownSelector.controller.js.map +1 -1
- package/lib/commonjs/DropDownSelector/DropDownSelector.js +4 -0
- package/lib/commonjs/DropDownSelector/DropDownSelector.js.map +1 -1
- package/lib/module/DropDownSelector/DropDownSelector.controller.js +14 -2
- package/lib/module/DropDownSelector/DropDownSelector.controller.js.map +1 -1
- package/lib/module/DropDownSelector/DropDownSelector.js +4 -0
- package/lib/module/DropDownSelector/DropDownSelector.js.map +1 -1
- package/lib/typescript/commonjs/src/DropDownSelector/DropDownSelector.controller.d.ts +1 -0
- package/lib/typescript/commonjs/src/DropDownSelector/DropDownSelector.controller.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DropDownSelector/DropDownSelector.d.ts.map +1 -1
- package/lib/typescript/module/src/DropDownSelector/DropDownSelector.controller.d.ts +1 -0
- package/lib/typescript/module/src/DropDownSelector/DropDownSelector.controller.d.ts.map +1 -1
- package/lib/typescript/module/src/DropDownSelector/DropDownSelector.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/DropDownSelector/DropDownSelector.controller.tsx +20 -2
- package/src/DropDownSelector/DropDownSelector.tsx +6 -1
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@ A beautifully animated, fully customizable dropdown selector for React Native th
|
|
|
5
5
|
[](https://www.npmjs.com/package/@shaquillehinds/react-native-dropdown-selector)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
+
<img src="https://raw.githubusercontent.com/shaquillehinds/react-native-dropdown-selector/master/assets/dropdownselector.gif" alt="example" height="500"/>
|
|
9
|
+
|
|
8
10
|
## ✨ Features
|
|
9
11
|
|
|
10
12
|
- 🎯 **Smart Positioning** - Automatically detects available screen space and renders upward or downward
|
|
@@ -9,6 +9,7 @@ var _react = require("react");
|
|
|
9
9
|
function DropDownSelectorController(props) {
|
|
10
10
|
const [showItems, setShowItems] = (0, _react.useState)(false);
|
|
11
11
|
const [hasPageY, setHasPageY] = (0, _react.useState)(false);
|
|
12
|
+
const [selectorHeight, setSelectorHeight] = (0, _react.useState)(0);
|
|
12
13
|
const {
|
|
13
14
|
screenHeight,
|
|
14
15
|
relativeY
|
|
@@ -40,15 +41,19 @@ function DropDownSelectorController(props) {
|
|
|
40
41
|
useNativeDriver: true,
|
|
41
42
|
duration: canRenderDown ? showItems ? 400 : 200 : showItems ? 800 : 100
|
|
42
43
|
}), [canRenderDown, showItems]);
|
|
44
|
+
const scrollViewMaxHeight = (0, _react.useMemo)(() => {
|
|
45
|
+
if (selectorHeight) return selectorHeight > maxHeight ? maxHeight : selectorHeight;
|
|
46
|
+
return maxHeight;
|
|
47
|
+
}, [selectorHeight, maxHeight]);
|
|
43
48
|
const scrollViewStyle = (0, _react.useMemo)(() => ({
|
|
44
49
|
overflow: 'hidden',
|
|
45
50
|
maxHeight: maxHeight,
|
|
46
51
|
minHeight: relativeY(5),
|
|
47
52
|
borderRadius: _reactNativeEssentials.radiusSizes.soft,
|
|
48
53
|
transform: [{
|
|
49
|
-
translateY: canRenderDown ? 0 : -
|
|
54
|
+
translateY: canRenderDown ? 0 : -scrollViewMaxHeight + relativeY(4)
|
|
50
55
|
}]
|
|
51
|
-
}), [canRenderDown, maxHeight, relativeY]);
|
|
56
|
+
}), [canRenderDown, maxHeight, relativeY, scrollViewMaxHeight]);
|
|
52
57
|
const chevronAnimationConfig = (0, _react.useMemo)(() => ({
|
|
53
58
|
toValue: canRenderDown ? 1 : -1,
|
|
54
59
|
type: 'spring',
|
|
@@ -75,6 +80,12 @@ function DropDownSelectorController(props) {
|
|
|
75
80
|
});
|
|
76
81
|
props.containerProps?.onLayout?.(e);
|
|
77
82
|
}, [props.containerProps?.onLayout]);
|
|
83
|
+
const handleSelectionItemsListLayout = (0, _react.useCallback)(e => {
|
|
84
|
+
e.currentTarget.measure((_x, _y, _width, height, _pageX, _pageY) => {
|
|
85
|
+
setSelectorHeight(height);
|
|
86
|
+
});
|
|
87
|
+
props.dropdownContentContainerProps?.onLayout?.(e);
|
|
88
|
+
}, [props.dropdownContentContainerProps?.onLayout]);
|
|
78
89
|
const androidShadowAnimatedStyle = (0, _react.useCallback)(opacity => ({
|
|
79
90
|
opacity,
|
|
80
91
|
right: 0,
|
|
@@ -119,6 +130,7 @@ function DropDownSelectorController(props) {
|
|
|
119
130
|
androidShadowAnimatedStyle,
|
|
120
131
|
androidShadowAnimationConfig,
|
|
121
132
|
scrollViewStyle,
|
|
133
|
+
handleSelectionItemsListLayout,
|
|
122
134
|
selectionItemsListAnimatedStyle,
|
|
123
135
|
selectionItemsListAnimationConfig,
|
|
124
136
|
chevronAnimationConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeEssentials","require","_react","DropDownSelectorController","props","showItems","setShowItems","useState","hasPageY","setHasPageY","screenHeight","relativeY","useDeviceOrientation","pageYRef","useRef","scrollViewRef","canRenderDownRef","animateChevronRef","animateComponentRef","animateAndroidShadowRef","unMountDelayInMilliSeconds","useMemo","expandAnimationConfig","type","duration","maxHeight","expandDistance","label","items","find","item","value","selectedItem","canRenderDown","expandDirection","current","distanceToBottom","androidShadowAnimationConfig","toValue","useNativeDriver","scrollViewStyle","overflow","minHeight","borderRadius","radiusSizes","soft","transform","translateY","chevronAnimationConfig","speed","bounciness","selectionItemsListAnimationConfig","chevronAnimatedStyle","useCallback","scaleY","handleLayout","e","currentTarget","measure","_x","_y","_width","_height","_pageX","pageY","containerProps","onLayout","androidShadowAnimatedStyle","opacity","right","left","top","bottom","position","boxShadow","selectionItemsListAnimatedStyle","useEffect","reverse","start","isAndroid"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.controller.tsx"],"mappings":";;;;;;AAIA,IAAAA,sBAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AAKO,SAASE,0BAA0BA,CAAIC,KAA+B,EAAE;EAC7E,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACjD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"names":["_reactNativeEssentials","require","_react","DropDownSelectorController","props","showItems","setShowItems","useState","hasPageY","setHasPageY","selectorHeight","setSelectorHeight","screenHeight","relativeY","useDeviceOrientation","pageYRef","useRef","scrollViewRef","canRenderDownRef","animateChevronRef","animateComponentRef","animateAndroidShadowRef","unMountDelayInMilliSeconds","useMemo","expandAnimationConfig","type","duration","maxHeight","expandDistance","label","items","find","item","value","selectedItem","canRenderDown","expandDirection","current","distanceToBottom","androidShadowAnimationConfig","toValue","useNativeDriver","scrollViewMaxHeight","scrollViewStyle","overflow","minHeight","borderRadius","radiusSizes","soft","transform","translateY","chevronAnimationConfig","speed","bounciness","selectionItemsListAnimationConfig","chevronAnimatedStyle","useCallback","scaleY","handleLayout","e","currentTarget","measure","_x","_y","_width","_height","_pageX","pageY","containerProps","onLayout","handleSelectionItemsListLayout","height","_pageY","dropdownContentContainerProps","androidShadowAnimatedStyle","opacity","right","left","top","bottom","position","boxShadow","selectionItemsListAnimatedStyle","useEffect","reverse","start","isAndroid"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.controller.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,6 +60,7 @@ function DropDownSelector(props) {
|
|
|
60
60
|
backgroundColor: '#FAFAFA',
|
|
61
61
|
padding: controller.canRenderDown ? [5, 0, 0, 0] : [0, 0, 5, 0],
|
|
62
62
|
...props.dropdownContentContainerProps,
|
|
63
|
+
onLayout: controller.handleSelectionItemsListLayout,
|
|
63
64
|
children: props.items.map(item => props.DropdownItemComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(props.DropdownItemComponent, {
|
|
64
65
|
item: item,
|
|
65
66
|
isSelected: item.value === props.selectedItem
|
|
@@ -117,6 +118,9 @@ function DropDownSelector(props) {
|
|
|
117
118
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeEssentials.BaseText, {
|
|
118
119
|
numberOfLines: 1,
|
|
119
120
|
...props.dropdownButtonTextProps,
|
|
121
|
+
style: {
|
|
122
|
+
maxWidth: '90%'
|
|
123
|
+
},
|
|
120
124
|
children: controller.label || props.placeholder || 'Select an item'
|
|
121
125
|
}), props.DropdownButtonIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(props.DropdownButtonIcon, {
|
|
122
126
|
isOpen: controller.showItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeEssentials","require","_ChevronUp","_reactNative","_reactNativeGestureHandler","_DropDownSelectorController","_jsxRuntime","DropDownSelector","props","controller","DropDownSelectorController","jsxs","Layout","containerProps","style","zIndex","maxZIndex","onLayout","handleLayout","children","jsx","ComponentMounter","showComponent","showItems","setShowComponent","setShowItems","unMountDelayInMilliSeconds","onComponentShow","onOpen","onComponentClose","onClose","component","ModalWrapper","enableBackgroundContentPress","ModalForegroundWrapper","View","disableShadow","shadowStyles","shadowOpacity","undefined","isAndroid","AnimateComponent","ref","animateAndroidShadowRef","initialPosition","androidShadowAnimatedStyle","autoStart","toPosition","androidShadowAnimationConfig","ScrollView","scrollViewRef","nestedScrollEnabled","showsVerticalScrollIndicator","overScrollMode","dropdownScrollViewProps","scrollViewStyle","animateComponentRef","selectionItemsListAnimatedStyle","canRenderDown","relativeY","expandAnimationConfig","toValue","selectionItemsListAnimationConfig","borderRadius","backgroundColor","padding","dropdownContentContainerProps","items","map","item","DropdownItemComponent","isSelected","value","selectedItem","label","TouchableLayout","flexDirection","center","spaceBetween","dropdownItemProps","onPress","onSelect","onDropdownItemPress","width","BaseText","numberOfLines","dropdownItemTextProps","DropdownItemSelectedIcon","RadioIcon","RNPressableLayout","disabled","isDisabled","activeOpacity","dropdownButtonProps","e","pageYRef","current","nativeEvent","pageY","prev","dropdownButtonTextProps","placeholder","DropdownButtonIcon","isOpen","expandDirection","animateChevronRef","chevronAnimatedStyle","chevronAnimationConfig","ChevronUp","color"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_reactNativeEssentials","require","_ChevronUp","_reactNative","_reactNativeGestureHandler","_DropDownSelectorController","_jsxRuntime","DropDownSelector","props","controller","DropDownSelectorController","jsxs","Layout","containerProps","style","zIndex","maxZIndex","onLayout","handleLayout","children","jsx","ComponentMounter","showComponent","showItems","setShowComponent","setShowItems","unMountDelayInMilliSeconds","onComponentShow","onOpen","onComponentClose","onClose","component","ModalWrapper","enableBackgroundContentPress","ModalForegroundWrapper","View","disableShadow","shadowStyles","shadowOpacity","undefined","isAndroid","AnimateComponent","ref","animateAndroidShadowRef","initialPosition","androidShadowAnimatedStyle","autoStart","toPosition","androidShadowAnimationConfig","ScrollView","scrollViewRef","nestedScrollEnabled","showsVerticalScrollIndicator","overScrollMode","dropdownScrollViewProps","scrollViewStyle","animateComponentRef","selectionItemsListAnimatedStyle","canRenderDown","relativeY","expandAnimationConfig","toValue","selectionItemsListAnimationConfig","borderRadius","backgroundColor","padding","dropdownContentContainerProps","handleSelectionItemsListLayout","items","map","item","DropdownItemComponent","isSelected","value","selectedItem","label","TouchableLayout","flexDirection","center","spaceBetween","dropdownItemProps","onPress","onSelect","onDropdownItemPress","width","BaseText","numberOfLines","dropdownItemTextProps","DropdownItemSelectedIcon","RadioIcon","RNPressableLayout","disabled","isDisabled","activeOpacity","dropdownButtonProps","e","pageYRef","current","nativeEvent","pageY","prev","dropdownButtonTextProps","maxWidth","placeholder","DropdownButtonIcon","isOpen","expandDirection","animateChevronRef","chevronAnimatedStyle","chevronAnimationConfig","ChevronUp","color"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
5
5
|
export function DropDownSelectorController(props) {
|
|
6
6
|
const [showItems, setShowItems] = useState(false);
|
|
7
7
|
const [hasPageY, setHasPageY] = useState(false);
|
|
8
|
+
const [selectorHeight, setSelectorHeight] = useState(0);
|
|
8
9
|
const {
|
|
9
10
|
screenHeight,
|
|
10
11
|
relativeY
|
|
@@ -36,15 +37,19 @@ export function DropDownSelectorController(props) {
|
|
|
36
37
|
useNativeDriver: true,
|
|
37
38
|
duration: canRenderDown ? showItems ? 400 : 200 : showItems ? 800 : 100
|
|
38
39
|
}), [canRenderDown, showItems]);
|
|
40
|
+
const scrollViewMaxHeight = useMemo(() => {
|
|
41
|
+
if (selectorHeight) return selectorHeight > maxHeight ? maxHeight : selectorHeight;
|
|
42
|
+
return maxHeight;
|
|
43
|
+
}, [selectorHeight, maxHeight]);
|
|
39
44
|
const scrollViewStyle = useMemo(() => ({
|
|
40
45
|
overflow: 'hidden',
|
|
41
46
|
maxHeight: maxHeight,
|
|
42
47
|
minHeight: relativeY(5),
|
|
43
48
|
borderRadius: radiusSizes.soft,
|
|
44
49
|
transform: [{
|
|
45
|
-
translateY: canRenderDown ? 0 : -
|
|
50
|
+
translateY: canRenderDown ? 0 : -scrollViewMaxHeight + relativeY(4)
|
|
46
51
|
}]
|
|
47
|
-
}), [canRenderDown, maxHeight, relativeY]);
|
|
52
|
+
}), [canRenderDown, maxHeight, relativeY, scrollViewMaxHeight]);
|
|
48
53
|
const chevronAnimationConfig = useMemo(() => ({
|
|
49
54
|
toValue: canRenderDown ? 1 : -1,
|
|
50
55
|
type: 'spring',
|
|
@@ -71,6 +76,12 @@ export function DropDownSelectorController(props) {
|
|
|
71
76
|
});
|
|
72
77
|
props.containerProps?.onLayout?.(e);
|
|
73
78
|
}, [props.containerProps?.onLayout]);
|
|
79
|
+
const handleSelectionItemsListLayout = useCallback(e => {
|
|
80
|
+
e.currentTarget.measure((_x, _y, _width, height, _pageX, _pageY) => {
|
|
81
|
+
setSelectorHeight(height);
|
|
82
|
+
});
|
|
83
|
+
props.dropdownContentContainerProps?.onLayout?.(e);
|
|
84
|
+
}, [props.dropdownContentContainerProps?.onLayout]);
|
|
74
85
|
const androidShadowAnimatedStyle = useCallback(opacity => ({
|
|
75
86
|
opacity,
|
|
76
87
|
right: 0,
|
|
@@ -115,6 +126,7 @@ export function DropDownSelectorController(props) {
|
|
|
115
126
|
androidShadowAnimatedStyle,
|
|
116
127
|
androidShadowAnimationConfig,
|
|
117
128
|
scrollViewStyle,
|
|
129
|
+
handleSelectionItemsListLayout,
|
|
118
130
|
selectionItemsListAnimatedStyle,
|
|
119
131
|
selectionItemsListAnimationConfig,
|
|
120
132
|
chevronAnimationConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAndroid","radiusSizes","useDeviceOrientation","useCallback","useEffect","useMemo","useRef","useState","DropDownSelectorController","props","showItems","setShowItems","hasPageY","setHasPageY","screenHeight","relativeY","pageYRef","scrollViewRef","canRenderDownRef","animateChevronRef","animateComponentRef","animateAndroidShadowRef","unMountDelayInMilliSeconds","expandAnimationConfig","type","duration","maxHeight","expandDistance","label","items","find","item","value","selectedItem","canRenderDown","expandDirection","current","distanceToBottom","androidShadowAnimationConfig","toValue","useNativeDriver","scrollViewStyle","overflow","minHeight","borderRadius","soft","transform","translateY","chevronAnimationConfig","speed","bounciness","selectionItemsListAnimationConfig","chevronAnimatedStyle","scaleY","handleLayout","e","currentTarget","measure","_x","_y","_width","_height","_pageX","pageY","containerProps","onLayout","androidShadowAnimatedStyle","opacity","right","left","top","bottom","position","boxShadow","selectionItemsListAnimatedStyle","reverse","start"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.controller.tsx"],"mappings":";;AAIA,SACEA,SAAS,EACTC,WAAW,EACXC,oBAAoB,QACf,yCAAyC;AAChD,SAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAKzE,OAAO,SAASC,0BAA0BA,CAAIC,KAA+B,EAAE;EAC7E,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGJ,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACK,QAAQ,EAAEC,WAAW,CAAC,GAAGN,QAAQ,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"names":["isAndroid","radiusSizes","useDeviceOrientation","useCallback","useEffect","useMemo","useRef","useState","DropDownSelectorController","props","showItems","setShowItems","hasPageY","setHasPageY","selectorHeight","setSelectorHeight","screenHeight","relativeY","pageYRef","scrollViewRef","canRenderDownRef","animateChevronRef","animateComponentRef","animateAndroidShadowRef","unMountDelayInMilliSeconds","expandAnimationConfig","type","duration","maxHeight","expandDistance","label","items","find","item","value","selectedItem","canRenderDown","expandDirection","current","distanceToBottom","androidShadowAnimationConfig","toValue","useNativeDriver","scrollViewMaxHeight","scrollViewStyle","overflow","minHeight","borderRadius","soft","transform","translateY","chevronAnimationConfig","speed","bounciness","selectionItemsListAnimationConfig","chevronAnimatedStyle","scaleY","handleLayout","e","currentTarget","measure","_x","_y","_width","_height","_pageX","pageY","containerProps","onLayout","handleSelectionItemsListLayout","height","_pageY","dropdownContentContainerProps","androidShadowAnimatedStyle","opacity","right","left","top","bottom","position","boxShadow","selectionItemsListAnimatedStyle","reverse","start"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.controller.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,6 +56,7 @@ export function DropDownSelector(props) {
|
|
|
56
56
|
backgroundColor: '#FAFAFA',
|
|
57
57
|
padding: controller.canRenderDown ? [5, 0, 0, 0] : [0, 0, 5, 0],
|
|
58
58
|
...props.dropdownContentContainerProps,
|
|
59
|
+
onLayout: controller.handleSelectionItemsListLayout,
|
|
59
60
|
children: props.items.map(item => props.DropdownItemComponent ? /*#__PURE__*/_jsx(props.DropdownItemComponent, {
|
|
60
61
|
item: item,
|
|
61
62
|
isSelected: item.value === props.selectedItem
|
|
@@ -113,6 +114,9 @@ export function DropDownSelector(props) {
|
|
|
113
114
|
children: [/*#__PURE__*/_jsx(BaseText, {
|
|
114
115
|
numberOfLines: 1,
|
|
115
116
|
...props.dropdownButtonTextProps,
|
|
117
|
+
style: {
|
|
118
|
+
maxWidth: '90%'
|
|
119
|
+
},
|
|
116
120
|
children: controller.label || props.placeholder || 'Select an item'
|
|
117
121
|
}), props.DropdownButtonIcon ? /*#__PURE__*/_jsx(props.DropdownButtonIcon, {
|
|
118
122
|
isOpen: controller.showItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AnimateComponent","BaseText","isAndroid","Layout","RNPressableLayout","shadowStyles","maxZIndex","TouchableLayout","ComponentMounter","ModalForegroundWrapper","ModalWrapper","RadioIcon","ChevronUp","View","ScrollView","DropDownSelectorController","jsx","_jsx","jsxs","_jsxs","DropDownSelector","props","controller","containerProps","style","zIndex","onLayout","handleLayout","children","showComponent","showItems","setShowComponent","setShowItems","unMountDelayInMilliSeconds","onComponentShow","onOpen","onComponentClose","onClose","component","enableBackgroundContentPress","disableShadow","shadowOpacity","undefined","ref","animateAndroidShadowRef","initialPosition","androidShadowAnimatedStyle","autoStart","toPosition","androidShadowAnimationConfig","scrollViewRef","nestedScrollEnabled","showsVerticalScrollIndicator","overScrollMode","dropdownScrollViewProps","scrollViewStyle","animateComponentRef","selectionItemsListAnimatedStyle","canRenderDown","relativeY","expandAnimationConfig","toValue","selectionItemsListAnimationConfig","borderRadius","backgroundColor","padding","dropdownContentContainerProps","items","map","item","DropdownItemComponent","isSelected","value","selectedItem","label","flexDirection","center","spaceBetween","dropdownItemProps","onPress","onSelect","onDropdownItemPress","width","numberOfLines","dropdownItemTextProps","DropdownItemSelectedIcon","disabled","isDisabled","activeOpacity","dropdownButtonProps","e","pageYRef","current","nativeEvent","pageY","prev","dropdownButtonTextProps","placeholder","DropdownButtonIcon","isOpen","expandDirection","animateChevronRef","chevronAnimatedStyle","chevronAnimationConfig","color"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["AnimateComponent","BaseText","isAndroid","Layout","RNPressableLayout","shadowStyles","maxZIndex","TouchableLayout","ComponentMounter","ModalForegroundWrapper","ModalWrapper","RadioIcon","ChevronUp","View","ScrollView","DropDownSelectorController","jsx","_jsx","jsxs","_jsxs","DropDownSelector","props","controller","containerProps","style","zIndex","onLayout","handleLayout","children","showComponent","showItems","setShowComponent","setShowItems","unMountDelayInMilliSeconds","onComponentShow","onOpen","onComponentClose","onClose","component","enableBackgroundContentPress","disableShadow","shadowOpacity","undefined","ref","animateAndroidShadowRef","initialPosition","androidShadowAnimatedStyle","autoStart","toPosition","androidShadowAnimationConfig","scrollViewRef","nestedScrollEnabled","showsVerticalScrollIndicator","overScrollMode","dropdownScrollViewProps","scrollViewStyle","animateComponentRef","selectionItemsListAnimatedStyle","canRenderDown","relativeY","expandAnimationConfig","toValue","selectionItemsListAnimationConfig","borderRadius","backgroundColor","padding","dropdownContentContainerProps","handleSelectionItemsListLayout","items","map","item","DropdownItemComponent","isSelected","value","selectedItem","label","flexDirection","center","spaceBetween","dropdownItemProps","onPress","onSelect","onDropdownItemPress","width","numberOfLines","dropdownItemTextProps","DropdownItemSelectedIcon","disabled","isDisabled","activeOpacity","dropdownButtonProps","e","pageYRef","current","nativeEvent","pageY","prev","dropdownButtonTextProps","maxWidth","placeholder","DropdownButtonIcon","isOpen","expandDirection","animateChevronRef","chevronAnimatedStyle","chevronAnimationConfig","color"],"sourceRoot":"../../../src","sources":["DropDownSelector/DropDownSelector.tsx"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,iBAAiB,EACjBC,YAAY,EACZC,SAAS,EACTC,eAAe,EACfC,gBAAgB,EAChBC,sBAAsB,EACtBC,YAAY,EACZC,SAAS,QACJ,yCAAyC;AAChD,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAASC,0BAA0B,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG3E,OAAO,SAASC,gBAAgBA,CAAIC,KAA+B,EAAE;EACnE,MAAMC,UAAU,GAAGP,0BAA0B,CAACM,KAAK,CAAC;EAEpD,oBACEF,KAAA,CAAChB,MAAM;IAAA,GACDkB,KAAK,CAACE,cAAc;IACxBC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAEnB;IAAU,CAAC,EAAEe,KAAK,CAACE,cAAc,EAAEC,KAAK,CAAE;IAC5DE,QAAQ,EAAEJ,UAAU,CAACK,YAAa;IAAAC,QAAA,gBAElCX,IAAA,CAACT,gBAAgB;MACfqB,aAAa,EAAEP,UAAU,CAACQ,SAAU;MACpCC,gBAAgB,EAAET,UAAU,CAACU,YAAa;MAC1CC,0BAA0B,EAAEX,UAAU,CAACW,0BAA2B;MAClEC,eAAe,EAAEb,KAAK,CAACc,MAAO;MAC9BC,gBAAgB,EAAEf,KAAK,CAACgB,OAAQ;MAChCC,SAAS,eACPrB,IAAA,CAACP,YAAY;QAAC6B,4BAA4B;QAAAX,QAAA,eACxCX,IAAA,CAACR,sBAAsB;UAAAmB,QAAA,eACrBT,KAAA,CAACN,IAAI;YACHW,KAAK,EACH,CAACH,KAAK,CAACmB,aAAa,GAChB;cAAE,GAAGnC,YAAY,CAAC;gBAAEoC,aAAa,EAAE;cAAK,CAAC;YAAE,CAAC,GAC5CC,SACL;YAAAd,QAAA,GAEA,CAACP,KAAK,CAACmB,aAAa,IAAItC,SAAS,iBAChCe,IAAA,CAACjB,gBAAgB;cACf2C,GAAG,EAAErB,UAAU,CAACsB,uBAAwB;cACxCC,eAAe,EAAE,CAAE;cACnBrB,KAAK,EAAEF,UAAU,CAACwB,0BAA2B;cAC7CC,SAAS;cACTC,UAAU,EAAE1B,UAAU,CAAC2B;YAA6B,CACrD,CACF,eAEDhC,IAAA,CAACH,UAAU;cACT6B,GAAG,EAAErB,UAAU,CAAC4B,aAAc;cAC9BC,mBAAmB;cACnBC,4BAA4B,EAAE,KAAM;cACpCC,cAAc,EAAC,OAAO;cAAA,GAClBhC,KAAK,CAACiC,uBAAuB;cACjC9B,KAAK,EAAE,CACLF,UAAU,CAACiC,eAAe,EAC1BlC,KAAK,CAACiC,uBAAuB,EAAE9B,KAAK,CACpC;cAAAI,QAAA,eAEFX,IAAA,CAACjB,gBAAgB;gBACf2C,GAAG,EAAErB,UAAU,CAACkC,mBAAoB;gBACpChC,KAAK,EAAEF,UAAU,CAACmC,+BAAgC;gBAClDZ,eAAe,EACbvB,UAAU,CAACoC,aAAa,GACpB,CAACpC,UAAU,CAACqC,SAAS,CAAC,GAAG,CAAC,GAC1BrC,UAAU,CAACqC,SAAS,CAAC,GAAG,CAC7B;gBACDZ,SAAS;gBACTC,UAAU,EACR3B,KAAK,CAACuC,qBAAqB,GACvB;kBAAE,GAAGvC,KAAK,CAACuC,qBAAqB;kBAAEC,OAAO,EAAE;gBAAE,CAAC,GAC9CvC,UAAU,CAACwC,iCAChB;gBAAAlC,QAAA,eAEDX,IAAA,CAACd,MAAM;kBACL4D,YAAY,EAAC,MAAM;kBACnBC,eAAe,EAAE,SAAU;kBAC3BC,OAAO,EACL3C,UAAU,CAACoC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CACtD;kBAAA,GACGrC,KAAK,CAAC6C,6BAA6B;kBACvCxC,QAAQ,EAAEJ,UAAU,CAAC6C,8BAA+B;kBAAAvC,QAAA,EAEnDP,KAAK,CAAC+C,KAAK,CAACC,GAAG,CAAEC,IAAI,IACpBjD,KAAK,CAACkD,qBAAqB,gBACzBtD,IAAA,CAACI,KAAK,CAACkD,qBAAqB;oBAE1BD,IAAI,EAAEA,IAAK;oBACXE,UAAU,EAAEF,IAAI,CAACG,KAAK,KAAKpD,KAAK,CAACqD;kBAAa,GAFzCJ,IAAI,CAACK,KAGX,CAAC,gBAEFxD,KAAA,CAACZ,eAAe;oBAEdqE,aAAa,EAAC,KAAK;oBACnBC,MAAM;oBACNC,YAAY;oBACZb,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE;oBAAA,GACZ5C,KAAK,CAAC0D,iBAAiB;oBAC3BC,OAAO,EAAEA,CAAA,KAAM;sBACb3D,KAAK,CAAC4D,QAAQ,CAACX,IAAI,CAACG,KAAK,CAAC;sBAC1BnD,UAAU,CAACU,YAAY,CAAC,KAAK,CAAC;sBAC9BX,KAAK,CAAC6D,mBAAmB,GAAGZ,IAAI,CAAC;oBACnC,CAAE;oBAAA1C,QAAA,gBAEFX,IAAA,CAACd,MAAM;sBAACgF,KAAK,EAAE,KAAM;sBAAAvD,QAAA,eACnBX,IAAA,CAAChB,QAAQ;wBACPmF,aAAa,EAAE,CAAE;wBAAA,GACb/D,KAAK,CAACgE,qBAAqB;wBAAAzD,QAAA,EAE9B0C,IAAI,CAACK;sBAAK,CACH;oBAAC,CACL,CAAC,EACRL,IAAI,CAACG,KAAK,KAAKpD,KAAK,CAACqD,YAAY,GAChCrD,KAAK,CAACiE,wBAAwB,gBAC5BrE,IAAA,CAACI,KAAK,CAACiE,wBAAwB;sBAAChB,IAAI,EAAEA;oBAAK,CAAE,CAAC,gBAE9CrD,IAAA,CAACN,SAAS;sBAAC6D,UAAU,EAAE;oBAAK,CAAE,CAC/B,GACC,IAAI;kBAAA,GA1BHF,IAAI,CAACK,KA2BK,CAErB;gBAAC,CACK;cAAC,CACO;YAAC,CACT,CAAC;UAAA,CACT;QAAC,CACe;MAAC,CACb;IACf,CACF,CAAC,eACFxD,KAAA,CAACf,iBAAiB;MAChBmF,QAAQ,EAAElE,KAAK,CAACmE,UAAW;MAC3BC,aAAa,EAAE,CAAE;MACjBb,aAAa,EAAC,KAAK;MACnBZ,eAAe,EAAE,OAAQ;MACzBD,YAAY,EAAC,QAAQ;MACrBE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE;MAChBa,YAAY;MACZD,MAAM;MAAA,GACFxD,KAAK,CAACqE,mBAAmB;MAC7BlE,KAAK,EAAE,CACL;QACEC,MAAM,EAAEnB,SAAS,GAAG,CAAC;QACrB,GAAGD,YAAY,CAAC;UAAEoC,aAAa,EAAE;QAAI,CAAC;MACxC,CAAC,EACDpB,KAAK,CAACqE,mBAAmB,EAAElE,KAAK,CAChC;MACFwD,OAAO,EAAGW,CAAC,IAAK;QACdrE,UAAU,CAACsE,QAAQ,CAACC,OAAO,GAAGF,CAAC,CAACG,WAAW,CAACC,KAAK;QACjDzE,UAAU,CAACU,YAAY,CAAEgE,IAAI,IAAK,CAACA,IAAI,CAAC;QACxC3E,KAAK,CAACqE,mBAAmB,EAAEV,OAAO,GAAGW,CAAC,CAAC;MACzC,CAAE;MAAA/D,QAAA,gBAEFX,IAAA,CAAChB,QAAQ;QACPmF,aAAa,EAAE,CAAE;QAAA,GACb/D,KAAK,CAAC4E,uBAAuB;QACjCzE,KAAK,EAAE;UAAE0E,QAAQ,EAAE;QAAM,CAAE;QAAAtE,QAAA,EAE1BN,UAAU,CAACqD,KAAK,IAAItD,KAAK,CAAC8E,WAAW,IAAI;MAAgB,CAClD,CAAC,EACV9E,KAAK,CAAC+E,kBAAkB,gBACvBnF,IAAA,CAACI,KAAK,CAAC+E,kBAAkB;QACvBC,MAAM,EAAE/E,UAAU,CAACQ,SAAU;QAC7BwE,eAAe,EACbjF,KAAK,CAACiF,eAAe,IAAIhF,UAAU,CAACoC,aAAa,GAAG,MAAM,GAAG;MAC9D,CACF,CAAC,GACApC,UAAU,CAACoC,aAAa,KAAK,IAAI,GAAGhB,SAAS,gBAC/CzB,IAAA,CAACjB,gBAAgB;QACf2C,GAAG,EAAErB,UAAU,CAACiF,iBAAkB;QAClC/E,KAAK,EAAEF,UAAU,CAACkF,oBAAqB;QACvC3D,eAAe,EAAEvB,UAAU,CAACoC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAE;QACnDV,UAAU,EAAE1B,UAAU,CAACmF,sBAAuB;QAAA7E,QAAA,eAE9CX,IAAA,CAACL,SAAS;UAAC8F,KAAK,EAAE;QAAQ,CAAE;MAAC,CACb,CACnB;IAAA,CACgB,CAAC;EAAA,CACd,CAAC;AAEb","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ export declare function DropDownSelectorController<T>(props: DropDownSelectorPro
|
|
|
19
19
|
androidShadowAnimatedStyle: (opacity: Animated.Value) => ViewStyle;
|
|
20
20
|
androidShadowAnimationConfig: AnimateComponentAnimationConfig;
|
|
21
21
|
scrollViewStyle: ViewStyle;
|
|
22
|
+
handleSelectionItemsListLayout: (e: LayoutChangeEvent) => void;
|
|
22
23
|
selectionItemsListAnimatedStyle: (translateY: Animated.Value) => ViewStyle;
|
|
23
24
|
selectionItemsListAnimationConfig: AnimateComponentAnimationConfig;
|
|
24
25
|
chevronAnimationConfig: AnimateComponentAnimationConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDownSelector.controller.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DropDownSelector.controller.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;;;;;;sBA+FrE,iBAAiB;0CAmBX,QAAQ,CAAC,KAAK,KAAG,SAAS;;;wCAThC,iBAAiB;kDA8BR,QAAQ,CAAC,KAAK,KAAG,SAAS;;;mCA/C9B,QAAQ,CAAC,KAAK,KAAG,SAAS;;EAyFtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDownSelector.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"DropDownSelector.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAuKlE"}
|
|
@@ -19,6 +19,7 @@ export declare function DropDownSelectorController<T>(props: DropDownSelectorPro
|
|
|
19
19
|
androidShadowAnimatedStyle: (opacity: Animated.Value) => ViewStyle;
|
|
20
20
|
androidShadowAnimationConfig: AnimateComponentAnimationConfig;
|
|
21
21
|
scrollViewStyle: ViewStyle;
|
|
22
|
+
handleSelectionItemsListLayout: (e: LayoutChangeEvent) => void;
|
|
22
23
|
selectionItemsListAnimatedStyle: (translateY: Animated.Value) => ViewStyle;
|
|
23
24
|
selectionItemsListAnimationConfig: AnimateComponentAnimationConfig;
|
|
24
25
|
chevronAnimationConfig: AnimateComponentAnimationConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDownSelector.controller.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DropDownSelector.controller.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;;;;;;sBA+FrE,iBAAiB;0CAmBX,QAAQ,CAAC,KAAK,KAAG,SAAS;;;wCAThC,iBAAiB;kDA8BR,QAAQ,CAAC,KAAK,KAAG,SAAS;;;mCA/C9B,QAAQ,CAAC,KAAK,KAAG,SAAS;;EAyFtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDownSelector.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"DropDownSelector.d.ts","sourceRoot":"","sources":["../../../../../src/DropDownSelector/DropDownSelector.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAuKlE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shaquillehinds/react-native-dropdown-selector",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "A simple dropdown selector for react native that just works.",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
],
|
|
42
42
|
"scripts": {
|
|
43
43
|
"example": "yarn workspace react-native-dropdown-selector-example",
|
|
44
|
-
"dev:mkdir": "mkdir -p ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector/",
|
|
45
|
-
"dev:copy": "cp -r src/* ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector/",
|
|
46
|
-
"dev:sync": "npm run dev:copy && chokidar \"src/**/*\" -c \"rsync -a src/ ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector
|
|
44
|
+
"dev:mkdir": "mkdir -p ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector/src",
|
|
45
|
+
"dev:copy": "cp -r src/* ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector/src",
|
|
46
|
+
"dev:sync": "npm run dev:copy && chokidar \"src/**/*\" -c \"rsync -a src/ ../../expo-dev-playground-2/node_modules/@shaquillehinds/react-native-dropdown-selector/src\"",
|
|
47
47
|
"test": "jest",
|
|
48
48
|
"tarball": "npm pack @shaquillehinds/react-native-dropdown-selector",
|
|
49
49
|
"typecheck": "tsc",
|
|
@@ -15,6 +15,7 @@ import type { DropDownSelectorProps } from './DropDownSelector.types';
|
|
|
15
15
|
export function DropDownSelectorController<T>(props: DropDownSelectorProps<T>) {
|
|
16
16
|
const [showItems, setShowItems] = useState(false);
|
|
17
17
|
const [hasPageY, setHasPageY] = useState(false);
|
|
18
|
+
const [selectorHeight, setSelectorHeight] = useState(0);
|
|
18
19
|
|
|
19
20
|
const { screenHeight, relativeY } = useDeviceOrientation();
|
|
20
21
|
|
|
@@ -58,6 +59,11 @@ export function DropDownSelectorController<T>(props: DropDownSelectorProps<T>) {
|
|
|
58
59
|
}),
|
|
59
60
|
[canRenderDown, showItems]
|
|
60
61
|
);
|
|
62
|
+
const scrollViewMaxHeight = useMemo(() => {
|
|
63
|
+
if (selectorHeight)
|
|
64
|
+
return selectorHeight > maxHeight ? maxHeight : selectorHeight;
|
|
65
|
+
return maxHeight;
|
|
66
|
+
}, [selectorHeight, maxHeight]);
|
|
61
67
|
const scrollViewStyle = useMemo<ViewStyle>(
|
|
62
68
|
() => ({
|
|
63
69
|
overflow: 'hidden',
|
|
@@ -65,10 +71,12 @@ export function DropDownSelectorController<T>(props: DropDownSelectorProps<T>) {
|
|
|
65
71
|
minHeight: relativeY(5),
|
|
66
72
|
borderRadius: radiusSizes.soft,
|
|
67
73
|
transform: [
|
|
68
|
-
{
|
|
74
|
+
{
|
|
75
|
+
translateY: canRenderDown ? 0 : -scrollViewMaxHeight + relativeY(4),
|
|
76
|
+
},
|
|
69
77
|
],
|
|
70
78
|
}),
|
|
71
|
-
[canRenderDown, maxHeight, relativeY]
|
|
79
|
+
[canRenderDown, maxHeight, relativeY, scrollViewMaxHeight]
|
|
72
80
|
);
|
|
73
81
|
const chevronAnimationConfig = useMemo<AnimateComponentAnimationConfig>(
|
|
74
82
|
() => ({
|
|
@@ -108,6 +116,15 @@ export function DropDownSelectorController<T>(props: DropDownSelectorProps<T>) {
|
|
|
108
116
|
},
|
|
109
117
|
[props.containerProps?.onLayout]
|
|
110
118
|
);
|
|
119
|
+
const handleSelectionItemsListLayout = useCallback(
|
|
120
|
+
(e: LayoutChangeEvent) => {
|
|
121
|
+
e.currentTarget.measure((_x, _y, _width, height, _pageX, _pageY) => {
|
|
122
|
+
setSelectorHeight(height);
|
|
123
|
+
});
|
|
124
|
+
props.dropdownContentContainerProps?.onLayout?.(e);
|
|
125
|
+
},
|
|
126
|
+
[props.dropdownContentContainerProps?.onLayout]
|
|
127
|
+
);
|
|
111
128
|
const androidShadowAnimatedStyle = useCallback(
|
|
112
129
|
(opacity: Animated.Value): ViewStyle => ({
|
|
113
130
|
opacity,
|
|
@@ -165,6 +182,7 @@ export function DropDownSelectorController<T>(props: DropDownSelectorProps<T>) {
|
|
|
165
182
|
androidShadowAnimatedStyle,
|
|
166
183
|
androidShadowAnimationConfig,
|
|
167
184
|
scrollViewStyle,
|
|
185
|
+
handleSelectionItemsListLayout,
|
|
168
186
|
selectionItemsListAnimatedStyle,
|
|
169
187
|
selectionItemsListAnimationConfig,
|
|
170
188
|
chevronAnimationConfig,
|
|
@@ -86,6 +86,7 @@ export function DropDownSelector<T>(props: DropDownSelectorProps<T>) {
|
|
|
86
86
|
controller.canRenderDown ? [5, 0, 0, 0] : [0, 0, 5, 0]
|
|
87
87
|
}
|
|
88
88
|
{...props.dropdownContentContainerProps}
|
|
89
|
+
onLayout={controller.handleSelectionItemsListLayout}
|
|
89
90
|
>
|
|
90
91
|
{props.items.map((item) =>
|
|
91
92
|
props.DropdownItemComponent ? (
|
|
@@ -157,7 +158,11 @@ export function DropDownSelector<T>(props: DropDownSelectorProps<T>) {
|
|
|
157
158
|
props.dropdownButtonProps?.onPress?.(e);
|
|
158
159
|
}}
|
|
159
160
|
>
|
|
160
|
-
<BaseText
|
|
161
|
+
<BaseText
|
|
162
|
+
numberOfLines={1}
|
|
163
|
+
{...props.dropdownButtonTextProps}
|
|
164
|
+
style={{ maxWidth: '90%' }}
|
|
165
|
+
>
|
|
161
166
|
{controller.label || props.placeholder || 'Select an item'}
|
|
162
167
|
</BaseText>
|
|
163
168
|
{props.DropdownButtonIcon ? (
|