react-native-input-select 2.1.4 → 2.1.6

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.
Files changed (89) hide show
  1. package/README.md +14 -0
  2. package/lib/commonjs/asset/close.png +0 -0
  3. package/lib/commonjs/components/CheckBox/index.js +11 -8
  4. package/lib/commonjs/components/CheckBox/index.js.map +1 -1
  5. package/lib/commonjs/components/Dropdown/Dropdown.js +26 -11
  6. package/lib/commonjs/components/Dropdown/Dropdown.js.map +1 -1
  7. package/lib/commonjs/components/Dropdown/DropdownSelectedItem.js +53 -0
  8. package/lib/commonjs/components/Dropdown/DropdownSelectedItem.js.map +1 -0
  9. package/lib/commonjs/components/Dropdown/{DropdownSelectedItemsView.js → DropdownSelectedItemsContainer.js} +41 -46
  10. package/lib/commonjs/components/Dropdown/DropdownSelectedItemsContainer.js.map +1 -0
  11. package/lib/commonjs/components/List/DropdownFlatList.js +1 -1
  12. package/lib/commonjs/components/List/DropdownListItem.js.map +1 -0
  13. package/lib/commonjs/components/List/DropdownSectionList.js +1 -1
  14. package/lib/commonjs/hooks/use-selection-handler.js +13 -7
  15. package/lib/commonjs/hooks/use-selection-handler.js.map +1 -1
  16. package/lib/commonjs/index.js +13 -6
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/styles/colors.js.map +1 -1
  19. package/lib/commonjs/styles/input.js.map +1 -1
  20. package/lib/commonjs/utils/index.js +30 -13
  21. package/lib/commonjs/utils/index.js.map +1 -1
  22. package/lib/module/asset/close.png +0 -0
  23. package/lib/module/components/CheckBox/index.js +11 -8
  24. package/lib/module/components/CheckBox/index.js.map +1 -1
  25. package/lib/module/components/Dropdown/Dropdown.js +27 -12
  26. package/lib/module/components/Dropdown/Dropdown.js.map +1 -1
  27. package/lib/module/components/Dropdown/DropdownSelectedItem.js +46 -0
  28. package/lib/module/components/Dropdown/DropdownSelectedItem.js.map +1 -0
  29. package/lib/module/components/Dropdown/{DropdownSelectedItemsView.js → DropdownSelectedItemsContainer.js} +42 -47
  30. package/lib/module/components/Dropdown/DropdownSelectedItemsContainer.js.map +1 -0
  31. package/lib/module/components/List/DropdownFlatList.js +1 -1
  32. package/lib/module/components/List/DropdownFlatList.js.map +1 -1
  33. package/lib/module/components/List/DropdownListItem.js.map +1 -0
  34. package/lib/module/components/List/DropdownSectionList.js +1 -1
  35. package/lib/module/components/List/DropdownSectionList.js.map +1 -1
  36. package/lib/module/hooks/use-selection-handler.js +13 -7
  37. package/lib/module/hooks/use-selection-handler.js.map +1 -1
  38. package/lib/module/index.js +14 -7
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/styles/colors.js.map +1 -1
  41. package/lib/module/styles/input.js.map +1 -1
  42. package/lib/module/utils/index.js +27 -11
  43. package/lib/module/utils/index.js.map +1 -1
  44. package/lib/typescript/src/components/CheckBox/index.d.ts.map +1 -1
  45. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +3 -1
  46. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts.map +1 -1
  47. package/lib/typescript/src/components/Dropdown/DropdownSelectedItem.d.ts +16 -0
  48. package/lib/typescript/src/components/Dropdown/DropdownSelectedItem.d.ts.map +1 -0
  49. package/lib/typescript/src/components/Dropdown/DropdownSelectedItemsContainer.d.ts +16 -0
  50. package/lib/typescript/src/components/Dropdown/DropdownSelectedItemsContainer.d.ts.map +1 -0
  51. package/lib/typescript/src/components/List/DropdownListItem.d.ts.map +1 -0
  52. package/lib/typescript/src/hooks/use-selection-handler.d.ts +2 -1
  53. package/lib/typescript/src/hooks/use-selection-handler.d.ts.map +1 -1
  54. package/lib/typescript/src/index.d.ts +1 -0
  55. package/lib/typescript/src/index.d.ts.map +1 -1
  56. package/lib/typescript/src/styles/colors.d.ts +10 -1
  57. package/lib/typescript/src/styles/colors.d.ts.map +1 -1
  58. package/lib/typescript/src/styles/input.d.ts +23 -1
  59. package/lib/typescript/src/styles/input.d.ts.map +1 -1
  60. package/lib/typescript/src/types/index.types.d.ts +13 -6
  61. package/lib/typescript/src/types/index.types.d.ts.map +1 -1
  62. package/lib/typescript/src/utils/index.d.ts +5 -4
  63. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  64. package/package.json +5 -5
  65. package/src/asset/close.png +0 -0
  66. package/src/components/CheckBox/index.tsx +16 -11
  67. package/src/components/Dropdown/Dropdown.tsx +29 -10
  68. package/src/components/Dropdown/DropdownSelectedItem.tsx +78 -0
  69. package/src/components/Dropdown/DropdownSelectedItemsContainer.tsx +164 -0
  70. package/src/components/List/DropdownFlatList.tsx +1 -1
  71. package/src/components/List/DropdownSectionList.tsx +1 -1
  72. package/src/hooks/use-selection-handler.ts +20 -7
  73. package/src/index.tsx +12 -12
  74. package/src/styles/colors.ts +1 -1
  75. package/src/styles/input.ts +1 -1
  76. package/src/types/index.types.ts +14 -6
  77. package/src/utils/index.ts +55 -23
  78. package/lib/commonjs/components/Dropdown/DropdownListItem.js.map +0 -1
  79. package/lib/commonjs/components/Dropdown/DropdownSelectedItemsView.js.map +0 -1
  80. package/lib/module/components/Dropdown/DropdownListItem.js.map +0 -1
  81. package/lib/module/components/Dropdown/DropdownSelectedItemsView.js.map +0 -1
  82. package/lib/typescript/src/components/Dropdown/DropdownListItem.d.ts.map +0 -1
  83. package/lib/typescript/src/components/Dropdown/DropdownSelectedItemsView.d.ts +0 -4
  84. package/lib/typescript/src/components/Dropdown/DropdownSelectedItemsView.d.ts.map +0 -1
  85. package/src/components/Dropdown/DropdownSelectedItemsView.tsx +0 -134
  86. /package/lib/commonjs/components/{Dropdown → List}/DropdownListItem.js +0 -0
  87. /package/lib/module/components/{Dropdown → List}/DropdownListItem.js +0 -0
  88. /package/lib/typescript/src/components/{Dropdown → List}/DropdownListItem.d.ts +0 -0
  89. /package/src/components/{Dropdown → List}/DropdownListItem.tsx +0 -0
