@adiraku/react-native-ui 1.2.10-canary-2 → 1.2.10-canary-4
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/commonjs/components/BottomSheet/BottomSheet.component.js +3 -1
- package/lib/commonjs/components/BottomSheet/BottomSheet.component.js.map +1 -1
- package/lib/commonjs/components/selection-modal/selection-modal.component.js +43 -17
- package/lib/commonjs/components/selection-modal/selection-modal.component.js.map +1 -1
- package/lib/commonjs/components/selection-modal/selection-modal.style.js +5 -0
- package/lib/commonjs/components/selection-modal/selection-modal.style.js.map +1 -1
- package/lib/commonjs/hooks/index.js +28 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useDebounce.js +19 -0
- package/lib/commonjs/hooks/useDebounce.js.map +1 -0
- package/lib/commonjs/hooks/useKeyboardHeight.js +29 -0
- package/lib/commonjs/hooks/useKeyboardHeight.js.map +1 -0
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/BottomSheet/BottomSheet.component.js +3 -1
- package/lib/module/components/BottomSheet/BottomSheet.component.js.map +1 -1
- package/lib/module/components/selection-modal/selection-modal.component.js +44 -18
- package/lib/module/components/selection-modal/selection-modal.component.js.map +1 -1
- package/lib/module/components/selection-modal/selection-modal.style.js +6 -1
- package/lib/module/components/selection-modal/selection-modal.style.js.map +1 -1
- package/lib/module/hooks/index.js +3 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useDebounce.js +12 -0
- package/lib/module/hooks/useDebounce.js.map +1 -0
- package/lib/module/hooks/useKeyboardHeight.js +22 -0
- package/lib/module/hooks/useKeyboardHeight.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/BottomSheet/BottomSheet.component.d.ts.map +1 -1
- package/lib/typescript/components/search-input/search-input.type.d.ts +1 -1
- package/lib/typescript/components/search-input/search-input.type.d.ts.map +1 -1
- package/lib/typescript/components/selection-modal/selection-modal.component.d.ts.map +1 -1
- package/lib/typescript/components/selection-modal/selection-modal.style.d.ts +1 -0
- package/lib/typescript/components/selection-modal/selection-modal.style.d.ts.map +1 -1
- package/lib/typescript/components/selection-modal/selection-modal.type.d.ts +6 -2
- package/lib/typescript/components/selection-modal/selection-modal.type.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +3 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -0
- package/lib/typescript/hooks/useDebounce.d.ts +2 -0
- package/lib/typescript/hooks/useDebounce.d.ts.map +1 -0
- package/lib/typescript/hooks/useKeyboardHeight.d.ts +2 -0
- package/lib/typescript/hooks/useKeyboardHeight.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/BottomSheet/BottomSheet.component.tsx +4 -1
- package/src/components/search-input/search-input.type.ts +1 -1
- package/src/components/selection-modal/selection-modal.component.tsx +50 -19
- package/src/components/selection-modal/selection-modal.style.tsx +8 -1
- package/src/components/selection-modal/selection-modal.type.ts +11 -3
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useDebounce.ts +15 -0
- package/src/hooks/useKeyboardHeight.ts +32 -0
- package/src/index.tsx +1 -0
|
@@ -9,6 +9,7 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _reactNativeModal = _interopRequireDefault(require("react-native-modal"));
|
|
10
10
|
var _BottomSheet = require("./BottomSheet.style");
|
|
11
11
|
var _typography = require("../typography/typography.component");
|
|
12
|
+
var _hooks = require("../../hooks");
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -35,6 +36,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/React.forwardRef((props,
|
|
|
35
36
|
...rest
|
|
36
37
|
} = props;
|
|
37
38
|
const computedStyle = (0, _BottomSheet.getStyle)();
|
|
39
|
+
const keyboardHeight = (0, _hooks.useKeyboardHeight)();
|
|
38
40
|
const [visibility, setVisibility] = React.useState(false);
|
|
39
41
|
const panY = React.useRef(new _reactNative.Animated.Value(deviceWindow.height)).current;
|
|
40
42
|
React.useImperativeHandle(ref, () => {
|
|
@@ -138,7 +140,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/React.forwardRef((props,
|
|
|
138
140
|
}
|
|
139
141
|
}, rest), /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
140
142
|
style: [computedStyle.container, {
|
|
141
|
-
maxHeight: deviceWindow.height * maxSheetHeight,
|
|
143
|
+
maxHeight: deviceWindow.height * maxSheetHeight - keyboardHeight,
|
|
142
144
|
transform: [{
|
|
143
145
|
translateY: translateY
|
|
144
146
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeModal","_interopRequireDefault","_BottomSheet","_typography","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","deviceWindow","Dimensions","BottomSheet","exports","forwardRef","props","ref","onDismiss","title","titleProps","subtitle","subtitleProps","dismissIcon","dismissIconProps","action","largeIcon","largeIconContainerHeight","maxSheetHeight","sheetHeader","backdropTransitionOutTiming","onBackdropPress","onBackButtonPress","children","rest","computedStyle","getStyle","visibility","setVisibility","useState","panY","useRef","Animated","Value","height","current","useImperativeHandle","open","close","handleDismiss","closeAnim","start","resetPositionAnim","timing","toValue","duration","useNativeDriver","translateY","interpolate","inputRange","outputRange","useEffect","panResponders","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","event","dy","onPanResponderRelease","_","gs","vy","renderSheetHeader","createElement","View","style","sheetHeaderWrapper","TouchableHighlight","onPress","sheetDismissIconWrapper","underlayColor","Typography","variant","textCenter","numberOfLines","sheetActionWrapper","subtitleText","renderLargeIconComponent","largeIconContainer","largeIconAbsoluteWrapper","isVisible","onSwipeComplete","flex","margin","container","maxHeight","transform","sheetIndicatorWrapper","panHandlers","sliderIndicator"],"sourceRoot":"../../../../src","sources":["components/BottomSheet/BottomSheet.component.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeModal","_interopRequireDefault","_BottomSheet","_typography","_hooks","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","deviceWindow","Dimensions","BottomSheet","exports","forwardRef","props","ref","onDismiss","title","titleProps","subtitle","subtitleProps","dismissIcon","dismissIconProps","action","largeIcon","largeIconContainerHeight","maxSheetHeight","sheetHeader","backdropTransitionOutTiming","onBackdropPress","onBackButtonPress","children","rest","computedStyle","getStyle","keyboardHeight","useKeyboardHeight","visibility","setVisibility","useState","panY","useRef","Animated","Value","height","current","useImperativeHandle","open","close","handleDismiss","closeAnim","start","resetPositionAnim","timing","toValue","duration","useNativeDriver","translateY","interpolate","inputRange","outputRange","useEffect","panResponders","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","event","dy","onPanResponderRelease","_","gs","vy","renderSheetHeader","createElement","View","style","sheetHeaderWrapper","TouchableHighlight","onPress","sheetDismissIconWrapper","underlayColor","Typography","variant","textCenter","numberOfLines","sheetActionWrapper","subtitleText","renderLargeIconComponent","largeIconContainer","largeIconAbsoluteWrapper","isVisible","onSwipeComplete","flex","margin","container","maxHeight","transform","sheetIndicatorWrapper","panHandlers","sliderIndicator"],"sourceRoot":"../../../../src","sources":["components/BottomSheet/BottomSheet.component.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,39 +12,43 @@ var _BottomSheet = require("../BottomSheet/BottomSheet.component");
|
|
|
12
12
|
var _button = require("../button/button.component");
|
|
13
13
|
var _Checkbox = require("../Checkbox/Checkbox.component");
|
|
14
14
|
var _RadioButton = require("../RadioButton/RadioButton.component");
|
|
15
|
+
var _searchInput = require("../search-input/search-input.component");
|
|
15
16
|
var _icons = require("../../icons");
|
|
17
|
+
var _hooks = require("../../hooks");
|
|
16
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
20
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
19
21
|
function SelectionModal(props) {
|
|
20
22
|
const {
|
|
21
23
|
type = 'radio',
|
|
22
|
-
|
|
24
|
+
value = [],
|
|
23
25
|
listOptions,
|
|
24
26
|
maxSelectedItem = -1,
|
|
25
27
|
bottomSheetOpt,
|
|
26
28
|
saveButtonProps,
|
|
27
29
|
bottomActionContainerStyle,
|
|
30
|
+
withSearch = false,
|
|
31
|
+
searchComponentProps,
|
|
28
32
|
onSaveButtonPress = () => {},
|
|
33
|
+
renderDisplayComponent,
|
|
29
34
|
renderCutomBottomAction,
|
|
30
|
-
|
|
35
|
+
customRenderItem
|
|
31
36
|
} = props;
|
|
32
|
-
const {
|
|
33
|
-
renderItem,
|
|
34
|
-
...listOptionsRest
|
|
35
|
-
} = listOptions;
|
|
36
37
|
const ref = (0, _react.useRef)(null);
|
|
37
38
|
const computedStyles = (0, _selectionModal.getStyle)();
|
|
38
39
|
const [selectedTemp, setSelectedTemp] = (0, _react.useState)(value);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}) => {
|
|
40
|
+
const [searchValue, setSearchValue] = (0, _react.useState)('');
|
|
41
|
+
const searchValueDebounce = (0, _hooks.useDebouncedValue)(searchValue);
|
|
42
|
+
const {
|
|
43
|
+
data,
|
|
44
|
+
...listOptionsRest
|
|
45
|
+
} = listOptions;
|
|
46
|
+
const renderActionList = info => {
|
|
47
47
|
var _listOptions$data;
|
|
48
|
+
const {
|
|
49
|
+
item,
|
|
50
|
+
index
|
|
51
|
+
} = info;
|
|
48
52
|
const {
|
|
49
53
|
value: valueItem,
|
|
50
54
|
title,
|
|
@@ -52,6 +56,7 @@ function SelectionModal(props) {
|
|
|
52
56
|
...itemRest
|
|
53
57
|
} = item;
|
|
54
58
|
const isSelected = !!(selectedTemp !== null && selectedTemp !== void 0 && selectedTemp.find(i => i.value === valueItem));
|
|
59
|
+
if (customRenderItem) return customRenderItem(info, isSelected, handleOnItemPress);
|
|
55
60
|
return /*#__PURE__*/_react.default.createElement(_ActionList.ActionList, _extends({
|
|
56
61
|
title: title,
|
|
57
62
|
onPress: () => handleOnItemPress(item),
|
|
@@ -66,6 +71,16 @@ function SelectionModal(props) {
|
|
|
66
71
|
isLast: index === (((_listOptions$data = listOptions.data) === null || _listOptions$data === void 0 ? void 0 : _listOptions$data.length) ?? 0) - 1
|
|
67
72
|
}, itemRest));
|
|
68
73
|
};
|
|
74
|
+
const filterDataDebounced = (0, _react.useMemo)(() => {
|
|
75
|
+
if (searchValueDebounce === '') {
|
|
76
|
+
return data;
|
|
77
|
+
} else {
|
|
78
|
+
return data === null || data === void 0 ? void 0 : data.filter(item => {
|
|
79
|
+
var _item$title;
|
|
80
|
+
return (_item$title = item.title) === null || _item$title === void 0 ? void 0 : _item$title.includes(searchValueDebounce);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}, [data, searchValueDebounce]);
|
|
69
84
|
const handleOnItemPress = item => {
|
|
70
85
|
if (type === 'radio') {
|
|
71
86
|
setSelectedTemp([item]);
|
|
@@ -99,11 +114,22 @@ function SelectionModal(props) {
|
|
|
99
114
|
onSaveButtonPress(selectedTemp);
|
|
100
115
|
(_ref$current3 = ref.current) === null || _ref$current3 === void 0 || _ref$current3.close();
|
|
101
116
|
};
|
|
117
|
+
if (!renderDisplayComponent) {
|
|
118
|
+
console.warn('Please provide renderDisplayComponent props (SelectionModal - adiraku)');
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
102
121
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderDisplayComponent === null || renderDisplayComponent === void 0 ? void 0 : renderDisplayComponent(handleShowSheet), /*#__PURE__*/_react.default.createElement(_BottomSheet.BottomSheet, _extends({
|
|
103
122
|
ref: ref,
|
|
104
|
-
dismissIcon:
|
|
105
|
-
}, bottomSheetOpt), /*#__PURE__*/_react.default.createElement(_reactNative.
|
|
106
|
-
|
|
123
|
+
dismissIcon: /*#__PURE__*/_react.default.createElement(_icons.IconArrowLeft, null)
|
|
124
|
+
}, bottomSheetOpt), withSearch && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
125
|
+
style: computedStyles.searchContainer
|
|
126
|
+
}, /*#__PURE__*/_react.default.createElement(_searchInput.SearchInput, _extends({
|
|
127
|
+
value: searchValue,
|
|
128
|
+
onChangeText: setSearchValue,
|
|
129
|
+
onTraillingIconPress: () => setSearchValue('')
|
|
130
|
+
}, searchComponentProps))), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, _extends({
|
|
131
|
+
data: filterDataDebounced,
|
|
132
|
+
renderItem: renderActionList,
|
|
107
133
|
style: [computedStyles.flatListContentContainer, listOptions.contentContainerStyle]
|
|
108
134
|
}, listOptionsRest)), renderCutomBottomAction ? renderCutomBottomAction(handleOnSaveButtonPress, handleCloseSheet) : /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
109
135
|
style: [computedStyles.bottomActionContainer, bottomActionContainerStyle]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_selectionModal","_ActionList","_BottomSheet","_button","_Checkbox","_RadioButton","_icons","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","SelectionModal","props","type","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_selectionModal","_ActionList","_BottomSheet","_button","_Checkbox","_RadioButton","_searchInput","_icons","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","SelectionModal","props","type","value","listOptions","maxSelectedItem","bottomSheetOpt","saveButtonProps","bottomActionContainerStyle","withSearch","searchComponentProps","onSaveButtonPress","renderDisplayComponent","renderCutomBottomAction","customRenderItem","ref","useRef","computedStyles","getStyle","selectedTemp","setSelectedTemp","useState","searchValue","setSearchValue","searchValueDebounce","useDebouncedValue","data","listOptionsRest","renderActionList","info","_listOptions$data","item","index","valueItem","title","disabled","itemRest","isSelected","find","handleOnItemPress","createElement","ActionList","onPress","trailingComponent","RadioButton","selected","Checkbox","isLast","filterDataDebounced","useMemo","filter","_item$title","includes","isItemExist","filterData","handleShowSheet","_ref$current","current","open","handleCloseSheet","_ref$current2","close","handleOnSaveButtonPress","_ref$current3","console","warn","Fragment","BottomSheet","dismissIcon","IconArrowLeft","View","style","searchContainer","SearchInput","onChangeText","onTraillingIconPress","FlatList","renderItem","flatListContentContainer","contentContainerStyle","bottomActionContainer","Button","label"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.component.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAYA,IAAAE,eAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAAgD,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAGzC,SAASG,cAAcA,CAACC,KAA0B,EAAE;EACzD,MAAM;IACJC,IAAI,GAAG,OAAO;IACdC,KAAK,GAAG,EAAE;IACVC,WAAW;IACXC,eAAe,GAAG,CAAC,CAAC;IACpBC,cAAc;IACdC,eAAe;IACfC,0BAA0B;IAC1BC,UAAU,GAAG,KAAK;IAClBC,oBAAoB;IACpBC,iBAAiB,GAAGA,CAAA,KAAM,CAAC,CAAC;IAC5BC,sBAAsB;IACtBC,uBAAuB;IACvBC;EACF,CAAC,GAAGb,KAAK;EAET,MAAMc,GAAG,GAAG,IAAAC,aAAM,EAAqB,IAAI,CAAC;EAE5C,MAAMC,cAAc,GAAG,IAAAC,wBAAQ,EAAC,CAAC;EAEjC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAsBlB,KAAK,CAAC;EAC5E,MAAM,CAACmB,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EAClD,MAAMG,mBAAmB,GAAG,IAAAC,wBAAiB,EAACH,WAAW,CAAC;EAE1D,MAAM;IAAEI,IAAI;IAAE,GAAGC;EAAgB,CAAC,GAAGvB,WAAW;EAChD,MAAMwB,gBAAgB,GAAIC,IAA2C,IAAK;IAAA,IAAAC,iBAAA;IACxE,MAAM;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAGH,IAAI;IAC5B,MAAM;MAAE1B,KAAK,EAAE8B,SAAS;MAAEC,KAAK;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAE/D,MAAMM,UAAU,GAAG,CAAC,EAAClB,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEmB,IAAI,CAAE9C,CAAC,IAAKA,CAAC,CAACW,KAAK,KAAK8B,SAAS,CAAC;IAErE,IAAInB,gBAAgB,EAClB,OAAOA,gBAAgB,CAACe,IAAI,EAAEQ,UAAU,EAAEE,iBAAiB,CAAC;IAE9D,oBACE9E,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAAC1E,WAAA,CAAA2E,UAAU,EAAA/C,QAAA;MACTwC,KAAK,EAAEA,KAAM;MACbQ,OAAO,EAAEA,CAAA,KAAMH,iBAAiB,CAACR,IAAI,CAAE;MACvCY,iBAAiB,EACfzC,IAAI,KAAK,OAAO,gBACdzC,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACtE,YAAA,CAAA0E,WAAW;QAACC,QAAQ,EAAER,UAAW;QAACF,QAAQ,EAAEA;MAAS,CAAE,CAAC,gBAEzD1E,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACvE,SAAA,CAAA6E,QAAQ;QAACD,QAAQ,EAAER,UAAW;QAACF,QAAQ,EAAEA;MAAS,CAAE,CAExD;MACDA,QAAQ,EAAEA,QAAS;MACnBY,MAAM,EAAEf,KAAK,KAAK,CAAC,EAAAF,iBAAA,GAAA1B,WAAW,CAACsB,IAAI,cAAAI,iBAAA,uBAAhBA,iBAAA,CAAkBhC,MAAM,KAAI,CAAC,IAAI;IAAE,GAClDsC,QAAQ,CACb,CAAC;EAEN,CAAC;EAED,MAAMY,mBAAmB,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxC,IAAIzB,mBAAmB,KAAK,EAAE,EAAE;MAC9B,OAAOE,IAAI;IACb,CAAC,MAAM;MACL,OAAOA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEwB,MAAM,CAAEnB,IAAI;QAAA,IAAAoB,WAAA;QAAA,QAAAA,WAAA,GAAKpB,IAAI,CAACG,KAAK,cAAAiB,WAAA,uBAAVA,WAAA,CAAYC,QAAQ,CAAC5B,mBAAmB,CAAC;MAAA,EAAC;IAC1E;EACF,CAAC,EAAE,CAACE,IAAI,EAAEF,mBAAmB,CAAC,CAAC;EAE/B,MAAMe,iBAAiB,GAAIR,IAAuB,IAAK;IACrD,IAAI7B,IAAI,KAAK,OAAO,EAAE;MACpBkB,eAAe,CAAC,CAACW,IAAI,CAAC,CAAC;IACzB,CAAC,MAAM,IAAI7B,IAAI,KAAK,UAAU,EAAE;MAC9B,MAAMmD,WAAW,GAAGlC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEmB,IAAI,CAAE9C,CAAC,IAAKA,CAAC,CAACW,KAAK,KAAK4B,IAAI,CAAC5B,KAAK,CAAC;;MAErE;MACA,IAAIkD,WAAW,EAAE;QACf,MAAMC,UAAU,GAAGnC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE+B,MAAM,CAAE1D,CAAC,IAAKA,CAAC,CAACW,KAAK,KAAK4B,IAAI,CAAC5B,KAAK,CAAC;QAEtEiB,eAAe,CAACkC,UAAU,CAAC;MAC7B,CAAC,MAAM;QACL,IAAIjD,eAAe,GAAG,CAAC,EAAE;UACvBe,eAAe,CAAC,CAAC,IAAID,YAAY,IAAI,EAAE,CAAC,EAAEY,IAAI,CAAC,CAAC;QAClD,CAAC,MAAM;UACLX,eAAe,CAAC,CAAC,IAAID,YAAY,IAAI,EAAE,CAAC,EAAEY,IAAI,CAAC,CAAC;QAClD;MACF;IACF;EACF,CAAC;EAED,MAAMwB,eAAe,GAAGA,CAAA,KAAM;IAAA,IAAAC,YAAA;IAC5BpC,eAAe,CAACjB,KAAK,CAAC;IACtB,CAAAqD,YAAA,GAAAzC,GAAG,CAAC0C,OAAO,cAAAD,YAAA,eAAXA,YAAA,CAAaE,IAAI,CAAC,CAAC;EACrB,CAAC;EAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAAA,IAAAC,aAAA;IAC7B,CAAAA,aAAA,GAAA7C,GAAG,CAAC0C,OAAO,cAAAG,aAAA,eAAXA,aAAA,CAAaC,KAAK,CAAC,CAAC;EACtB,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;IAAA,IAAAC,aAAA;IACpCpD,iBAAiB,CAACQ,YAAY,CAAC;IAC/B,CAAA4C,aAAA,GAAAhD,GAAG,CAAC0C,OAAO,cAAAM,aAAA,eAAXA,aAAA,CAAaF,KAAK,CAAC,CAAC;EACtB,CAAC;EAED,IAAI,CAACjD,sBAAsB,EAAE;IAC3BoD,OAAO,CAACC,IAAI,CACV,wEACF,CAAC;IACD,OAAO,IAAI;EACb;EAEA,oBACExG,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAAA/E,MAAA,CAAAmB,OAAA,CAAAsF,QAAA,QACGtD,sBAAsB,aAAtBA,sBAAsB,uBAAtBA,sBAAsB,CAAG2C,eAAe,CAAC,eAE1C9F,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACzE,YAAA,CAAAoG,WAAW,EAAAzE,QAAA;IACVqB,GAAG,EAAEA,GAAI;IACTqD,WAAW,eAAE3G,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACpE,MAAA,CAAAiG,aAAa,MAAE;EAAE,GAC3B/D,cAAc,GAEjBG,UAAU,iBACThD,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAAC5E,YAAA,CAAA0G,IAAI;IAACC,KAAK,EAAEtD,cAAc,CAACuD;EAAgB,gBAC1C/G,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACrE,YAAA,CAAAsG,WAAW,EAAA/E,QAAA;IACVS,KAAK,EAAEmB,WAAY;IACnBoD,YAAY,EAAEnD,cAAe;IAC7BoD,oBAAoB,EAAEA,CAAA,KAAMpD,cAAc,CAAC,EAAE;EAAE,GAC3Cb,oBAAoB,CACzB,CACG,CACP,eACDjD,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAAC5E,YAAA,CAAAgH,QAAQ,EAAAlF,QAAA;IACPgC,IAAI,EAAEsB,mBAAoB;IAC1B6B,UAAU,EAAEjD,gBAAsD;IAClE2C,KAAK,EAAE,CACLtD,cAAc,CAAC6D,wBAAwB,EACvC1E,WAAW,CAAC2E,qBAAqB;EACjC,GACEpD,eAAe,CACpB,CAAC,EAEDd,uBAAuB,GACtBA,uBAAuB,CAACiD,uBAAuB,EAAEH,gBAAgB,CAAC,gBAElElG,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAAC5E,YAAA,CAAA0G,IAAI;IACHC,KAAK,EAAE,CACLtD,cAAc,CAAC+D,qBAAqB,EACpCxE,0BAA0B;EAC1B,gBAEF/C,MAAA,CAAAmB,OAAA,CAAA4D,aAAA,CAACxE,OAAA,CAAAiH,MAAM,EAAAvF,QAAA;IACLwF,KAAK,EAAE,CAAA3E,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE2E,KAAK,KAAI,QAAS;IAC1CxC,OAAO,EAAEoB,uBAAwB;IACjC3B,QAAQ,EAAE,CAAC,CAAAhB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAErB,MAAM,KAAI,CAAC,KAAK;EAAE,GACvCS,eAAe,CACpB,CACG,CAEG,CACb,CAAC;AAEP","ignoreList":[]}
|
|
@@ -14,6 +14,11 @@ const getStyle = () => {
|
|
|
14
14
|
paddingBottom: _themes.Spacing[24],
|
|
15
15
|
backgroundColor: 'transparent'
|
|
16
16
|
};
|
|
17
|
+
computedStyle.searchContainer = {
|
|
18
|
+
padding: _themes.Spacing[16],
|
|
19
|
+
paddingTop: _themes.Spacing[8],
|
|
20
|
+
backgroundColor: _themes.Palettes.white[50]
|
|
21
|
+
};
|
|
17
22
|
return _reactNative.StyleSheet.create(computedStyle);
|
|
18
23
|
};
|
|
19
24
|
exports.getStyle = getStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_themes","getStyle","computedStyle","flatListContentContainer","bottomActionContainer","padding","Spacing","paddingBottom","backgroundColor","StyleSheet","create","exports"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.style.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_themes","getStyle","computedStyle","flatListContentContainer","bottomActionContainer","padding","Spacing","paddingBottom","backgroundColor","searchContainer","paddingTop","Palettes","white","StyleSheet","create","exports"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.style.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAQO,MAAME,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMC,aAAiC,GAAG,CAAC,CAAC;EAE5CA,aAAa,CAACC,wBAAwB,GAAG,CAAC,CAAC;EAE3CD,aAAa,CAACE,qBAAqB,GAAG;IACpCC,OAAO,EAAEC,eAAO,CAAC,EAAE,CAAC;IACpBC,aAAa,EAAED,eAAO,CAAC,EAAE,CAAC;IAC1BE,eAAe,EAAE;EACnB,CAAC;EAEDN,aAAa,CAACO,eAAe,GAAG;IAC9BJ,OAAO,EAAEC,eAAO,CAAC,EAAE,CAAC;IACpBI,UAAU,EAAEJ,eAAO,CAAC,CAAC,CAAC;IACtBE,eAAe,EAAEG,gBAAQ,CAACC,KAAK,CAAC,EAAE;EACpC,CAAC;EAED,OAAOC,uBAAU,CAACC,MAAM,CAACZ,aAAa,CAAC;AACzC,CAAC;AAACa,OAAA,CAAAd,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _useDebounce = require("./useDebounce");
|
|
7
|
+
Object.keys(_useDebounce).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _useDebounce[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _useDebounce[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _useKeyboardHeight = require("./useKeyboardHeight");
|
|
18
|
+
Object.keys(_useKeyboardHeight).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _useKeyboardHeight[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _useKeyboardHeight[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_useDebounce","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useKeyboardHeight"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,kBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,kBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,kBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,kBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useDebouncedValue = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
const useDebouncedValue = (value = '', delay = 300) => {
|
|
9
|
+
const [debouncedValue, setDebouncedValue] = (0, _react.useState)(value);
|
|
10
|
+
(0, _react.useEffect)(() => {
|
|
11
|
+
const timer = setTimeout(() => {
|
|
12
|
+
setDebouncedValue(value);
|
|
13
|
+
}, delay);
|
|
14
|
+
return () => clearTimeout(timer);
|
|
15
|
+
}, [value, delay]);
|
|
16
|
+
return debouncedValue;
|
|
17
|
+
};
|
|
18
|
+
exports.useDebouncedValue = useDebouncedValue;
|
|
19
|
+
//# sourceMappingURL=useDebounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","useDebouncedValue","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","setTimeout","clearTimeout","exports"],"sourceRoot":"../../../src","sources":["hooks/useDebounce.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,iBAAiB,GAAGA,CAACC,KAAK,GAAG,EAAE,EAAEC,KAAK,GAAG,GAAG,KAAa;EACpE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAACJ,KAAK,CAAC;EAE3D,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMC,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7BJ,iBAAiB,CAACH,KAAK,CAAC;IAC1B,CAAC,EAAEC,KAAK,CAAC;IAET,OAAO,MAAMO,YAAY,CAACF,KAAK,CAAC;EAClC,CAAC,EAAE,CAACN,KAAK,EAAEC,KAAK,CAAC,CAAC;EAElB,OAAOC,cAAc;AACvB,CAAC;AAACO,OAAA,CAAAV,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useKeyboardHeight = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
const useKeyboardHeight = () => {
|
|
10
|
+
const [keyboardHeight, setKeyboardHeight] = (0, _react.useState)(0);
|
|
11
|
+
(0, _react.useEffect)(() => {
|
|
12
|
+
function onKeyboardDidShow(e) {
|
|
13
|
+
// Remove type here if not using TypeScript
|
|
14
|
+
setKeyboardHeight(e.endCoordinates.height);
|
|
15
|
+
}
|
|
16
|
+
function onKeyboardDidHide() {
|
|
17
|
+
setKeyboardHeight(0);
|
|
18
|
+
}
|
|
19
|
+
const showSubscription = _reactNative.Keyboard.addListener('keyboardDidShow', onKeyboardDidShow);
|
|
20
|
+
const hideSubscription = _reactNative.Keyboard.addListener('keyboardDidHide', onKeyboardDidHide);
|
|
21
|
+
return () => {
|
|
22
|
+
showSubscription.remove();
|
|
23
|
+
hideSubscription.remove();
|
|
24
|
+
};
|
|
25
|
+
}, []);
|
|
26
|
+
return keyboardHeight;
|
|
27
|
+
};
|
|
28
|
+
exports.useKeyboardHeight = useKeyboardHeight;
|
|
29
|
+
//# sourceMappingURL=useKeyboardHeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","useKeyboardHeight","keyboardHeight","setKeyboardHeight","useState","useEffect","onKeyboardDidShow","e","endCoordinates","height","onKeyboardDidHide","showSubscription","Keyboard","addListener","hideSubscription","remove","exports"],"sourceRoot":"../../../src","sources":["hooks/useKeyboardHeight.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEO,MAAME,iBAAiB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAEvD,IAAAC,gBAAS,EAAC,MAAM;IACd,SAASC,iBAAiBA,CAACC,CAAgB,EAAE;MAC3C;MACAJ,iBAAiB,CAACI,CAAC,CAACC,cAAc,CAACC,MAAM,CAAC;IAC5C;IAEA,SAASC,iBAAiBA,CAAA,EAAG;MAC3BP,iBAAiB,CAAC,CAAC,CAAC;IACtB;IAEA,MAAMQ,gBAAgB,GAAGC,qBAAQ,CAACC,WAAW,CAC3C,iBAAiB,EACjBP,iBACF,CAAC;IACD,MAAMQ,gBAAgB,GAAGF,qBAAQ,CAACC,WAAW,CAC3C,iBAAiB,EACjBH,iBACF,CAAC;IACD,OAAO,MAAM;MACXC,gBAAgB,CAACI,MAAM,CAAC,CAAC;MACzBD,gBAAgB,CAACC,MAAM,CAAC,CAAC;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOb,cAAc;AACvB,CAAC;AAACc,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -25,4 +25,15 @@ Object.keys(_themes).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
var _hooks = require("./hooks");
|
|
29
|
+
Object.keys(_hooks).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _hooks[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _hooks[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
28
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_themes"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_themes","_hooks"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,MAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,MAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,MAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import { Animated, Dimensions, PanResponder, TouchableHighlight, View } from 're
|
|
|
4
4
|
import Modal from 'react-native-modal';
|
|
5
5
|
import { getStyle } from './BottomSheet.style';
|
|
6
6
|
import { Typography } from '../typography/typography.component';
|
|
7
|
+
import { useKeyboardHeight } from '../../hooks';
|
|
7
8
|
const deviceWindow = Dimensions.get('window');
|
|
8
9
|
const BottomSheet = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
9
10
|
const {
|
|
@@ -26,6 +27,7 @@ const BottomSheet = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
26
27
|
...rest
|
|
27
28
|
} = props;
|
|
28
29
|
const computedStyle = getStyle();
|
|
30
|
+
const keyboardHeight = useKeyboardHeight();
|
|
29
31
|
const [visibility, setVisibility] = React.useState(false);
|
|
30
32
|
const panY = React.useRef(new Animated.Value(deviceWindow.height)).current;
|
|
31
33
|
React.useImperativeHandle(ref, () => {
|
|
@@ -129,7 +131,7 @@ const BottomSheet = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
129
131
|
}
|
|
130
132
|
}, rest), /*#__PURE__*/React.createElement(Animated.View, {
|
|
131
133
|
style: [computedStyle.container, {
|
|
132
|
-
maxHeight: deviceWindow.height * maxSheetHeight,
|
|
134
|
+
maxHeight: deviceWindow.height * maxSheetHeight - keyboardHeight,
|
|
133
135
|
transform: [{
|
|
134
136
|
translateY: translateY
|
|
135
137
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Dimensions","PanResponder","TouchableHighlight","View","Modal","getStyle","Typography","deviceWindow","get","BottomSheet","forwardRef","props","ref","onDismiss","title","titleProps","subtitle","subtitleProps","dismissIcon","dismissIconProps","action","largeIcon","largeIconContainerHeight","maxSheetHeight","sheetHeader","backdropTransitionOutTiming","onBackdropPress","onBackButtonPress","children","rest","computedStyle","visibility","setVisibility","useState","panY","useRef","Value","height","current","useImperativeHandle","open","close","handleDismiss","closeAnim","start","resetPositionAnim","timing","toValue","duration","useNativeDriver","translateY","interpolate","inputRange","outputRange","useEffect","panResponders","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","event","dy","onPanResponderRelease","_","gs","vy","renderSheetHeader","createElement","style","sheetHeaderWrapper","_extends","onPress","sheetDismissIconWrapper","underlayColor","variant","textCenter","numberOfLines","sheetActionWrapper","subtitleText","renderLargeIconComponent","largeIconContainer","largeIconAbsoluteWrapper","isVisible","onSwipeComplete","flex","margin","container","maxHeight","transform","sheetIndicatorWrapper","panHandlers","sliderIndicator"],"sourceRoot":"../../../../src","sources":["components/BottomSheet/BottomSheet.component.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EACRC,UAAU,EACVC,YAAY,EACZC,kBAAkB,EAClBC,IAAI,QACC,cAAc;AACrB,OAAOC,KAAK,MAAM,oBAAoB;AAEtC,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,UAAU,QAAQ,oCAAoC;
|
|
1
|
+
{"version":3,"names":["React","Animated","Dimensions","PanResponder","TouchableHighlight","View","Modal","getStyle","Typography","useKeyboardHeight","deviceWindow","get","BottomSheet","forwardRef","props","ref","onDismiss","title","titleProps","subtitle","subtitleProps","dismissIcon","dismissIconProps","action","largeIcon","largeIconContainerHeight","maxSheetHeight","sheetHeader","backdropTransitionOutTiming","onBackdropPress","onBackButtonPress","children","rest","computedStyle","keyboardHeight","visibility","setVisibility","useState","panY","useRef","Value","height","current","useImperativeHandle","open","close","handleDismiss","closeAnim","start","resetPositionAnim","timing","toValue","duration","useNativeDriver","translateY","interpolate","inputRange","outputRange","useEffect","panResponders","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderMove","event","dy","onPanResponderRelease","_","gs","vy","renderSheetHeader","createElement","style","sheetHeaderWrapper","_extends","onPress","sheetDismissIconWrapper","underlayColor","variant","textCenter","numberOfLines","sheetActionWrapper","subtitleText","renderLargeIconComponent","largeIconContainer","largeIconAbsoluteWrapper","isVisible","onSwipeComplete","flex","margin","container","maxHeight","transform","sheetIndicatorWrapper","panHandlers","sliderIndicator"],"sourceRoot":"../../../../src","sources":["components/BottomSheet/BottomSheet.component.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useRef, useState } from 'react';
|
|
2
|
+
import React, { useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { FlatList, View } from 'react-native';
|
|
4
4
|
import { getStyle } from './selection-modal.style';
|
|
5
5
|
import { ActionList } from '../ActionList/ActionList.component';
|
|
@@ -7,36 +7,40 @@ import { BottomSheet } from '../BottomSheet/BottomSheet.component';
|
|
|
7
7
|
import { Button } from '../button/button.component';
|
|
8
8
|
import { Checkbox } from '../Checkbox/Checkbox.component';
|
|
9
9
|
import { RadioButton } from '../RadioButton/RadioButton.component';
|
|
10
|
+
import { SearchInput } from '../search-input/search-input.component';
|
|
10
11
|
import { IconArrowLeft } from '../../icons';
|
|
12
|
+
import { useDebouncedValue } from '../../hooks';
|
|
11
13
|
export function SelectionModal(props) {
|
|
12
14
|
const {
|
|
13
15
|
type = 'radio',
|
|
14
|
-
|
|
16
|
+
value = [],
|
|
15
17
|
listOptions,
|
|
16
18
|
maxSelectedItem = -1,
|
|
17
19
|
bottomSheetOpt,
|
|
18
20
|
saveButtonProps,
|
|
19
21
|
bottomActionContainerStyle,
|
|
22
|
+
withSearch = false,
|
|
23
|
+
searchComponentProps,
|
|
20
24
|
onSaveButtonPress = () => {},
|
|
25
|
+
renderDisplayComponent,
|
|
21
26
|
renderCutomBottomAction,
|
|
22
|
-
|
|
27
|
+
customRenderItem
|
|
23
28
|
} = props;
|
|
24
|
-
const {
|
|
25
|
-
renderItem,
|
|
26
|
-
...listOptionsRest
|
|
27
|
-
} = listOptions;
|
|
28
29
|
const ref = useRef(null);
|
|
29
30
|
const computedStyles = getStyle();
|
|
30
31
|
const [selectedTemp, setSelectedTemp] = useState(value);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}) => {
|
|
32
|
+
const [searchValue, setSearchValue] = useState('');
|
|
33
|
+
const searchValueDebounce = useDebouncedValue(searchValue);
|
|
34
|
+
const {
|
|
35
|
+
data,
|
|
36
|
+
...listOptionsRest
|
|
37
|
+
} = listOptions;
|
|
38
|
+
const renderActionList = info => {
|
|
39
39
|
var _listOptions$data;
|
|
40
|
+
const {
|
|
41
|
+
item,
|
|
42
|
+
index
|
|
43
|
+
} = info;
|
|
40
44
|
const {
|
|
41
45
|
value: valueItem,
|
|
42
46
|
title,
|
|
@@ -44,6 +48,7 @@ export function SelectionModal(props) {
|
|
|
44
48
|
...itemRest
|
|
45
49
|
} = item;
|
|
46
50
|
const isSelected = !!(selectedTemp !== null && selectedTemp !== void 0 && selectedTemp.find(i => i.value === valueItem));
|
|
51
|
+
if (customRenderItem) return customRenderItem(info, isSelected, handleOnItemPress);
|
|
47
52
|
return /*#__PURE__*/React.createElement(ActionList, _extends({
|
|
48
53
|
title: title,
|
|
49
54
|
onPress: () => handleOnItemPress(item),
|
|
@@ -58,6 +63,16 @@ export function SelectionModal(props) {
|
|
|
58
63
|
isLast: index === (((_listOptions$data = listOptions.data) === null || _listOptions$data === void 0 ? void 0 : _listOptions$data.length) ?? 0) - 1
|
|
59
64
|
}, itemRest));
|
|
60
65
|
};
|
|
66
|
+
const filterDataDebounced = useMemo(() => {
|
|
67
|
+
if (searchValueDebounce === '') {
|
|
68
|
+
return data;
|
|
69
|
+
} else {
|
|
70
|
+
return data === null || data === void 0 ? void 0 : data.filter(item => {
|
|
71
|
+
var _item$title;
|
|
72
|
+
return (_item$title = item.title) === null || _item$title === void 0 ? void 0 : _item$title.includes(searchValueDebounce);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, [data, searchValueDebounce]);
|
|
61
76
|
const handleOnItemPress = item => {
|
|
62
77
|
if (type === 'radio') {
|
|
63
78
|
setSelectedTemp([item]);
|
|
@@ -91,11 +106,22 @@ export function SelectionModal(props) {
|
|
|
91
106
|
onSaveButtonPress(selectedTemp);
|
|
92
107
|
(_ref$current3 = ref.current) === null || _ref$current3 === void 0 || _ref$current3.close();
|
|
93
108
|
};
|
|
109
|
+
if (!renderDisplayComponent) {
|
|
110
|
+
console.warn('Please provide renderDisplayComponent props (SelectionModal - adiraku)');
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
94
113
|
return /*#__PURE__*/React.createElement(React.Fragment, null, renderDisplayComponent === null || renderDisplayComponent === void 0 ? void 0 : renderDisplayComponent(handleShowSheet), /*#__PURE__*/React.createElement(BottomSheet, _extends({
|
|
95
114
|
ref: ref,
|
|
96
|
-
dismissIcon:
|
|
97
|
-
}, bottomSheetOpt), /*#__PURE__*/React.createElement(
|
|
98
|
-
|
|
115
|
+
dismissIcon: /*#__PURE__*/React.createElement(IconArrowLeft, null)
|
|
116
|
+
}, bottomSheetOpt), withSearch && /*#__PURE__*/React.createElement(View, {
|
|
117
|
+
style: computedStyles.searchContainer
|
|
118
|
+
}, /*#__PURE__*/React.createElement(SearchInput, _extends({
|
|
119
|
+
value: searchValue,
|
|
120
|
+
onChangeText: setSearchValue,
|
|
121
|
+
onTraillingIconPress: () => setSearchValue('')
|
|
122
|
+
}, searchComponentProps))), /*#__PURE__*/React.createElement(FlatList, _extends({
|
|
123
|
+
data: filterDataDebounced,
|
|
124
|
+
renderItem: renderActionList,
|
|
99
125
|
style: [computedStyles.flatListContentContainer, listOptions.contentContainerStyle]
|
|
100
126
|
}, listOptionsRest)), renderCutomBottomAction ? renderCutomBottomAction(handleOnSaveButtonPress, handleCloseSheet) : /*#__PURE__*/React.createElement(View, {
|
|
101
127
|
style: [computedStyles.bottomActionContainer, bottomActionContainerStyle]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","FlatList","View","getStyle","ActionList","BottomSheet","Button","Checkbox","RadioButton","IconArrowLeft","SelectionModal","props","type","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useState","FlatList","View","getStyle","ActionList","BottomSheet","Button","Checkbox","RadioButton","SearchInput","IconArrowLeft","useDebouncedValue","SelectionModal","props","type","value","listOptions","maxSelectedItem","bottomSheetOpt","saveButtonProps","bottomActionContainerStyle","withSearch","searchComponentProps","onSaveButtonPress","renderDisplayComponent","renderCutomBottomAction","customRenderItem","ref","computedStyles","selectedTemp","setSelectedTemp","searchValue","setSearchValue","searchValueDebounce","data","listOptionsRest","renderActionList","info","_listOptions$data","item","index","valueItem","title","disabled","itemRest","isSelected","find","i","handleOnItemPress","createElement","_extends","onPress","trailingComponent","selected","isLast","length","filterDataDebounced","filter","_item$title","includes","isItemExist","filterData","handleShowSheet","_ref$current","current","open","handleCloseSheet","_ref$current2","close","handleOnSaveButtonPress","_ref$current3","console","warn","Fragment","dismissIcon","style","searchContainer","onChangeText","onTraillingIconPress","renderItem","flatListContentContainer","contentContainerStyle","bottomActionContainer","label"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.component.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
|
-
import { Spacing } from '../../themes';
|
|
2
|
+
import { Palettes, Spacing } from '../../themes';
|
|
3
3
|
export const getStyle = () => {
|
|
4
4
|
const computedStyle = {};
|
|
5
5
|
computedStyle.flatListContentContainer = {};
|
|
@@ -8,6 +8,11 @@ export const getStyle = () => {
|
|
|
8
8
|
paddingBottom: Spacing[24],
|
|
9
9
|
backgroundColor: 'transparent'
|
|
10
10
|
};
|
|
11
|
+
computedStyle.searchContainer = {
|
|
12
|
+
padding: Spacing[16],
|
|
13
|
+
paddingTop: Spacing[8],
|
|
14
|
+
backgroundColor: Palettes.white[50]
|
|
15
|
+
};
|
|
11
16
|
return StyleSheet.create(computedStyle);
|
|
12
17
|
};
|
|
13
18
|
//# sourceMappingURL=selection-modal.style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","Spacing","getStyle","computedStyle","flatListContentContainer","bottomActionContainer","padding","paddingBottom","backgroundColor","create"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.style.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAmB,cAAc;AAEpD,SAASC,OAAO,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["StyleSheet","Palettes","Spacing","getStyle","computedStyle","flatListContentContainer","bottomActionContainer","padding","paddingBottom","backgroundColor","searchContainer","paddingTop","white","create"],"sourceRoot":"../../../../src","sources":["components/selection-modal/selection-modal.style.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAmB,cAAc;AAEpD,SAASC,QAAQ,EAAEC,OAAO,QAAQ,cAAc;AAQhD,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMC,aAAiC,GAAG,CAAC,CAAC;EAE5CA,aAAa,CAACC,wBAAwB,GAAG,CAAC,CAAC;EAE3CD,aAAa,CAACE,qBAAqB,GAAG;IACpCC,OAAO,EAAEL,OAAO,CAAC,EAAE,CAAC;IACpBM,aAAa,EAAEN,OAAO,CAAC,EAAE,CAAC;IAC1BO,eAAe,EAAE;EACnB,CAAC;EAEDL,aAAa,CAACM,eAAe,GAAG;IAC9BH,OAAO,EAAEL,OAAO,CAAC,EAAE,CAAC;IACpBS,UAAU,EAAET,OAAO,CAAC,CAAC,CAAC;IACtBO,eAAe,EAAER,QAAQ,CAACW,KAAK,CAAC,EAAE;EACpC,CAAC;EAED,OAAOZ,UAAU,CAACa,MAAM,CAACT,aAAa,CAAC;AACzC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"AAAA,cAAc,eAAe;AAC7B,cAAc,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export const useDebouncedValue = (value = '', delay = 300) => {
|
|
3
|
+
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const timer = setTimeout(() => {
|
|
6
|
+
setDebouncedValue(value);
|
|
7
|
+
}, delay);
|
|
8
|
+
return () => clearTimeout(timer);
|
|
9
|
+
}, [value, delay]);
|
|
10
|
+
return debouncedValue;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useDebounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useDebouncedValue","value","delay","debouncedValue","setDebouncedValue","timer","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useDebounce.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAE3C,OAAO,MAAMC,iBAAiB,GAAGA,CAACC,KAAK,GAAG,EAAE,EAAEC,KAAK,GAAG,GAAG,KAAa;EACpE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGL,QAAQ,CAACE,KAAK,CAAC;EAE3DH,SAAS,CAAC,MAAM;IACd,MAAMO,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7BF,iBAAiB,CAACH,KAAK,CAAC;IAC1B,CAAC,EAAEC,KAAK,CAAC;IAET,OAAO,MAAMK,YAAY,CAACF,KAAK,CAAC;EAClC,CAAC,EAAE,CAACJ,KAAK,EAAEC,KAAK,CAAC,CAAC;EAElB,OAAOC,cAAc;AACvB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { Keyboard } from 'react-native';
|
|
3
|
+
export const useKeyboardHeight = () => {
|
|
4
|
+
const [keyboardHeight, setKeyboardHeight] = useState(0);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
function onKeyboardDidShow(e) {
|
|
7
|
+
// Remove type here if not using TypeScript
|
|
8
|
+
setKeyboardHeight(e.endCoordinates.height);
|
|
9
|
+
}
|
|
10
|
+
function onKeyboardDidHide() {
|
|
11
|
+
setKeyboardHeight(0);
|
|
12
|
+
}
|
|
13
|
+
const showSubscription = Keyboard.addListener('keyboardDidShow', onKeyboardDidShow);
|
|
14
|
+
const hideSubscription = Keyboard.addListener('keyboardDidHide', onKeyboardDidHide);
|
|
15
|
+
return () => {
|
|
16
|
+
showSubscription.remove();
|
|
17
|
+
hideSubscription.remove();
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
return keyboardHeight;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useKeyboardHeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","Keyboard","useKeyboardHeight","keyboardHeight","setKeyboardHeight","onKeyboardDidShow","e","endCoordinates","height","onKeyboardDidHide","showSubscription","addListener","hideSubscription","remove"],"sourceRoot":"../../../src","sources":["hooks/useKeyboardHeight.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAuB,cAAc;AAEtD,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;EAEvDD,SAAS,CAAC,MAAM;IACd,SAASM,iBAAiBA,CAACC,CAAgB,EAAE;MAC3C;MACAF,iBAAiB,CAACE,CAAC,CAACC,cAAc,CAACC,MAAM,CAAC;IAC5C;IAEA,SAASC,iBAAiBA,CAAA,EAAG;MAC3BL,iBAAiB,CAAC,CAAC,CAAC;IACtB;IAEA,MAAMM,gBAAgB,GAAGT,QAAQ,CAACU,WAAW,CAC3C,iBAAiB,EACjBN,iBACF,CAAC;IACD,MAAMO,gBAAgB,GAAGX,QAAQ,CAACU,WAAW,CAC3C,iBAAiB,EACjBF,iBACF,CAAC;IACD,OAAO,MAAM;MACXC,gBAAgB,CAACG,MAAM,CAAC,CAAC;MACzBD,gBAAgB,CAACC,MAAM,CAAC,CAAC;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOV,cAAc;AACvB,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,SAAS","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.component.d.ts","sourceRoot":"","sources":["../../../../src/components/BottomSheet/BottomSheet.component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheet.component.d.ts","sourceRoot":"","sources":["../../../../src/components/BottomSheet/BottomSheet.component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,aAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,oBAAY,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAItE,QAAA,MAAM,WAAW,+FAgMhB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -21,6 +21,6 @@ export interface SearchInputProps extends TextInputProps {
|
|
|
21
21
|
/**
|
|
22
22
|
* Callback function that is triggered when the trailing icon is pressed.
|
|
23
23
|
*/
|
|
24
|
-
onTraillingIconPress
|
|
24
|
+
onTraillingIconPress?: () => void;
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=search-input.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-input.type.d.ts","sourceRoot":"","sources":["../../../../src/components/search-input/search-input.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IACrE;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IACpE;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"search-input.type.d.ts","sourceRoot":"","sources":["../../../../src/components/search-input/search-input.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IACrE;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IACpE;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.component.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"selection-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.component.tsx"],"names":[],"mappings":";AAQA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAahC,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,sBAwJxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-modal.style.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAIrD,UAAU,kBAAkB;IAC1B,wBAAwB,CAAC,EAAE,SAAS,CAAC;IACrC,qBAAqB,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"selection-modal.style.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAIrD,UAAU,kBAAkB;IAC1B,wBAAwB,CAAC,EAAE,SAAS,CAAC;IACrC,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,0BAkBpB,CAAC"}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { FlatListProps, ViewStyle } from 'react-native';
|
|
2
|
+
import { FlatListProps, ListRenderItemInfo, ViewStyle } from 'react-native';
|
|
3
3
|
import { ActionListProps } from '../ActionList/ActionList.type';
|
|
4
4
|
import { BottomSheetProps } from '../BottomSheet/BottomSheet.type';
|
|
5
5
|
import { ButtonProps } from '../button/button.type';
|
|
6
|
+
import { SearchInputProps } from '../search-input/search-input.type';
|
|
6
7
|
export declare type SelectionModalValue = FlatListProps<SelectionItemData>['data'];
|
|
7
8
|
export declare type SelectionModalProps = {
|
|
8
9
|
type: 'checkbox' | 'radio';
|
|
9
10
|
value: SelectionModalValue;
|
|
10
11
|
renderDisplayComponent: (openModal: () => void) => ReactNode;
|
|
11
|
-
listOptions: Omit<FlatListProps<SelectionItemData>, 'renderItem'
|
|
12
|
+
listOptions: Omit<FlatListProps<SelectionItemData>, 'renderItem'>;
|
|
13
|
+
customRenderItem?: (info: ListRenderItemInfo<SelectionItemData>, selected: boolean, onPress: (data: SelectionItemData) => void) => ReactNode;
|
|
12
14
|
maxSelectedItem?: number;
|
|
13
15
|
bottomSheetOpt: Omit<BottomSheetProps, 'visibility' | 'onDismiss'>;
|
|
14
16
|
saveButtonProps?: ButtonProps;
|
|
15
17
|
bottomActionContainerStyle?: ViewStyle;
|
|
16
18
|
onSaveButtonPress: (data: SelectionModalValue) => void;
|
|
17
19
|
renderCutomBottomAction?: (handleOnSaveButtonPress: (data: SelectionModalValue) => void, closeModal?: () => void) => ReactNode;
|
|
20
|
+
withSearch?: boolean;
|
|
21
|
+
searchComponentProps?: SearchInputProps;
|
|
18
22
|
};
|
|
19
23
|
export declare type SelectionItemData = {
|
|
20
24
|
value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-modal.type.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"selection-modal.type.d.ts","sourceRoot":"","sources":["../../../../src/components/selection-modal/selection-modal.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,oBAAY,mBAAmB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,oBAAY,mBAAmB,GAAG;IAChC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAE3B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAE7D,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;IAClE,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAC3C,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,KACvC,SAAS,CAAC;IAEf,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;IAEnE,eAAe,CAAC,EAAE,WAAW,CAAC;IAE9B,0BAA0B,CAAC,EAAE,SAAS,CAAC;IAEvC,iBAAiB,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAEvD,uBAAuB,CAAC,EAAE,CACxB,uBAAuB,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,EAC5D,UAAU,CAAC,EAAE,MAAM,IAAI,KACpB,SAAS,CAAC;IAEf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzC,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebounce.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDebounce.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,sCAA8B,MAY3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyboardHeight.d.ts","sourceRoot":"","sources":["../../../src/hooks/useKeyboardHeight.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,cA4B7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@ import Modal from 'react-native-modal';
|
|
|
10
10
|
|
|
11
11
|
import { getStyle } from './BottomSheet.style';
|
|
12
12
|
import { Typography } from '../typography/typography.component';
|
|
13
|
+
import { useKeyboardHeight } from '../../hooks';
|
|
13
14
|
|
|
14
15
|
import type { BottomSheetProps } from './BottomSheet.type';
|
|
15
16
|
|
|
@@ -46,6 +47,8 @@ const BottomSheet = React.forwardRef<BottomSheetRefHandle, BottomSheetProps>(
|
|
|
46
47
|
|
|
47
48
|
const computedStyle = getStyle();
|
|
48
49
|
|
|
50
|
+
const keyboardHeight = useKeyboardHeight();
|
|
51
|
+
|
|
49
52
|
const [visibility, setVisibility] = React.useState(false);
|
|
50
53
|
const panY = React.useRef(new Animated.Value(deviceWindow.height)).current;
|
|
51
54
|
|
|
@@ -195,7 +198,7 @@ const BottomSheet = React.forwardRef<BottomSheetRefHandle, BottomSheetProps>(
|
|
|
195
198
|
style={[
|
|
196
199
|
computedStyle.container,
|
|
197
200
|
{
|
|
198
|
-
maxHeight: deviceWindow.height * maxSheetHeight,
|
|
201
|
+
maxHeight: deviceWindow.height * maxSheetHeight - keyboardHeight,
|
|
199
202
|
transform: [{ translateY: translateY }],
|
|
200
203
|
},
|
|
201
204
|
]}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import React, { ElementRef, useRef, useState } from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import React, { ElementRef, useMemo, useRef, useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
FlatList,
|
|
4
|
+
ListRenderItem,
|
|
5
|
+
ListRenderItemInfo,
|
|
6
|
+
View,
|
|
7
|
+
} from 'react-native';
|
|
3
8
|
|
|
4
9
|
import {
|
|
5
10
|
SelectionItemData,
|
|
@@ -13,46 +18,46 @@ import { BottomSheet } from '../BottomSheet/BottomSheet.component';
|
|
|
13
18
|
import { Button } from '../button/button.component';
|
|
14
19
|
import { Checkbox } from '../Checkbox/Checkbox.component';
|
|
15
20
|
import { RadioButton } from '../RadioButton/RadioButton.component';
|
|
21
|
+
import { SearchInput } from '../search-input/search-input.component';
|
|
16
22
|
import { IconArrowLeft } from '../../icons';
|
|
23
|
+
import { useDebouncedValue } from '../../hooks';
|
|
17
24
|
|
|
18
25
|
type BottomSheetHandler = ElementRef<typeof BottomSheet>;
|
|
19
26
|
export function SelectionModal(props: SelectionModalProps) {
|
|
20
27
|
const {
|
|
21
28
|
type = 'radio',
|
|
22
|
-
|
|
29
|
+
value = [],
|
|
23
30
|
listOptions,
|
|
24
31
|
maxSelectedItem = -1,
|
|
25
32
|
bottomSheetOpt,
|
|
26
33
|
saveButtonProps,
|
|
27
34
|
bottomActionContainerStyle,
|
|
35
|
+
withSearch = false,
|
|
36
|
+
searchComponentProps,
|
|
28
37
|
onSaveButtonPress = () => {},
|
|
38
|
+
renderDisplayComponent,
|
|
29
39
|
renderCutomBottomAction,
|
|
30
|
-
|
|
40
|
+
customRenderItem,
|
|
31
41
|
} = props;
|
|
32
42
|
|
|
33
|
-
const { renderItem, ...listOptionsRest } = listOptions;
|
|
34
|
-
|
|
35
43
|
const ref = useRef<BottomSheetHandler>(null);
|
|
36
44
|
|
|
37
45
|
const computedStyles = getStyle();
|
|
38
46
|
|
|
39
47
|
const [selectedTemp, setSelectedTemp] = useState<SelectionModalValue>(value);
|
|
48
|
+
const [searchValue, setSearchValue] = useState('');
|
|
49
|
+
const searchValueDebounce = useDebouncedValue(searchValue);
|
|
40
50
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
);
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const renderActionList: FlatListProps<SelectionItemData>['renderItem'] = ({
|
|
49
|
-
item,
|
|
50
|
-
index,
|
|
51
|
-
}) => {
|
|
51
|
+
const { data, ...listOptionsRest } = listOptions;
|
|
52
|
+
const renderActionList = (info: ListRenderItemInfo<SelectionItemData>) => {
|
|
53
|
+
const { item, index } = info;
|
|
52
54
|
const { value: valueItem, title, disabled, ...itemRest } = item;
|
|
53
55
|
|
|
54
56
|
const isSelected = !!selectedTemp?.find((i) => i.value === valueItem);
|
|
55
57
|
|
|
58
|
+
if (customRenderItem)
|
|
59
|
+
return customRenderItem(info, isSelected, handleOnItemPress);
|
|
60
|
+
|
|
56
61
|
return (
|
|
57
62
|
<ActionList
|
|
58
63
|
title={title}
|
|
@@ -71,6 +76,14 @@ export function SelectionModal(props: SelectionModalProps) {
|
|
|
71
76
|
);
|
|
72
77
|
};
|
|
73
78
|
|
|
79
|
+
const filterDataDebounced = useMemo(() => {
|
|
80
|
+
if (searchValueDebounce === '') {
|
|
81
|
+
return data;
|
|
82
|
+
} else {
|
|
83
|
+
return data?.filter((item) => item.title?.includes(searchValueDebounce));
|
|
84
|
+
}
|
|
85
|
+
}, [data, searchValueDebounce]);
|
|
86
|
+
|
|
74
87
|
const handleOnItemPress = (item: SelectionItemData) => {
|
|
75
88
|
if (type === 'radio') {
|
|
76
89
|
setSelectedTemp([item]);
|
|
@@ -106,17 +119,35 @@ export function SelectionModal(props: SelectionModalProps) {
|
|
|
106
119
|
ref.current?.close();
|
|
107
120
|
};
|
|
108
121
|
|
|
122
|
+
if (!renderDisplayComponent) {
|
|
123
|
+
console.warn(
|
|
124
|
+
'Please provide renderDisplayComponent props (SelectionModal - adiraku)'
|
|
125
|
+
);
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
|
|
109
129
|
return (
|
|
110
130
|
<>
|
|
111
131
|
{renderDisplayComponent?.(handleShowSheet)}
|
|
112
132
|
|
|
113
133
|
<BottomSheet
|
|
114
134
|
ref={ref}
|
|
115
|
-
dismissIcon={
|
|
135
|
+
dismissIcon={<IconArrowLeft />}
|
|
116
136
|
{...bottomSheetOpt}
|
|
117
137
|
>
|
|
138
|
+
{withSearch && (
|
|
139
|
+
<View style={computedStyles.searchContainer}>
|
|
140
|
+
<SearchInput
|
|
141
|
+
value={searchValue}
|
|
142
|
+
onChangeText={setSearchValue}
|
|
143
|
+
onTraillingIconPress={() => setSearchValue('')}
|
|
144
|
+
{...searchComponentProps}
|
|
145
|
+
/>
|
|
146
|
+
</View>
|
|
147
|
+
)}
|
|
118
148
|
<FlatList
|
|
119
|
-
|
|
149
|
+
data={filterDataDebounced}
|
|
150
|
+
renderItem={renderActionList as ListRenderItem<SelectionItemData>}
|
|
120
151
|
style={[
|
|
121
152
|
computedStyles.flatListContentContainer,
|
|
122
153
|
listOptions.contentContainerStyle,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { StyleSheet, ViewStyle } from 'react-native';
|
|
2
2
|
|
|
3
|
-
import { Spacing } from '../../themes';
|
|
3
|
+
import { Palettes, Spacing } from '../../themes';
|
|
4
4
|
|
|
5
5
|
interface ComputedStyleProps {
|
|
6
6
|
flatListContentContainer?: ViewStyle;
|
|
7
7
|
bottomActionContainer?: ViewStyle;
|
|
8
|
+
searchContainer?: ViewStyle;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export const getStyle = () => {
|
|
@@ -18,5 +19,11 @@ export const getStyle = () => {
|
|
|
18
19
|
backgroundColor: 'transparent',
|
|
19
20
|
};
|
|
20
21
|
|
|
22
|
+
computedStyle.searchContainer = {
|
|
23
|
+
padding: Spacing[16],
|
|
24
|
+
paddingTop: Spacing[8],
|
|
25
|
+
backgroundColor: Palettes.white[50],
|
|
26
|
+
};
|
|
27
|
+
|
|
21
28
|
return StyleSheet.create(computedStyle);
|
|
22
29
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { FlatListProps, ViewStyle } from 'react-native';
|
|
2
|
+
import { FlatListProps, ListRenderItemInfo, ViewStyle } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { ActionListProps } from '../ActionList/ActionList.type';
|
|
5
5
|
import { BottomSheetProps } from '../BottomSheet/BottomSheet.type';
|
|
6
6
|
import { ButtonProps } from '../button/button.type';
|
|
7
|
+
import { SearchInputProps } from '../search-input/search-input.type';
|
|
7
8
|
|
|
8
9
|
export type SelectionModalValue = FlatListProps<SelectionItemData>['data'];
|
|
9
10
|
export type SelectionModalProps = {
|
|
@@ -12,8 +13,12 @@ export type SelectionModalProps = {
|
|
|
12
13
|
value: SelectionModalValue;
|
|
13
14
|
renderDisplayComponent: (openModal: () => void) => ReactNode;
|
|
14
15
|
|
|
15
|
-
listOptions: Omit<FlatListProps<SelectionItemData>, 'renderItem'
|
|
16
|
-
|
|
16
|
+
listOptions: Omit<FlatListProps<SelectionItemData>, 'renderItem'>;
|
|
17
|
+
customRenderItem?: (
|
|
18
|
+
info: ListRenderItemInfo<SelectionItemData>,
|
|
19
|
+
selected: boolean,
|
|
20
|
+
onPress: (data: SelectionItemData) => void
|
|
21
|
+
) => ReactNode;
|
|
17
22
|
|
|
18
23
|
maxSelectedItem?: number;
|
|
19
24
|
|
|
@@ -29,6 +34,9 @@ export type SelectionModalProps = {
|
|
|
29
34
|
handleOnSaveButtonPress: (data: SelectionModalValue) => void,
|
|
30
35
|
closeModal?: () => void
|
|
31
36
|
) => ReactNode;
|
|
37
|
+
|
|
38
|
+
withSearch?: boolean;
|
|
39
|
+
searchComponentProps?: SearchInputProps;
|
|
32
40
|
};
|
|
33
41
|
|
|
34
42
|
export type SelectionItemData = {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
export const useDebouncedValue = (value = '', delay = 300): string => {
|
|
4
|
+
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
5
|
+
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const timer = setTimeout(() => {
|
|
8
|
+
setDebouncedValue(value);
|
|
9
|
+
}, delay);
|
|
10
|
+
|
|
11
|
+
return () => clearTimeout(timer);
|
|
12
|
+
}, [value, delay]);
|
|
13
|
+
|
|
14
|
+
return debouncedValue;
|
|
15
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { Keyboard, KeyboardEvent } from 'react-native';
|
|
3
|
+
|
|
4
|
+
export const useKeyboardHeight = () => {
|
|
5
|
+
const [keyboardHeight, setKeyboardHeight] = useState(0);
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
function onKeyboardDidShow(e: KeyboardEvent) {
|
|
9
|
+
// Remove type here if not using TypeScript
|
|
10
|
+
setKeyboardHeight(e.endCoordinates.height);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function onKeyboardDidHide() {
|
|
14
|
+
setKeyboardHeight(0);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const showSubscription = Keyboard.addListener(
|
|
18
|
+
'keyboardDidShow',
|
|
19
|
+
onKeyboardDidShow
|
|
20
|
+
);
|
|
21
|
+
const hideSubscription = Keyboard.addListener(
|
|
22
|
+
'keyboardDidHide',
|
|
23
|
+
onKeyboardDidHide
|
|
24
|
+
);
|
|
25
|
+
return () => {
|
|
26
|
+
showSubscription.remove();
|
|
27
|
+
hideSubscription.remove();
|
|
28
|
+
};
|
|
29
|
+
}, []);
|
|
30
|
+
|
|
31
|
+
return keyboardHeight;
|
|
32
|
+
};
|
package/src/index.tsx
CHANGED