react-native-input-select 1.1.5 → 1.1.7

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.
@@ -9,7 +9,7 @@ import DropdownSectionList from './components/Dropdown/DropdownSectionList';
9
9
  import CustomModal from './components/CustomModal';
10
10
  import { colors } from './styles/colors';
11
11
  import { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';
12
- import { extractPropertyFromArray, getMaxLengthOfSectionListProperty } from './utils';
12
+ import { extractPropertyFromArray } from './utils';
13
13
  export const DropdownSelect = _ref => {
14
14
  let {
15
15
  placeholder,
@@ -37,6 +37,7 @@ export const DropdownSelect = _ref => {
37
37
  modalBackgroundStyle,
38
38
  modalOptionsContainerStyle,
39
39
  searchInputStyle,
40
+ // kept for backwards compatibility
40
41
  primaryColor,
41
42
  disabled,
42
43
  checkboxSize,
@@ -53,6 +54,7 @@ export const DropdownSelect = _ref => {
53
54
  modalProps,
54
55
  hideModal = false,
55
56
  listControls,
57
+ searchControls,
56
58
  ...rest
57
59
  } = _ref;
58
60
  const [newOptions, setNewOptions] = useState([]);
@@ -65,10 +67,11 @@ export const DropdownSelect = _ref => {
65
67
  itemIndex: 0
66
68
  }); // for scrollToIndex in Sectionlist and Flatlist
67
69
 
70
+ if (!options || options.length === 0) {
71
+ throw new Error('Options array cannot be empty or undefined');
72
+ }
68
73
  useEffect(() => {
69
- if (options) {
70
- setNewOptions(options);
71
- }
74
+ setNewOptions(options);
72
75
  return () => {};
73
76
  }, [options]);
74
77
  useEffect(() => {
@@ -80,13 +83,19 @@ export const DropdownSelect = _ref => {
80
83
  * List type
81
84
  *==========================================*/
82
85
 
86
+ // check the structure of the new options array to determine if it is a section list or a
83
87
  const isSectionList = newOptions.some(item => item.title && item.data && Array.isArray(item.data));
84
88
  const ListTypeComponent = isSectionList ? DropdownSectionList : DropdownFlatList;
85
89
  const modifiedSectionData = extractPropertyFromArray(newOptions, 'data').flat();
90
+
91
+ /**
92
+ *`modifiedOptions` should only be used for computations newOptions remains the default array.
93
+ * At this point modifiedOptions now has the same structure for both `FlatList` and `SectionList`
94
+ */
86
95
  const modifiedOptions = isSectionList ? modifiedSectionData : newOptions;
87
96
  const optLabel = optionLabel || DEFAULT_OPTION_LABEL;
88
97
  const optValue = optionValue || DEFAULT_OPTION_VALUE;
89
- const optionsCopy = JSON.parse(JSON.stringify(options)); //copy of the original options array
98
+ const optionsCopy = JSON.parse(JSON.stringify(options)); // copy of the original options array
90
99
 
91
100
  /*===========================================
92
101
  * Selection handlers
@@ -94,11 +103,11 @@ export const DropdownSelect = _ref => {
94
103
  const handleSingleSelection = value => {
95
104
  if (selectedItem === value) {
96
105
  setSelectedItem(null);
97
- onValueChange(null); //send value to parent
106
+ onValueChange(null); // send value to parent
98
107
  } else {
99
108
  setSelectedItem(value);
100
- onValueChange(value); //send value to parent
101
- setOpen(false); //close modal upon selection
109
+ onValueChange(value); // send value to parent
110
+ setOpen(false); // close modal upon selection
102
111
  }
103
112
  };
104
113
 
@@ -111,23 +120,26 @@ export const DropdownSelect = _ref => {
111
120
  } else {
112
121
  selectedValues.push(value);
113
122
  }
114
- onValueChange(selectedValues); //send value to parent
123
+ onValueChange(selectedValues); // send value to parent
115
124
  return selectedValues;
116
125
  });
117
126
  };
127
+ const removeDisabledItems = items => {
128
+ return items.filter(item => !item.disabled);
129
+ };
118
130
  const handleSelectAll = () => {
119
131
  setSelectAll(prevVal => {
120
132
  const selectedValues = [];
121
133
 
122
- //don't select disabled items
123
- const filteredOptions = modifiedOptions.filter(item => !item.disabled);
134
+ // don't select disabled items
135
+ const filteredOptions = removeDisabledItems(isSectionList ? extractPropertyFromArray(optionsCopy, 'data').flat() : optionsCopy);
124
136
  if (!prevVal) {
125
137
  for (let i = 0; i < filteredOptions.length; i++) {
126
138
  selectedValues.push(filteredOptions[i][optValue]);
127
139
  }
128
140
  }
129
141
  setSelectedItems(selectedValues);
130
- onValueChange(selectedValues); //send value to parent
142
+ onValueChange(selectedValues); // send value to parent
131
143
  return !prevVal;
132
144
  });
133
145
  if (typeof (listControls === null || listControls === void 0 ? void 0 : listControls.selectAllCallback) === 'function' && !selectAll) {
@@ -143,7 +155,7 @@ export const DropdownSelect = _ref => {
143
155
  *==========================================*/
144
156
  const checkSelectAll = useCallback(selectedValues => {
145
157
  //if the list contains disabled values, those values will not be selected
146
- if (modifiedOptions.filter(item => !item.disabled).length === selectedValues.length) {
158
+ if (removeDisabledItems(modifiedOptions).length === selectedValues.length) {
147
159
  setSelectAll(true);
148
160
  } else {
149
161
  setSelectAll(false);
@@ -183,14 +195,14 @@ export const DropdownSelect = _ref => {
183
195
  let searchText = value.toString().toLocaleLowerCase().trim();
184
196
  const regexFilter = new RegExp(searchText, 'i');
185
197
 
186
- //Because Search mutates the initial state, we have to search with a copy of the original array
198
+ // Because the options array will be mutated after Search, we have to search with a copy of the original array
187
199
  const searchResults = isSectionList ? searchSectionList(optionsCopy, regexFilter) : searchFlatList(optionsCopy, regexFilter);
188
200
  setNewOptions(searchResults);
189
201
  };
190
202
  const searchFlatList = (flatList, regexFilter) => {
191
203
  const searchResults = flatList.filter(item => {
192
204
  if (item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 || item[optValue].toString().toLowerCase().search(regexFilter) !== -1) {
193
- return item;
205
+ return true;
194
206
  }
195
207
  return;
196
208
  });
@@ -228,8 +240,6 @@ export const DropdownSelect = _ref => {
228
240
  return () => {};
229
241
  }, [hideModal]);
230
242
  let primary = primaryColor || colors.gray;
231
- const sectionListMaxLength = getMaxLengthOfSectionListProperty(newOptions, 'data');
232
- const listIsEmpty = isSectionList ? sectionListMaxLength > 1 : newOptions.length > 1;
233
243
 
234
244
  /*===========================================
235
245
  * setIndexOfSelectedItem - For ScrollToIndex
@@ -279,18 +289,20 @@ export const DropdownSelect = _ref => {
279
289
  setIndexOfSelectedItem: setIndexOfSelectedItem
280
290
  }, rest)), /*#__PURE__*/React.createElement(CustomModal, {
281
291
  open: open,
282
- handleToggleModal: handleToggleModal,
283
292
  modalBackgroundStyle: modalBackgroundStyle,
284
293
  modalOptionsContainerStyle: modalOptionsContainerStyle,
285
- onRequestClose: () => {},
294
+ onRequestClose: () => handleToggleModal(),
286
295
  modalProps: modalProps
287
296
  }, /*#__PURE__*/React.createElement(ListTypeComponent, {
288
- ListHeaderComponent: /*#__PURE__*/React.createElement(React.Fragment, null, isSearchable && /*#__PURE__*/React.createElement(Input, {
297
+ removeClippedSubviews: false,
298
+ ListHeaderComponent: /*#__PURE__*/React.createElement(React.Fragment, null, isSearchable && /*#__PURE__*/React.createElement(Input, _extends({
289
299
  value: searchValue,
290
300
  onChangeText: text => onSearch(text),
291
- style: searchInputStyle,
292
- primaryColor: primary
293
- }), listHeaderComponent, isMultiple && listIsEmpty && /*#__PURE__*/React.createElement(View, {
301
+ style: (searchControls === null || searchControls === void 0 ? void 0 : searchControls.textInputStyle) || searchInputStyle,
302
+ primaryColor: primary,
303
+ textInputContainerStyle: searchControls === null || searchControls === void 0 ? void 0 : searchControls.textInputContainerStyle,
304
+ openModal: () => setOpen(true) // There seems to a known issue on expo web that closes the modal when the input is focused
305
+ }, searchControls === null || searchControls === void 0 ? void 0 : searchControls.textInputProps)), listHeaderComponent, isMultiple && modifiedOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
294
306
  style: styles.optionsContainerStyle
295
307
  }, /*#__PURE__*/React.createElement(TouchableOpacity, {
296
308
  onPress: () => {}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","extractPropertyFromArray","getMaxLengthOfSectionListProperty","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","optionsCopy","JSON","parse","stringify","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","handleSelectAll","filteredOptions","i","length","selectAllCallback","unselectAllCallback","checkSelectAll","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","handleToggleModal","sectionIndex","primary","gray","sectionListMaxLength","listIsEmpty","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Input from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownFlatList from './components/Dropdown/DropdownFlatList';\nimport DropdownSectionList from './components/Dropdown/DropdownSectionList';\nimport CustomModal from './components/CustomModal';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type {\n DropdownProps,\n TFlatList,\n TFlatListItem,\n TSectionList,\n TSectionListItem,\n} from './types/index.types';\nimport {\n extractPropertyFromArray,\n getMaxLengthOfSectionListProperty,\n} from './utils';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainerStyle,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<TFlatList | TSectionList>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); // for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); // for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n if (options) {\n setNewOptions(options);\n }\n return () => {};\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n\n return () => {};\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * List type\n *==========================================*/\n\n const isSectionList = newOptions.some(\n (item) => item.title && item.data && Array.isArray(item.data)\n );\n\n const ListTypeComponent = isSectionList\n ? DropdownSectionList\n : DropdownFlatList;\n const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n ).flat();\n const modifiedOptions = isSectionList ? modifiedSectionData : newOptions;\n\n const optLabel = optionLabel || DEFAULT_OPTION_LABEL;\n const optValue = optionValue || DEFAULT_OPTION_VALUE;\n const optionsCopy = JSON.parse(JSON.stringify(options)); //copy of the original options array\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: string | number) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); //send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: string[] | number[]) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n onValueChange(selectedValues); //send value to parent\n return selectedValues;\n });\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n //don't select disabled items\n const filteredOptions = modifiedOptions.filter(\n (item: TFlatListItem) => !item.disabled\n );\n\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n\n if (\n typeof listControls?.selectAllCallback === 'function' &&\n !selectAll\n ) {\n listControls.selectAllCallback();\n }\n\n if (\n typeof listControls?.unselectAllCallback === 'function' &&\n selectAll\n ) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n modifiedOptions.filter((item: TFlatListItem) => !item.disabled)\n .length === selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n\n selectedItems?.forEach((element: number | string) => {\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === element\n )?.[optLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === selectedItem\n );\n return selectedItemLabel?.[optLabel];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n //Because Search mutates the initial state, we have to search with a copy of the original array\n const searchResults = isSectionList\n ? searchSectionList(optionsCopy as TSectionList, regexFilter)\n : searchFlatList(optionsCopy as TFlatList, regexFilter);\n\n setNewOptions(searchResults);\n };\n\n const searchFlatList = (flatList: TFlatList, regexFilter: RegExp) => {\n const searchResults = flatList.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return item;\n }\n return;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n listItem.data = listItem.data.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return listItem.data.push(item);\n }\n return;\n });\n\n return listItem;\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n const sectionListMaxLength = getMaxLengthOfSectionListProperty(\n newOptions as TSectionList,\n 'data'\n );\n\n const listIsEmpty = isSectionList\n ? sectionListMaxLength > 1\n : newOptions.length > 1;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? optionsCopy.map((item: TSectionListItem, sectionIndex: number) => {\n item.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n })\n : optionsCopy?.find((item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n });\n };\n\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => {}}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {listHeaderComponent}\n {isMultiple && listIsEmpty && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n listComponentStyles={listComponentStyles}\n options={newOptions}\n optionLabel={optLabel}\n optionValue={optValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n listIndex={listIndex}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","extractPropertyFromArray","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","length","Error","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","optionsCopy","JSON","parse","stringify","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","i","selectAllCallback","unselectAllCallback","checkSelectAll","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","handleToggleModal","sectionIndex","primary","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","onRequestClose","removeClippedSubviews","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","openModal","textInputProps","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Input from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownFlatList from './components/Dropdown/DropdownFlatList';\nimport DropdownSectionList from './components/Dropdown/DropdownSectionList';\nimport CustomModal from './components/CustomModal';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type {\n DropdownProps,\n TFlatList,\n TFlatListItem,\n TSectionList,\n TSectionListItem,\n} from './types/index.types';\nimport { extractPropertyFromArray } from './utils';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainerStyle,\n searchInputStyle, // kept for backwards compatibility\n primaryColor,\n disabled,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n searchControls,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<TFlatList | TSectionList>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); // for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); // for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n if (!options || options.length === 0) {\n throw new Error('Options array cannot be empty or undefined');\n }\n\n useEffect(() => {\n setNewOptions(options);\n return () => {};\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n\n return () => {};\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * List type\n *==========================================*/\n\n // check the structure of the new options array to determine if it is a section list or a\n const isSectionList = newOptions.some(\n (item) => item.title && item.data && Array.isArray(item.data)\n );\n\n const ListTypeComponent = isSectionList\n ? DropdownSectionList\n : DropdownFlatList;\n const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n ).flat();\n\n /**\n *`modifiedOptions` should only be used for computations newOptions remains the default array.\n * At this point modifiedOptions now has the same structure for both `FlatList` and `SectionList`\n */\n const modifiedOptions = isSectionList ? modifiedSectionData : newOptions;\n\n const optLabel = optionLabel || DEFAULT_OPTION_LABEL;\n const optValue = optionValue || DEFAULT_OPTION_VALUE;\n const optionsCopy = JSON.parse(JSON.stringify(options)); // copy of the original options array\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: string | number) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); // send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); // send value to parent\n setOpen(false); // close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: string[] | number[]) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(optionsCopy, 'data').flat()\n : optionsCopy\n );\n\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); // send value to parent\n return !prevVal;\n });\n\n if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions).length === selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n\n selectedItems?.forEach((element: number | string) => {\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === element\n )?.[optLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === selectedItem\n );\n return selectedItemLabel?.[optLabel];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n // Because the options array will be mutated after Search, we have to search with a copy of the original array\n const searchResults = isSectionList\n ? searchSectionList(optionsCopy as TSectionList, regexFilter)\n : searchFlatList(optionsCopy as TFlatList, regexFilter);\n\n setNewOptions(searchResults);\n };\n\n const searchFlatList = (flatList: TFlatList, regexFilter: RegExp) => {\n const searchResults = flatList.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return true;\n }\n return;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n listItem.data = listItem.data.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return listItem.data.push(item);\n }\n return;\n });\n\n return listItem;\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? optionsCopy.map((item: TSectionListItem, sectionIndex: number) => {\n item.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n })\n : optionsCopy?.find((item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n });\n };\n\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => handleToggleModal()}\n modalProps={modalProps}\n >\n <ListTypeComponent\n removeClippedSubviews={false}\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n openModal={() => setOpen(true)} // There seems to a known issue on expo web that closes the modal when the input is focused\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {isMultiple && modifiedOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n listComponentStyles={listComponentStyles}\n options={newOptions}\n optionLabel={optLabel}\n optionValue={optValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n listIndex={listIndex}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n} from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: TFlatList | TSectionList;\n optionLabel?: string;\n optionValue?: string;\n onValueChange: Function;\n selectedValue?:\n | string\n | boolean\n | number\n | string[]\n | boolean[]\n | number[]\n | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n dropdownIcon?: React.ReactNode;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownIconStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: TextStyle;\n multipleSelectedItemStyle?: TextStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainerStyle?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n checkboxComponentStyles?: {\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n };\n checkboxComponent?: React.ReactNode;\n placeholderStyle?: TextStyle;\n listHeaderComponent?: React.ReactNode;\n listFooterComponent?: React.ReactNode;\n hideModal?: boolean;\n modalProps?: ModalProps;\n listComponentStyles?: {\n listEmptyComponentStyle?: TextStyle;\n itemSeparatorStyle?: ViewStyle;\n sectionHeaderStyle?: TextStyle;\n };\n listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n };\n};\n\nexport type TFlatList = TFlatListItem[];\nexport type TFlatListItem = {\n [key: string]: string | number | boolean;\n};\n\nexport type TSectionList = TSectionListItem[];\nexport type TSectionListItem = { title: string; data: TFlatList };\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n TextInputProps,\n} from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: TFlatList | TSectionList;\n optionLabel?: string;\n optionValue?: string;\n onValueChange: Function;\n selectedValue?:\n | string\n | boolean\n | number\n | string[]\n | boolean[]\n | number[]\n | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n dropdownIcon?: React.ReactNode;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownIconStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: TextStyle;\n multipleSelectedItemStyle?: TextStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainerStyle?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n checkboxComponentStyles?: {\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n };\n checkboxComponent?: React.ReactNode;\n placeholderStyle?: TextStyle;\n listHeaderComponent?: React.ReactNode;\n listFooterComponent?: React.ReactNode;\n hideModal?: boolean;\n modalProps?: ModalProps;\n listComponentStyles?: {\n listEmptyComponentStyle?: TextStyle;\n itemSeparatorStyle?: ViewStyle;\n sectionHeaderStyle?: TextStyle;\n };\n listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n };\n searchControls?: {\n textInputStyle?: ViewStyle | TextStyle;\n textInputContainerStyle?: ViewStyle;\n textInputProps?: TextInputProps;\n };\n};\n\nexport type TFlatList = TFlatListItem[];\nexport type TFlatListItem = {\n [key: string]: string | number | boolean;\n};\n\nexport type TSectionList = TSectionListItem[];\nexport type TSectionListItem = { title: string; data: TFlatList };\n"],"mappings":""}
@@ -1,18 +1,9 @@
1
1
  /**
2
2
  * Extract property from array
3
3
  */
4
+
4
5
  export const extractPropertyFromArray = (arr, property) => {
5
6
  let extractedValue = arr.map(item => item[property]);
6
7
  return extractedValue;
7
8
  };
8
- export const getMaxLengthOfSectionListProperty = (sectionList, property) => {
9
- let maxLength = 0;
10
- sectionList.forEach(obj => {
11
- var _obj$property;
12
- if (((_obj$property = obj[property]) === null || _obj$property === void 0 ? void 0 : _obj$property.length) > maxLength) {
13
- maxLength = obj.data.length;
14
- }
15
- });
16
- return maxLength;
17
- };
18
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["extractPropertyFromArray","arr","property","extractedValue","map","item","getMaxLengthOfSectionListProperty","sectionList","maxLength","forEach","obj","_obj$property","length","data"],"sources":["index.ts"],"sourcesContent":["import { TSectionList } from 'src/types/index.types';\n\n/**\n * Extract property from array\n */\nexport const extractPropertyFromArray = (arr: any, property: string) => {\n let extractedValue = arr.map((item: any) => item[property]);\n\n return extractedValue;\n};\n\nexport const getMaxLengthOfSectionListProperty = (\n sectionList: TSectionList,\n property: 'title' | 'data'\n) => {\n let maxLength = 0;\n\n sectionList.forEach((obj) => {\n if (obj[property]?.length > maxLength) {\n maxLength = obj.data.length;\n }\n });\n\n return maxLength;\n};\n"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAGA,CAACC,GAAQ,EAAEC,QAAgB,KAAK;EACtE,IAAIC,cAAc,GAAGF,GAAG,CAACG,GAAG,CAAEC,IAAS,IAAKA,IAAI,CAACH,QAAQ,CAAC,CAAC;EAE3D,OAAOC,cAAc;AACvB,CAAC;AAED,OAAO,MAAMG,iCAAiC,GAAGA,CAC/CC,WAAyB,EACzBL,QAA0B,KACvB;EACH,IAAIM,SAAS,GAAG,CAAC;EAEjBD,WAAW,CAACE,OAAO,CAAEC,GAAG,IAAK;IAAA,IAAAC,aAAA;IAC3B,IAAI,EAAAA,aAAA,GAAAD,GAAG,CAACR,QAAQ,CAAC,cAAAS,aAAA,uBAAbA,aAAA,CAAeC,MAAM,IAAGJ,SAAS,EAAE;MACrCA,SAAS,GAAGE,GAAG,CAACG,IAAI,CAACD,MAAM;IAC7B;EACF,CAAC,CAAC;EAEF,OAAOJ,SAAS;AAClB,CAAC"}
1
+ {"version":3,"names":["extractPropertyFromArray","arr","property","extractedValue","map","item"],"sources":["index.ts"],"sourcesContent":["/**\n * Extract property from array\n */\n\nexport const extractPropertyFromArray = (arr: any, property: string) => {\n let extractedValue = arr.map((item: any) => item[property]);\n\n return extractedValue;\n};\n"],"mappings":"AAAA;AACA;AACA;;AAEA,OAAO,MAAMA,wBAAwB,GAAGA,CAACC,GAAQ,EAAEC,QAAgB,KAAK;EACtE,IAAIC,cAAc,GAAGF,GAAG,CAACG,GAAG,CAAEC,IAAS,IAAKA,IAAI,CAACH,QAAQ,CAAC,CAAC;EAE3D,OAAOC,cAAc;AACvB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- declare const CustomModal: ({ open, handleToggleModal, onRequestClose, modalBackgroundStyle, modalOptionsContainerStyle, modalProps, children, }: any) => JSX.Element;
2
+ declare const CustomModal: ({ open, onRequestClose, modalBackgroundStyle, modalOptionsContainerStyle, modalProps, children, }: any) => JSX.Element;
3
3
  export default CustomModal;
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- export declare const Input: ({ placeholder, value, onChangeText, style, primaryColor, ...rest }: any) => JSX.Element;
2
+ export declare const Input: ({ placeholder, value, onChangeText, style, primaryColor, textInputContainerStyle, openModal, ...rest }: any) => JSX.Element;
3
3
  export default Input;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { ViewStyle, ColorValue, TextStyle, ModalProps } from 'react-native';
2
+ import type { ViewStyle, ColorValue, TextStyle, ModalProps, TextInputProps } from 'react-native';
3
3
  export type DropdownProps = {
4
4
  placeholder?: string;
5
5
  label?: string;
@@ -52,6 +52,11 @@ export type DropdownProps = {
52
52
  selectAllCallback?: () => void;
53
53
  unselectAllCallback?: () => void;
54
54
  };
55
+ searchControls?: {
56
+ textInputStyle?: ViewStyle | TextStyle;
57
+ textInputContainerStyle?: ViewStyle;
58
+ textInputProps?: TextInputProps;
59
+ };
55
60
  };
56
61
  export type TFlatList = TFlatListItem[];
57
62
  export type TFlatListItem = {
@@ -1,6 +1,4 @@
1
- import { TSectionList } from 'src/types/index.types';
2
1
  /**
3
2
  * Extract property from array
4
3
  */
5
4
  export declare const extractPropertyFromArray: (arr: any, property: string) => any;
6
- export declare const getMaxLengthOfSectionListProperty: (sectionList: TSectionList, property: 'title' | 'data') => number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-input-select",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "A customizable dropdown selection package for react-native for android and iOS with multiple select and search capabilities.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -9,7 +9,6 @@ import { colors } from '../../styles/colors';
9
9
 
10
10
  const CustomModal = ({
11
11
  open,
12
- handleToggleModal,
13
12
  onRequestClose,
14
13
  modalBackgroundStyle,
15
14
  modalOptionsContainerStyle,
@@ -25,7 +24,7 @@ const CustomModal = ({
25
24
  {...modalProps}
26
25
  >
27
26
  <TouchableOpacity
28
- onPress={() => handleToggleModal()}
27
+ onPress={() => onRequestClose()}
29
28
  style={[
30
29
  styles.modalContainer,
31
30
  styles.modalBackgroundStyle,
@@ -8,12 +8,14 @@ export const Input = ({
8
8
  onChangeText,
9
9
  style,
10
10
  primaryColor,
11
+ textInputContainerStyle,
12
+ openModal,
11
13
  ...rest
12
14
  }: any) => {
13
15
  const [isFocused, setFocus] = useState(false);
14
16
 
15
17
  return (
16
- <View style={styles.container}>
18
+ <View style={[styles.container, textInputContainerStyle]}>
17
19
  <TextInput
18
20
  placeholder={placeholder}
19
21
  style={[
@@ -26,7 +28,10 @@ export const Input = ({
26
28
  isFocused && { borderColor: primaryColor },
27
29
  style,
28
30
  ]}
29
- onFocus={() => setFocus(true)}
31
+ onFocus={() => {
32
+ setFocus(true);
33
+ openModal();
34
+ }}
30
35
  onBlur={() => setFocus(false)}
31
36
  value={value}
32
37
  onChangeText={onChangeText}