package/README.md CHANGED
@@ -161,6 +161,18 @@ export default function App() {
161
161
  unselectAllCallback: () => Alert.alert('You removed everything'),
162
162
  emptyListMessage: 'No record found',
163
163
  }}
164
+ selectedItemsControls={{
165
+ removeItemIcon: (
166
+ <Image
167
+ source={{
168
+ uri: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA',
169
+ }}
170
+ style={{ tintColor: 'white', height: 12, width: 12 }}
171
+ />
172
+ ),
173
+ onRemoveItem: () => Alert.alert('Item was removed'),
174
+ showRemoveIcon: true,
175
+ }}
164
176
  />
165
177
  );
166
178
  }
@@ -277,7 +289,9 @@ For more examples visit our [wiki page](https://github.com/azeezat/react-native-
277
289
  | listControls | `Object` | `{ selectAllText: 'Choose all', unselectAllText: 'Remove all', selectAllCallback: () => {}, unselectAllCallback: () => {}, hideSelectAll: boolean, emptyListMessage: 'No record found', keyboardShouldPersistTaps: "always" }` |
278
290
  | searchControls | `Object` | `{ textInputStyle: ViewStyle \| TextStyle, textInputContainerStyle: ViewStyle, textInputProps: TextInputProps, searchCallback:(value)=>{}}` |
279
291
  | modalControls | `Object` | `{ modalBackgroundStyle: ViewStyle, modalOptionsContainerStyle: ViewStyle, modalProps: ModalProps}` |
292
+ | minSelectableItems | `number` | 3 |
280
293
  | maxSelectableItems | `number` | 5 |
294
+ | selectedItemsControls | `Object` | `{ removeItemIcon: ReactNode, onRemoveItem: ()=>{}, showRemoveIcon: boolean}` |
281
295
  | ref | `useRef<DropdownSelectHandle \| null>(null)` | Use this to open or close the modal as needed e.g dropdownRef.current?.open() or dropdownRef.current?.close() |
282
296
 
283
297
  ## Contributing
Binary file
@@ -22,14 +22,18 @@ const CheckBox = ({
22
22
  checkboxComponent,
23
23
  checkboxDisabledStyle,
24
24
  checkboxStyle,
25
- checkboxUnselectedColor,
25
+ checkboxUnselectedColor = 'white',
26
26
  checkboxLabelStyle
27
27
  } = checkboxControls ?? {};
28
28
  const fillColor = {
29
- backgroundColor: disabled ? checkboxDisabledStyle?.backgroundColor || _colors.colors.disabled : value ? checkboxStyle?.backgroundColor || primaryColor : checkboxUnselectedColor || 'white',
29
+ backgroundColor: disabled ? checkboxDisabledStyle?.backgroundColor || _colors.colors.disabled : value ? checkboxStyle?.backgroundColor || primaryColor : checkboxUnselectedColor,
30
30
  borderColor: disabled ? checkboxDisabledStyle?.borderColor || _colors.colors.disabled : checkboxStyle?.borderColor || styles.checkbox.borderColor
31
31
  };
32
32
  label = typeof label === 'object' ? label : String(label);
33
+ const checkBoxDimensions = {
34
+ height: checkboxSize || _constants.CHECKBOX_SIZE,
35
+ width: checkboxSize || _constants.CHECKBOX_SIZE
36
+ };
33
37
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
34
38
  onPress: onChange ? () => onChange(!value) : null,
35
39
  style: [styles.checkboxContainer],
@@ -38,13 +42,12 @@ const CheckBox = ({
38
42
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
39
43
  style: [styles.checkbox, checkboxStyle, fillColor],
40
44
  "aria-checked": value
41
- }, checkboxComponent || /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
45
+ }, checkboxComponent || /*#__PURE__*/_react.default.createElement(_reactNative.View, {
46
+ style: checkBoxDimensions
47
+ }, value ? /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
42
48
  source: require('../../asset/check.png'),
43
- style: [{
44
- height: checkboxSize || _constants.CHECKBOX_SIZE,
45
- width: checkboxSize || _constants.CHECKBOX_SIZE
46
- }]
47
- })), label && label !== '' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
49
+ style: checkBoxDimensions
50
+ }) : null)), label && label !== '' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
48
51
  style: [checkboxLabelStyle, styles.labelStyle]
49
52
  }, label));
50
53
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_constants","e","__esModule","default","CheckBox","label","value","disabled","primaryColor","checkboxControls","onChange","checkboxSize","checkboxComponent","checkboxDisabledStyle","checkboxStyle","checkboxUnselectedColor","checkboxLabelStyle","fillColor","backgroundColor","colors","borderColor","styles","checkbox","String","createElement","Pressable","onPress","style","checkboxContainer","View","Image","source","height","CHECKBOX_SIZE","width","Text","labelStyle","StyleSheet","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","marginLeft","_default","exports"],"sourceRoot":"../../../../src","sources":["components/CheckBox/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_constants","e","__esModule","default","CheckBox","label","value","disabled","primaryColor","checkboxControls","onChange","checkboxSize","checkboxComponent","checkboxDisabledStyle","checkboxStyle","checkboxUnselectedColor","checkboxLabelStyle","fillColor","backgroundColor","colors","borderColor","styles","checkbox","String","checkBoxDimensions","height","CHECKBOX_SIZE","width","createElement","Pressable","onPress","style","checkboxContainer","View","Image","source","Text","labelStyle","StyleSheet","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","marginLeft","_default","exports"],"sourceRoot":"../../../../src","sources":["components/CheckBox/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _DropdownSelectedItemsView = _interopRequireDefault(require("./DropdownSelectedItemsView"));
9
+ var _DropdownSelectedItemsContainer = _interopRequireDefault(require("./DropdownSelectedItemsContainer"));
10
10
  var _colors = require("../../styles/colors");
11
11
  var _typography = require("../../styles/typography");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -16,12 +16,14 @@ const Dropdown = ({
16
16
  placeholder,
17
17
  helperText,
18
18
  error,
19
- labelsOfSelectedItems,
19
+ selectionData,
20
20
  openModal,
21
- closeModal,
22
21
  isMultiple,
23
22
  selectedItem,
24
23
  selectedItems,
24
+ optionLabel,
25
+ optionValue,
26
+ selectedItemsControls,
25
27
  dropdownIcon,
26
28
  labelStyle,
27
29
  dropdownStyle,
@@ -35,7 +37,8 @@ const Dropdown = ({
35
37
  dropdownHelperTextStyle,
36
38
  primaryColor,
37
39
  disabled,
38
- setIndexOfSelectedItem
40
+ setIndexOfSelectedItem,
41
+ handleMultipleSelections
39
42
  }) => {
40
43
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
41
44
  style: [styles.dropdownInputContainer, dropdownContainerStyle],
@@ -44,30 +47,37 @@ const Dropdown = ({
44
47
  testID: testID
45
48
  }, label && label !== '' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
46
49
  style: [styles.label, labelStyle]
47
- }, label), /*#__PURE__*/_react.default.createElement(_DropdownSelectedItemsView.default, {
50
+ }, label), /*#__PURE__*/_react.default.createElement(_DropdownSelectedItemsContainer.default, {
48
51
  placeholder: placeholder,
49
52
  error: error,
50
- labelsOfSelectedItems: labelsOfSelectedItems,
53
+ selectionData: selectionData,
51
54
  openModal: openModal,
52
- closeModal: closeModal,
53
55
  isMultiple: isMultiple,
54
56
  selectedItem: selectedItem,
55
57
  selectedItems: selectedItems,
56
- dropdownIcon: dropdownIcon,
58
+ optionLabel: optionLabel,
59
+ optionValue: optionValue,
57
60
  dropdownStyle: dropdownStyle,
58
- dropdownIconStyle: dropdownIconStyle,
59
61
  selectedItemStyle: selectedItemStyle,
60
62
  multipleSelectedItemStyle: multipleSelectedItemStyle,
61
63
  dropdownErrorStyle: dropdownErrorStyle,
62
64
  primaryColor: primaryColor,
63
65
  disabled: disabled,
64
66
  placeholderStyle: placeholderStyle,
65
- setIndexOfSelectedItem: setIndexOfSelectedItem
67
+ setIndexOfSelectedItem: setIndexOfSelectedItem,
68
+ handleMultipleSelections: handleMultipleSelections,
69
+ selectedItemsControls: selectedItemsControls
66
70
  }), error && error !== '' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
67
71
  style: [styles.error, dropdownErrorTextStyle]
68
72
  }, error), helperText && helperText !== '' && !error && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
69
73
  style: [styles.helper, dropdownHelperTextStyle]
70
- }, helperText));
74
+ }, helperText), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
75
+ style: [styles.iconStyle, dropdownIconStyle],
76
+ onPress: () => openModal(),
77
+ testID: "dropdown-trailing-icon"
78
+ }, dropdownIcon || /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
79
+ source: require('../../asset/arrow-down.png')
80
+ })));
71
81
  };
72
82
  const styles = _reactNative.StyleSheet.create({
73
83
  label: {
@@ -91,6 +101,11 @@ const styles = _reactNative.StyleSheet.create({
91
101
  },
92
102
  blackText: {
93
103
  color: _colors.colors.black
104
+ },
105
+ iconStyle: {
106
+ position: 'absolute',
107
+ right: 25,
108
+ top: 60
94
109
  }
95
110
  });
96
111
  var _default = exports.default = Dropdown;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownSelectedItemsView","_colors","_typography","e","__esModule","default","Dropdown","testID","label","placeholder","helperText","error","labelsOfSelectedItems","openModal","closeModal","isMultiple","selectedItem","selectedItems","dropdownIcon","labelStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","setIndexOfSelectedItem","createElement","View","style","styles","dropdownInputContainer","accessibilityRole","pointerEvents","Text","helper","StyleSheet","create","marginBottom","color","colors","gray","typography","caption","red","marginTop","primary","width","blackText","black","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Dropdown/Dropdown.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownSelectedItemsContainer","_colors","_typography","e","__esModule","default","Dropdown","testID","label","placeholder","helperText","error","selectionData","openModal","isMultiple","selectedItem","selectedItems","optionLabel","optionValue","selectedItemsControls","dropdownIcon","labelStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","setIndexOfSelectedItem","handleMultipleSelections","createElement","View","style","styles","dropdownInputContainer","accessibilityRole","pointerEvents","Text","helper","TouchableOpacity","iconStyle","onPress","Image","source","StyleSheet","create","marginBottom","color","colors","gray","typography","caption","red","marginTop","primary","width","blackText","black","position","right","top","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Dropdown/Dropdown.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _utils = require("../../utils");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ 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); }
12
+ const DropdownSelectedItem = ({
13
+ onPress,
14
+ style,
15
+ label,
16
+ removeItemIcon,
17
+ onRemoveItem,
18
+ showRemoveIcon,
19
+ closeIconStyles,
20
+ testId,
21
+ disabled,
22
+ ...rest
23
+ }) => {
24
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, _extends({
25
+ onPress: () => onPress()
26
+ }, rest, {
27
+ style: [styles.dropdownInputContent, ...(style ?? [])],
28
+ testID: `dropdown-selected-item-${testId}`
29
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
30
+ style: (0, _utils.extractTextStylesFromArray)(style)
31
+ }, label), showRemoveIcon && /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
32
+ onPress: disabled ? null : () => onRemoveItem?.(),
33
+ testID: `dropdown-selected-item-remove-icon-${testId}`
34
+ }, removeItemIcon || /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
35
+ source: require('../../asset/close.png'),
36
+ style: [styles.removeItemIcon, closeIconStyles]
37
+ })));
38
+ };
39
+ const styles = _reactNative.StyleSheet.create({
40
+ dropdownInputContent: {
41
+ display: 'flex',
42
+ justifyContent: 'center',
43
+ alignItems: 'center',
44
+ flexDirection: 'row',
45
+ gap: 8
46
+ },
47
+ removeItemIcon: {
48
+ height: 10,
49
+ width: 10
50
+ }
51
+ });
52
+ var _default = exports.default = DropdownSelectedItem;
53
+ //# sourceMappingURL=DropdownSelectedItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_utils","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","DropdownSelectedItem","onPress","style","label","removeItemIcon","onRemoveItem","showRemoveIcon","closeIconStyles","testId","disabled","rest","createElement","TouchableOpacity","styles","dropdownInputContent","testID","Text","extractTextStylesFromArray","Pressable","Image","source","StyleSheet","create","display","justifyContent","alignItems","flexDirection","gap","height","width","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Dropdown/DropdownSelectedItem.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,MAAA,GAAAF,OAAA;AAAyD,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAczD,MAAMO,oBAAoB,GAAGA,CAAC;EAC5BC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC,cAAc;EACdC,YAAY;EACZC,cAAc;EACdC,eAAe;EACfC,MAAM;EACNC,QAAQ;EACR,GAAGC;AACsB,CAAC,KAAK;EAC/B,oBACE9B,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAAC5B,YAAA,CAAA6B,gBAAgB,EAAAxB,QAAA;IACfa,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAAC;EAAE,GACrBS,IAAI;IACRR,KAAK,EAAE,CAACW,MAAM,CAACC,oBAAoB,EAAE,IAAIZ,KAAK,IAAI,EAAE,CAAC,CAAE;IACvDa,MAAM,EAAE,0BAA0BP,MAAM;EAAG,iBAE3C5B,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAAC5B,YAAA,CAAAiC,IAAI;IAACd,KAAK,EAAE,IAAAe,iCAA0B,EAACf,KAAK;EAAE,GAAEC,KAAY,CAAC,EAE7DG,cAAc,iBACb1B,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAAC5B,YAAA,CAAAmC,SAAS;IACRjB,OAAO,EAAEQ,QAAQ,GAAG,IAAI,GAAG,MAAMJ,YAAY,GAAG,CAAE;IAClDU,MAAM,EAAE,sCAAsCP,MAAM;EAAG,GAEtDJ,cAAc,iBACbxB,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAAC5B,YAAA,CAAAoC,KAAK;IACJC,MAAM,EAAEtC,OAAO,CAAC,uBAAuB,CAAE;IACzCoB,KAAK,EAAE,CAACW,MAAM,CAACT,cAAc,EAAEG,eAAe;EAAE,CACjD,CAEM,CAEG,CAAC;AAEvB,CAAC;AAED,MAAMM,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,oBAAoB,EAAE;IACpBS,OAAO,EAAE,MAAM;IACfC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE;EACP,CAAC;EACDvB,cAAc,EAAE;IACdwB,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAEYa,oBAAoB","ignoreList":[]}
@@ -8,26 +8,28 @@ var _react = _interopRequireDefault(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _colors = require("../../styles/colors");
10
10
  var _input = require("../../styles/input");
11
+ var _DropdownSelectedItem = _interopRequireDefault(require("./DropdownSelectedItem"));
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- 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); }
13
- const DropdownSelectedItemsView = ({
13
+ const DropdownSelectedItemsContainer = ({
14
14
  placeholder,
15
15
  error,
16
- labelsOfSelectedItems,
16
+ selectionData = [],
17
17
  openModal,
18
18
  isMultiple,
19
19
  selectedItem,
20
20
  selectedItems,
21
- dropdownIcon,
21
+ optionLabel,
22
+ optionValue,
22
23
  dropdownStyle,
23
- dropdownIconStyle,
24
- selectedItemStyle,
25
- placeholderStyle,
26
- multipleSelectedItemStyle,
24
+ placeholderStyle = {},
25
+ selectedItemStyle = {},
26
+ multipleSelectedItemStyle = {},
27
27
  dropdownErrorStyle,
28
28
  primaryColor,
29
- disabled,
30
- setIndexOfSelectedItem
29
+ disabled = false,
30
+ setIndexOfSelectedItem,
31
+ selectedItemsControls,
32
+ handleMultipleSelections
31
33
  }) => {
32
34
  const openActions = label => {
33
35
  openModal();
@@ -59,48 +61,41 @@ const DropdownSelectedItemsView = ({
59
61
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
60
62
  style: styles.selectedItemsContainer,
61
63
  onStartShouldSetResponder: () => true
62
- }, isMultiple ? labelsOfSelectedItems?.map((label, i) => /*#__PURE__*/_react.default.createElement(DropdownContent, {
63
- onPress: () => openActions(label),
64
- key: `react-native-input-select-list-item-${Math.random()}-${i}`,
65
- style: [styles.selectedItems, {
66
- backgroundColor: primaryColor
67
- }, multipleSelectedItemStyle],
68
- label: label,
69
- disabled: disabled
70
- })) : /*#__PURE__*/_react.default.createElement(DropdownContent, {
71
- onPress: () => openActions(labelsOfSelectedItems),
64
+ }, isMultiple ? selectionData?.map((data, i) => {
65
+ const label = data[optionLabel];
66
+ const value = data[optionValue];
67
+ return /*#__PURE__*/_react.default.createElement(_DropdownSelectedItem.default, {
68
+ onPress: () => openActions(label),
69
+ key: `react-native-input-select-list-item-${Math.random()}-${i}`,
70
+ style: [styles.selectedItems, {
71
+ backgroundColor: primaryColor
72
+ }, multipleSelectedItemStyle],
73
+ closeIconStyles: {
74
+ tintColor: multipleSelectedItemStyle?.color || styles.selectedItems.color
75
+ },
76
+ label: label,
77
+ disabled: disabled || data.disabled,
78
+ showRemoveIcon: selectedItemsControls?.showRemoveIcon || true,
79
+ removeItemIcon: selectedItemsControls?.removeItemIcon,
80
+ onRemoveItem: () => {
81
+ handleMultipleSelections?.(value);
82
+ selectedItemsControls?.onRemoveItem?.(); //user defined control
83
+ },
84
+ testId: `${i}`
85
+ });
86
+ }) : /*#__PURE__*/_react.default.createElement(_DropdownSelectedItem.default, {
87
+ onPress: () => openActions(String(selectionData?.[optionLabel] ?? '')),
72
88
  style: [styles.blackText, selectedItemStyle],
73
- label: labelsOfSelectedItems,
89
+ label: selectionData[optionLabel],
74
90
  disabled: disabled
75
- }), selectedItem === '' && selectedItems?.length === 0 && /*#__PURE__*/_react.default.createElement(DropdownContent, {
91
+ }), selectedItem === '' && selectedItems?.length === 0 && /*#__PURE__*/_react.default.createElement(_DropdownSelectedItem.default, {
76
92
  onPress: () => openModal(),
77
93
  style: [styles.blackText, placeholderStyle],
78
94
  label: placeholder ?? 'Select an option',
79
95
  disabled: disabled
80
- }))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
81
- style: [styles.iconStyle, dropdownIconStyle]
82
- }, dropdownIcon || /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
83
- source: require('../../asset/arrow-down.png')
84
- })));
85
- };
86
- const DropdownContent = ({
87
- onPress,
88
- style,
89
- label,
90
- ...rest
91
- }) => {
92
- return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, _extends({
93
- onPress: () => onPress()
94
- }, rest), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
95
- style: style
96
- }, label));
96
+ }))));
97
97
  };
98
98
  const styles = _reactNative.StyleSheet.create({
99
- iconStyle: {
100
- position: 'absolute',
101
- right: 25,
102
- top: 25
103
- },
104
99
  selectedItemsContainer: {
105
100
  flexDirection: 'row',
106
101
  flexWrap: 'nowrap',
@@ -119,5 +114,5 @@ const styles = _reactNative.StyleSheet.create({
119
114
  color: _colors.colors.black
120
115
  }
121
116
  });
122
- var _default = exports.default = DropdownSelectedItemsView;
123
- //# sourceMappingURL=DropdownSelectedItemsView.js.map
117
+ var _default = exports.default = DropdownSelectedItemsContainer;
118
+ //# sourceMappingURL=DropdownSelectedItemsContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_input","_DropdownSelectedItem","e","__esModule","default","DropdownSelectedItemsContainer","placeholder","error","selectionData","openModal","isMultiple","selectedItem","selectedItems","optionLabel","optionValue","dropdownStyle","placeholderStyle","selectedItemStyle","multipleSelectedItemStyle","dropdownErrorStyle","primaryColor","disabled","setIndexOfSelectedItem","selectedItemsControls","handleMultipleSelections","openActions","label","createElement","Pressable","onPress","style","pressed","inputStyles","inputFocusState","borderColor","input","inputFocusErrorState","testID","ScrollView","horizontal","alwaysBounceHorizontal","showsHorizontalScrollIndicator","View","styles","selectedItemsContainer","onStartShouldSetResponder","map","data","i","value","key","Math","random","backgroundColor","closeIconStyles","tintColor","color","showRemoveIcon","removeItemIcon","onRemoveItem","testId","String","blackText","length","StyleSheet","create","flexDirection","flexWrap","alignItems","colors","white","paddingHorizontal","paddingVertical","borderRadius","primary","marginRight","overflow","black","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Dropdown/DropdownSelectedItemsContainer.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _DropdownListItem = _interopRequireDefault(require("../Dropdown/DropdownListItem"));
9
+ var _DropdownListItem = _interopRequireDefault(require("./DropdownListItem"));
10
10
  var _Others = require("../Others");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  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); }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CheckBox","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DropdownListItem","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxControls","createElement","TouchableOpacity","style","styles","listItemContainerStyle","onPress","disabled","value","includes","label","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","alignItems","_default","exports","memo"],"sourceRoot":"../../../../src","sources":["components/List/DropdownListItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _DropdownListItem = _interopRequireDefault(require("../Dropdown/DropdownListItem"));
9
+ var _DropdownListItem = _interopRequireDefault(require("./DropdownListItem"));
10
10
  var _Others = require("../Others");
11
11
  var _utils = require("../../utils");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -8,18 +8,22 @@ var _react = require("react");
8
8
  const useSelectionHandler = ({
9
9
  initialSelectedValue,
10
10
  isMultiple,
11
+ minSelectableItems = 0,
11
12
  maxSelectableItems,
12
13
  onValueChange,
13
14
  closeModal,
14
15
  autoCloseOnSelect
15
16
  }) => {
16
- // Initialize state based on whether it's multiple selection or not
17
+ // Initialize state based on whether it is multiple selection or not
17
18
  const [selectedItem, setSelectedItem] = (0, _react.useState)(isMultiple ? '' : initialSelectedValue);
18
19
  const [selectedItems, setSelectedItems] = (0, _react.useState)(isMultiple ? initialSelectedValue : []);
19
20
  const handleSingleSelection = (0, _react.useCallback)(value => {
20
21
  if (selectedItem === value) {
21
- setSelectedItem('');
22
- onValueChange(''); // Send null to parent when deselected
22
+ // Deselect item if minSelectableItems is not reached
23
+ if (minSelectableItems === 0) {
24
+ setSelectedItem('');
25
+ onValueChange(''); // Send null to parent when deselected
26
+ }
23
27
  } else {
24
28
  setSelectedItem(value);
25
29
  onValueChange(value); // Send selected value to parent
@@ -28,13 +32,15 @@ const useSelectionHandler = ({
28
32
  closeModal(); // close modal upon selection
29
33
  }
30
34
  }
31
- }, [selectedItem, onValueChange, autoCloseOnSelect, closeModal]);
35
+ }, [selectedItem, minSelectableItems, onValueChange, autoCloseOnSelect, closeModal]);
32
36
  const handleMultipleSelections = (0, _react.useCallback)(value => {
33
37
  setSelectedItems(prevVal => {
34
38
  let selectedValues = [...prevVal];
35
39
  if (selectedValues.includes(value)) {
36
- // Remove item
37
- selectedValues = selectedValues.filter(item => item !== value);
40
+ // Only remove item if it doesn't drop below the minimum required
41
+ if (selectedValues.length > minSelectableItems) {
42
+ selectedValues = selectedValues.filter(item => item !== value);
43
+ }
38
44
  } else {
39
45
  // Add item
40
46
  if (maxSelectableItems && selectedValues.length >= maxSelectableItems) {
@@ -45,7 +51,7 @@ const useSelectionHandler = ({
45
51
  onValueChange(selectedValues); // Send selected values to parent
46
52
  return selectedValues;
47
53
  });
48
- }, [maxSelectableItems, onValueChange]);
54
+ }, [minSelectableItems, maxSelectableItems, onValueChange]);
49
55
 
50
56
  // Return the relevant state and handlers
51
57
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useSelectionHandler","initialSelectedValue","isMultiple","maxSelectableItems","onValueChange","closeModal","autoCloseOnSelect","selectedItem","setSelectedItem","useState","selectedItems","setSelectedItems","handleSingleSelection","useCallback","value","handleMultipleSelections","prevVal","selectedValues","includes","filter","item","length","push","exports"],"sourceRoot":"../../../src","sources":["hooks/use-selection-handler.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAYO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,oBAAoB;EACpBC,UAAU;EACVC,kBAAkB;EAClBC,aAAa;EACbC,UAAU;EACVC;AACwB,CAAC,KAAK;EAC9B;EACA,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAC9CP,UAAU,GAAG,EAAE,GAAID,oBACrB,CAAC;EACD,MAAM,CAACS,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAChDP,UAAU,GAAID,oBAAoB,GAAuB,EAC3D,CAAC;EAED,MAAMW,qBAAqB,GAAG,IAAAC,kBAAW,EACtCC,KAAoB,IAAK;IACxB,IAAIP,YAAY,KAAKO,KAAK,EAAE;MAC1BN,eAAe,CAAC,EAAE,CAAC;MACnBJ,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,MAAM;MACLI,eAAe,CAACM,KAAK,CAAC;MACtBV,aAAa,CAACU,KAAK,CAAC,CAAC,CAAC;;MAEtB,IAAIR,iBAAiB,EAAE;QACrBD,UAAU,CAAC,CAAC,CAAC,CAAC;MAChB;IACF;EACF,CAAC,EACD,CAACE,YAAY,EAAEH,aAAa,EAAEE,iBAAiB,EAAED,UAAU,CAC7D,CAAC;EAED,MAAMU,wBAAwB,GAAG,IAAAF,kBAAW,EACzCC,KAAoB,IAAK;IACxBH,gBAAgB,CAAEK,OAAO,IAAK;MAC5B,IAAIC,cAAc,GAAG,CAAC,GAAGD,OAAO,CAAC;MAEjC,IAAIC,cAAc,CAACC,QAAQ,CAACJ,KAAK,CAAC,EAAE;QAClC;QACAG,cAAc,GAAGA,cAAc,CAACE,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKN,KAAK,CAAC;MAClE,CAAC,MAAM;QACL;QACA,IACEX,kBAAkB,IAClBc,cAAc,CAACI,MAAM,IAAIlB,kBAAkB,EAC3C;UACA,OAAOc,cAAc;QACvB;QACAA,cAAc,CAACK,IAAI,CAACR,KAAK,CAAC;MAC5B;MAEAV,aAAa,CAACa,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAOA,cAAc;IACvB,CAAC,CAAC;EACJ,CAAC,EACD,CAACd,kBAAkB,EAAEC,aAAa,CACpC,CAAC;;EAED;EACA,OAAO;IACLG,YAAY;IACZG,aAAa;IACbE,qBAAqB;IACrBG,wBAAwB;IACxBJ,gBAAgB;IAAE;IAClBH,eAAe,CAAE;EACnB,CAAC;AACH,CAAC;AAACe,OAAA,CAAAvB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","useSelectionHandler","initialSelectedValue","isMultiple","minSelectableItems","maxSelectableItems","onValueChange","closeModal","autoCloseOnSelect","selectedItem","setSelectedItem","useState","selectedItems","setSelectedItems","handleSingleSelection","useCallback","value","handleMultipleSelections","prevVal","selectedValues","includes","length","filter","item","push","exports"],"sourceRoot":"../../../src","sources":["hooks/use-selection-handler.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAaO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,oBAAoB;EACpBC,UAAU;EACVC,kBAAkB,GAAG,CAAC;EACtBC,kBAAkB;EAClBC,aAAa;EACbC,UAAU;EACVC;AACwB,CAAC,KAAK;EAC9B;EACA,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAC9CR,UAAU,GAAG,EAAE,GAAID,oBACrB,CAAC;EACD,MAAM,CAACU,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAChDR,UAAU,GAAID,oBAAoB,GAAuB,EAC3D,CAAC;EAED,MAAMY,qBAAqB,GAAG,IAAAC,kBAAW,EACtCC,KAAoB,IAAK;IACxB,IAAIP,YAAY,KAAKO,KAAK,EAAE;MAC1B;MACA,IAAIZ,kBAAkB,KAAK,CAAC,EAAE;QAC5BM,eAAe,CAAC,EAAE,CAAC;QACnBJ,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;MACrB;IACF,CAAC,MAAM;MACLI,eAAe,CAACM,KAAK,CAAC;MACtBV,aAAa,CAACU,KAAK,CAAC,CAAC,CAAC;;MAEtB,IAAIR,iBAAiB,EAAE;QACrBD,UAAU,CAAC,CAAC,CAAC,CAAC;MAChB;IACF;EACF,CAAC,EACD,CACEE,YAAY,EACZL,kBAAkB,EAClBE,aAAa,EACbE,iBAAiB,EACjBD,UAAU,CAEd,CAAC;EAED,MAAMU,wBAAwB,GAAG,IAAAF,kBAAW,EACzCC,KAAoB,IAAK;IACxBH,gBAAgB,CAAEK,OAAO,IAAK;MAC5B,IAAIC,cAAc,GAAG,CAAC,GAAGD,OAAO,CAAC;MAEjC,IAAIC,cAAc,CAACC,QAAQ,CAACJ,KAAK,CAAC,EAAE;QAClC;QACA,IAAIG,cAAc,CAACE,MAAM,GAAGjB,kBAAkB,EAAE;UAC9Ce,cAAc,GAAGA,cAAc,CAACG,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKP,KAAK,CAAC;QAClE;MACF,CAAC,MAAM;QACL;QACA,IACEX,kBAAkB,IAClBc,cAAc,CAACE,MAAM,IAAIhB,kBAAkB,EAC3C;UACA,OAAOc,cAAc;QACvB;QACAA,cAAc,CAACK,IAAI,CAACR,KAAK,CAAC;MAC5B;MAEAV,aAAa,CAACa,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAOA,cAAc;IACvB,CAAC,CAAC;EACJ,CAAC,EACD,CAACf,kBAAkB,EAAEC,kBAAkB,EAAEC,aAAa,CACxD,CAAC;;EAED;EACA,OAAO;IACLG,YAAY;IACZG,aAAa;IACbE,qBAAqB;IACrBG,wBAAwB;IACxBJ,gBAAgB;IAAE;IAClBH,eAAe,CAAE;EACnB,CAAC;AACH,CAAC;AAACe,OAAA,CAAAxB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -54,7 +54,9 @@ const DropdownSelect = exports.DropdownSelect = /*#__PURE__*/(0, _react.forwardR
54
54
  searchControls,
55
55
  modalControls,
56
56
  checkboxControls,
57
+ selectedItemsControls,
57
58
  autoCloseOnSelect = true,
59
+ minSelectableItems,
58
60
  maxSelectableItems,
59
61
  ...rest
60
62
  }, ref) => {
@@ -134,6 +136,7 @@ const DropdownSelect = exports.DropdownSelect = /*#__PURE__*/(0, _react.forwardR
134
136
  } = (0, _hooks.useSelectionHandler)({
135
137
  initialSelectedValue: selectedValue,
136
138
  isMultiple,
139
+ minSelectableItems,
137
140
  maxSelectableItems,
138
141
  onValueChange,
139
142
  closeModal: () => closeModal(),
@@ -141,8 +144,10 @@ const DropdownSelect = exports.DropdownSelect = /*#__PURE__*/(0, _react.forwardR
141
144
  });
142
145
  (0, _react.useEffect)(() => {
143
146
  isMultiple ? setSelectedItems(selectedValue) : setSelectedItem(selectedValue);
144
- return () => {};
145
- }, [selectedValue, setSelectedItems, setSelectedItem, isMultiple, onValueChange]);
147
+
148
+ // setSelectedItems already updates selectedValue, so omit it from dependency array to avoid infinite loop
149
+ // eslint-disable-next-line react-hooks/exhaustive-deps
150
+ }, [setSelectedItems, setSelectedItem, isMultiple, onValueChange]);
146
151
 
147
152
  /*===========================================
148
153
  * List type
@@ -177,18 +182,19 @@ const DropdownSelect = exports.DropdownSelect = /*#__PURE__*/(0, _react.forwardR
177
182
  placeholder: placeholder,
178
183
  helperText: helperText,
179
184
  error: error,
180
- labelsOfSelectedItems: (0, _utils.getLabelsOfSelectedItems)({
185
+ selectionData: (0, _utils.getSelectionsData)({
181
186
  isMultiple,
182
- optionLabel,
183
187
  optionValue,
184
188
  selectedItem,
185
189
  selectedItems,
186
190
  modifiedOptions
187
191
  }),
192
+ optionLabel: optionLabel,
193
+ optionValue: optionValue,
188
194
  selectedItem: selectedItem,
189
195
  selectedItems: selectedItems,
196
+ selectedItemsControls: selectedItemsControls,
190
197
  openModal: () => openModal(),
191
- closeModal: () => closeModal(),
192
198
  labelStyle: labelStyle,
193
199
  dropdownIcon: dropdownIcon,
194
200
  dropdownStyle: dropdownStyle,
@@ -203,7 +209,8 @@ const DropdownSelect = exports.DropdownSelect = /*#__PURE__*/(0, _react.forwardR
203
209
  primaryColor: primaryColor,
204
210
  disabled: disabled,
205
211
  placeholderStyle: placeholderStyle,
206
- setIndexOfSelectedItem: setIndexOfSelectedItem
212
+ setIndexOfSelectedItem: setIndexOfSelectedItem,
213
+ handleMultipleSelections: handleMultipleSelections
207
214
  }, rest)), /*#__PURE__*/_react.default.createElement(_CustomModal.default, {
208
215
  visible: isVisible,
209
216
  onRequestClose: () => closeModal(),