react-native-input-select 0.24.0 → 0.25.0

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 (32) hide show
  1. package/lib/commonjs/components/CheckBox/index.js +6 -2
  2. package/lib/commonjs/components/CheckBox/index.js.map +1 -1
  3. package/lib/commonjs/components/CheckBox/types.js.map +1 -1
  4. package/lib/commonjs/components/Dropdown/DropdownList.js +12 -3
  5. package/lib/commonjs/components/Dropdown/DropdownList.js.map +1 -1
  6. package/lib/commonjs/components/Dropdown/DropdownListItem.js +3 -2
  7. package/lib/commonjs/components/Dropdown/DropdownListItem.js.map +1 -1
  8. package/lib/commonjs/index.js +24 -21
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/styles/colors.js +2 -1
  11. package/lib/commonjs/styles/colors.js.map +1 -1
  12. package/lib/module/components/CheckBox/index.js +6 -2
  13. package/lib/module/components/CheckBox/index.js.map +1 -1
  14. package/lib/module/components/CheckBox/types.js.map +1 -1
  15. package/lib/module/components/Dropdown/DropdownList.js +13 -3
  16. package/lib/module/components/Dropdown/DropdownList.js.map +1 -1
  17. package/lib/module/components/Dropdown/DropdownListItem.js +3 -2
  18. package/lib/module/components/Dropdown/DropdownListItem.js.map +1 -1
  19. package/lib/module/index.js +24 -21
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/styles/colors.js +2 -1
  22. package/lib/module/styles/colors.js.map +1 -1
  23. package/lib/typescript/components/CheckBox/index.d.ts +1 -1
  24. package/lib/typescript/components/CheckBox/types.d.ts +1 -0
  25. package/lib/typescript/components/Dropdown/DropdownList.d.ts +1 -1
  26. package/package.json +1 -1
  27. package/src/components/CheckBox/index.tsx +8 -1
  28. package/src/components/CheckBox/types.ts +1 -0
  29. package/src/components/Dropdown/DropdownList.tsx +8 -0
  30. package/src/components/Dropdown/DropdownListItem.tsx +4 -1
  31. package/src/index.tsx +32 -27
  32. package/src/styles/colors.ts +1 -0
@@ -6,6 +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 _colors = require("../../styles/colors");
9
10
  var _constants = require("../../constants");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  /* eslint-disable react-native/no-inline-styles */
@@ -14,6 +15,7 @@ const CheckBox = _ref => {
14
15
  let {
15
16
  label,
16
17
  value,
18
+ disabled,
17
19
  primaryColor,
18
20
  checkboxSize,
19
21
  checkboxStyle,
@@ -21,11 +23,13 @@ const CheckBox = _ref => {
21
23
  onChange
22
24
  } = _ref;
23
25
  const fillColor = {
24
- backgroundColor: value ? (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white'
26
+ backgroundColor: disabled ? '#d3d3d3' : value ? (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white',
27
+ borderColor: disabled ? _colors.colors.disabled : styles.checkbox.borderColor
25
28
  };
26
29
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
27
30
  onPress: onChange ? () => onChange(!value) : () => {},
28
- style: [styles.checkboxContainer]
31
+ style: [styles.checkboxContainer],
32
+ disabled: disabled
29
33
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
30
34
  style: [styles.checkbox, checkboxStyle, fillColor]
31
35
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_constants","obj","__esModule","default","CheckBox","_ref","label","value","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","onChange","fillColor","backgroundColor","createElement","Pressable","onPress","style","styles","checkboxContainer","View","checkbox","Image","source","height","CHECKBOX_SIZE","width","Text","labelStyle","StyleSheet","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","borderColor","marginLeft","_default","exports"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Pressable, Text, StyleSheet, Image, View } from 'react-native';\nimport { CHECKBOX_SIZE } from '../../constants';\nimport type { CheckboxProps } from './types';\n\nconst CheckBox = ({\n label,\n value,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n onChange,\n}: CheckboxProps) => {\n const fillColor = {\n backgroundColor: value\n ? checkboxStyle?.backgroundColor || primaryColor || 'green'\n : 'white',\n };\n return (\n <Pressable\n onPress={onChange ? () => onChange(!value) : () => {}}\n style={[styles.checkboxContainer]}\n >\n <View style={[styles.checkbox, checkboxStyle, fillColor]}>\n <Image\n source={require('../../asset/check.png')}\n style={[\n {\n height: checkboxSize || CHECKBOX_SIZE,\n width: checkboxSize || CHECKBOX_SIZE,\n },\n ]}\n />\n </View>\n {label && (\n <Text style={[checkboxLabelStyle, styles.labelStyle]}>{label}</Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n checkboxContainer: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n checkbox: {\n padding: 4,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 4,\n borderColor: 'black',\n },\n labelStyle: { marginLeft: 10 },\n});\n\nexport default CheckBox;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAAgD,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAHhD;;AAMA,MAAMG,QAAQ,GAAGC,IAAA,IAQI;EAAA,IARH;IAChBC,KAAK;IACLC,KAAK;IACLC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC;EACa,CAAC,GAAAP,IAAA;EACd,MAAMQ,SAAS,GAAG;IAChBC,eAAe,EAAEP,KAAK,GAClB,CAAAG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,eAAe,KAAIN,YAAY,IAAI,OAAO,GACzD;EACN,CAAC;EACD,oBACEZ,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAAChB,YAAA,CAAAiB,SAAS;IACRC,OAAO,EAAEL,QAAQ,GAAG,MAAMA,QAAQ,CAAC,CAACL,KAAK,CAAC,GAAG,MAAM,CAAC,CAAE;IACtDW,KAAK,EAAE,CAACC,MAAM,CAACC,iBAAiB;EAAE,gBAElCxB,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAAChB,YAAA,CAAAsB,IAAI;IAACH,KAAK,EAAE,CAACC,MAAM,CAACG,QAAQ,EAAEZ,aAAa,EAAEG,SAAS;EAAE,gBACvDjB,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAAChB,YAAA,CAAAwB,KAAK;IACJC,MAAM,EAAE1B,OAAO,CAAC,uBAAuB,CAAE;IACzCoB,KAAK,EAAE,CACL;MACEO,MAAM,EAAEhB,YAAY,IAAIiB,wBAAa;MACrCC,KAAK,EAAElB,YAAY,IAAIiB;IACzB,CAAC;EACD,EACF,CACG,EACNpB,KAAK,iBACJV,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAAChB,YAAA,CAAA6B,IAAI;IAACV,KAAK,EAAE,CAACP,kBAAkB,EAAEQ,MAAM,CAACU,UAAU;EAAE,GAAEvB,KAAK,CAC7D,CACS;AAEhB,CAAC;AAED,MAAMa,MAAM,GAAGW,uBAAU,CAACC,MAAM,CAAC;EAC/BX,iBAAiB,EAAE;IACjBY,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,UAAU,EAAE;EACd,CAAC;EACDZ,QAAQ,EAAE;IACRa,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAE;EACf,CAAC;EACDV,UAAU,EAAE;IAAEW,UAAU,EAAE;EAAG;AAC/B,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYrC,QAAQ;AAAAsC,OAAA,CAAAvC,OAAA,GAAAsC,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_constants","obj","__esModule","default","CheckBox","_ref","label","value","disabled","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","onChange","fillColor","backgroundColor","borderColor","colors","styles","checkbox","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"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Pressable, Text, StyleSheet, Image, View } from 'react-native';\nimport { colors } from '../../styles/colors';\nimport { CHECKBOX_SIZE } from '../../constants';\nimport type { CheckboxProps } from './types';\n\nconst CheckBox = ({\n label,\n value,\n disabled,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n onChange,\n}: CheckboxProps) => {\n const fillColor = {\n backgroundColor: disabled\n ? '#d3d3d3'\n : value\n ? checkboxStyle?.backgroundColor || primaryColor || 'green'\n : 'white',\n borderColor: disabled ? colors.disabled : styles.checkbox.borderColor,\n };\n\n return (\n <Pressable\n onPress={onChange ? () => onChange(!value) : () => {}}\n style={[styles.checkboxContainer]}\n disabled={disabled}\n >\n <View style={[styles.checkbox, checkboxStyle, fillColor]}>\n <Image\n source={require('../../asset/check.png')}\n style={[\n {\n height: checkboxSize || CHECKBOX_SIZE,\n width: checkboxSize || CHECKBOX_SIZE,\n },\n ]}\n />\n </View>\n {label && (\n <Text style={[checkboxLabelStyle, styles.labelStyle]}>{label}</Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n checkboxContainer: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n checkbox: {\n padding: 4,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 4,\n borderColor: 'black',\n },\n labelStyle: { marginLeft: 10 },\n});\n\nexport default CheckBox;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAgD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAJhD;;AAOA,MAAMG,QAAQ,GAAGC,IAAA,IASI;EAAA,IATH;IAChBC,KAAK;IACLC,KAAK;IACLC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC;EACa,CAAC,GAAAR,IAAA;EACd,MAAMS,SAAS,GAAG;IAChBC,eAAe,EAAEP,QAAQ,GACrB,SAAS,GACTD,KAAK,GACL,CAAAI,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,eAAe,KAAIN,YAAY,IAAI,OAAO,GACzD,OAAO;IACXO,WAAW,EAAER,QAAQ,GAAGS,cAAM,CAACT,QAAQ,GAAGU,MAAM,CAACC,QAAQ,CAACH;EAC5D,CAAC;EAED,oBACErB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,YAAA,CAAAuB,SAAS;IACRC,OAAO,EAAET,QAAQ,GAAG,MAAMA,QAAQ,CAAC,CAACN,KAAK,CAAC,GAAG,MAAM,CAAC,CAAE;IACtDgB,KAAK,EAAE,CAACL,MAAM,CAACM,iBAAiB,CAAE;IAClChB,QAAQ,EAAEA;EAAS,gBAEnBb,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,YAAA,CAAA2B,IAAI;IAACF,KAAK,EAAE,CAACL,MAAM,CAACC,QAAQ,EAAER,aAAa,EAAEG,SAAS;EAAE,gBACvDnB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,YAAA,CAAA4B,KAAK;IACJC,MAAM,EAAE9B,OAAO,CAAC,uBAAuB,CAAE;IACzC0B,KAAK,EAAE,CACL;MACEK,MAAM,EAAElB,YAAY,IAAImB,wBAAa;MACrCC,KAAK,EAAEpB,YAAY,IAAImB;IACzB,CAAC;EACD,EACF,CACG,EACNvB,KAAK,iBACJX,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,YAAA,CAAAiC,IAAI;IAACR,KAAK,EAAE,CAACX,kBAAkB,EAAEM,MAAM,CAACc,UAAU;EAAE,GAAE1B,KAAK,CAC7D,CACS;AAEhB,CAAC;AAED,MAAMY,MAAM,GAAGe,uBAAU,CAACC,MAAM,CAAC;EAC/BV,iBAAiB,EAAE;IACjBW,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,UAAU,EAAE;EACd,CAAC;EACDlB,QAAQ,EAAE;IACRmB,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,YAAY,EAAE,CAAC;IACfzB,WAAW,EAAE;EACf,CAAC;EACDgB,UAAU,EAAE;IAAEU,UAAU,EAAE;EAAG;AAC/B,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYvC,QAAQ;AAAAwC,OAAA,CAAAzC,OAAA,GAAAwC,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ColorValue, ViewStyle, TextStyle } from 'react-native';\n\nexport type CheckboxProps = {\n label?: string;\n value?: boolean;\n primaryColor?: ColorValue;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n onChange?: (value: boolean | string | number) => void;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ColorValue, ViewStyle, TextStyle } from 'react-native';\n\nexport type CheckboxProps = {\n label?: string;\n value?: boolean;\n disabled?: boolean;\n primaryColor?: ColorValue;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n onChange?: (value: boolean | string | number) => void;\n};\n"],"mappings":""}
@@ -9,12 +9,14 @@ var _reactNative = require("react-native");
9
9
  var _DropdownListItem = _interopRequireDefault(require("./DropdownListItem"));
10
10
  var _colors = require("../../styles/colors");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12
13
  const DropdownList = _ref => {
13
14
  let {
14
15
  options,
15
16
  optionLabel,
16
17
  optionValue,
17
18
  isMultiple,
19
+ isSearchable,
18
20
  selectedItems,
19
21
  selectedItem,
20
22
  handleMultipleSelections,
@@ -22,15 +24,19 @@ const DropdownList = _ref => {
22
24
  primaryColor,
23
25
  checkboxSize,
24
26
  checkboxStyle,
25
- checkboxLabelStyle
27
+ checkboxLabelStyle,
28
+ ...rest
26
29
  } = _ref;
27
- return /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
30
+ return /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, _extends({
28
31
  data: options,
29
32
  extraData: isMultiple ? selectedItems : selectedItem,
30
33
  initialNumToRender: 5,
31
34
  ListEmptyComponent: /*#__PURE__*/_react.default.createElement(_reactNative.View, {
32
35
  style: styles.emptyListStyle
33
36
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "No options available")),
37
+ contentContainerStyle: [isSearchable ? {
38
+ paddingTop: 0
39
+ } : styles.contentContainerStyle],
34
40
  ItemSeparatorComponent: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
35
41
  style: styles.itemSeparatorStyle
36
42
  }),
@@ -46,7 +52,7 @@ const DropdownList = _ref => {
46
52
  checkboxLabelStyle
47
53
  }),
48
54
  keyExtractor: (_item, index) => `Options${index}`
49
- });
55
+ }, rest));
50
56
  };
51
57
  const _renderItem = (_ref2, props) => {
52
58
  let {
@@ -75,6 +81,9 @@ const styles = _reactNative.StyleSheet.create({
75
81
  alignItems: 'center',
76
82
  width: '100%',
77
83
  marginVertical: 20
84
+ },
85
+ contentContainerStyle: {
86
+ paddingTop: 20
78
87
  }
79
88
  });
80
89
  var _default = DropdownList;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownListItem","_colors","obj","__esModule","default","DropdownList","_ref","options","optionLabel","optionValue","isMultiple","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","createElement","FlatList","data","extraData","initialNumToRender","ListEmptyComponent","View","style","styles","emptyListStyle","Text","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","index","_ref2","props","StyleSheet","create","backgroundColor","colors","gray","height","opacity","alignItems","width","marginVertical","_default","exports"],"sources":["DropdownList.tsx"],"sourcesContent":["import React from 'react';\nimport { View, FlatList, StyleSheet, Text } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { colors } from '../../styles/colors';\n\nconst DropdownList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <View style={styles.emptyListStyle}>\n <Text>No options available</Text>\n </View>\n }\n ItemSeparatorComponent={() => <View style={styles.itemSeparatorStyle} />}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n emptyListStyle: { alignItems: 'center', width: '100%', marginVertical: 20 },\n});\n\nexport default DropdownList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownListItem","_colors","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","DropdownList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","createElement","FlatList","data","extraData","initialNumToRender","ListEmptyComponent","View","style","styles","emptyListStyle","Text","contentContainerStyle","paddingTop","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","index","_ref2","props","StyleSheet","create","backgroundColor","colors","gray","height","opacity","alignItems","width","marginVertical","_default","exports"],"sources":["DropdownList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { View, FlatList, StyleSheet, Text } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { colors } from '../../styles/colors';\n\nconst DropdownList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: any) => {\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <View style={styles.emptyListStyle}>\n <Text>No options available</Text>\n </View>\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => <View style={styles.itemSeparatorStyle} />}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n emptyListStyle: { alignItems: 'center', width: '100%', marginVertical: 20 },\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownList;\n"],"mappings":"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"}
@@ -26,7 +26,7 @@ const DropdownListItem = _ref => {
26
26
  const selectedOptionValue = optionValue ?? 'value';
27
27
  return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
28
28
  style: styles.dropdownModalOptions,
29
- onPress: () => onChange(item[selectedOptionValue])
29
+ onPress: item.disabled ? () => {} : () => onChange(item[selectedOptionValue]) // intentionally didn't use the disable property
30
30
  }, /*#__PURE__*/_react.default.createElement(_CheckBox.default, {
31
31
  value: isMultiple ? selectedOption.includes(item[selectedOptionValue]) : [selectedOption].includes(item[selectedOptionValue]),
32
32
  label: item[optionLabel ?? ''],
@@ -34,7 +34,8 @@ const DropdownListItem = _ref => {
34
34
  primaryColor: primaryColor,
35
35
  checkboxSize: checkboxSize,
36
36
  checkboxStyle: checkboxStyle,
37
- checkboxLabelStyle: checkboxLabelStyle
37
+ checkboxLabelStyle: checkboxLabelStyle,
38
+ disabled: item.disabled
38
39
  }));
39
40
  };
40
41
  const styles = _reactNative.StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CheckBox","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","selectedOptionValue","createElement","TouchableOpacity","style","styles","dropdownModalOptions","onPress","value","includes","label","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","alignItems","_default","memo","exports"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n const selectedOptionValue = optionValue ?? 'value';\n return (\n <TouchableOpacity\n style={styles.dropdownModalOptions}\n onPress={() => onChange(item[selectedOptionValue])}\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[selectedOptionValue])\n : [selectedOption].includes(item[selectedOptionValue])\n }\n label={item[optionLabel ?? '']}\n onChange={() => onChange(item[selectedOptionValue])}\n primaryColor={primaryColor}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n dropdownModalOptions: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CheckBox","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","selectedOptionValue","createElement","TouchableOpacity","style","styles","dropdownModalOptions","onPress","disabled","value","includes","label","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","alignItems","_default","memo","exports"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n const selectedOptionValue = optionValue ?? 'value';\n return (\n <TouchableOpacity\n style={styles.dropdownModalOptions}\n onPress={\n item.disabled ? () => {} : () => onChange(item[selectedOptionValue]) // intentionally didn't use the disable property\n }\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[selectedOptionValue])\n : [selectedOption].includes(item[selectedOptionValue])\n }\n label={item[optionLabel ?? '']}\n onChange={() => onChange(item[selectedOptionValue])}\n primaryColor={primaryColor}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n disabled={item.disabled}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n dropdownModalOptions: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"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"}
@@ -78,7 +78,7 @@ const DropdownSelect = _ref => {
78
78
  setSelectedItems(selectedValues);
79
79
  onValueChange(selectedValues); //send value to parent
80
80
 
81
- if (newOptions.length === selectedValues.length) {
81
+ if (options.length === selectedValues.length) {
82
82
  setSelectAll(true);
83
83
  } else {
84
84
  setSelectAll(false);
@@ -87,9 +87,10 @@ const DropdownSelect = _ref => {
87
87
  const handleSelectAll = () => {
88
88
  setSelectAll(prevVal => {
89
89
  const selectedValues = [];
90
+ const filteredOptions = newOptions.filter(item => !item.disabled); //don't select disabled items
90
91
  if (!prevVal) {
91
- for (let i = 0; i < newOptions.length; i++) {
92
- selectedValues.push(newOptions[i][optionValue]);
92
+ for (let i = 0; i < filteredOptions.length; i++) {
93
+ selectedValues.push(filteredOptions[i][optionValue]);
93
94
  }
94
95
  }
95
96
  setSelectedItems(selectedValues);
@@ -165,28 +166,30 @@ const DropdownSelect = _ref => {
165
166
  modalBackgroundStyle: modalBackgroundStyle,
166
167
  modalOptionsContainer: modalOptionsContainer,
167
168
  onRequestClose: () => {}
168
- }, isSearchable && /*#__PURE__*/_react.default.createElement(_Input.Input, {
169
- value: searchValue,
170
- onChangeText: text => onSearch(text),
171
- style: searchInputStyle,
172
- primaryColor: primary
173
- }), isMultiple && newOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
174
- style: styles.optionsContainerStyle
175
- }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
176
- onPress: () => {}
177
- }, /*#__PURE__*/_react.default.createElement(_CheckBox.default, {
178
- value: selectAll,
179
- label: selectAll ? 'Clear all' : 'Select all',
180
- onChange: () => handleSelectAll(),
181
- primaryColor: primary,
182
- checkboxSize: checkboxSize,
183
- checkboxStyle: checkboxStyle,
184
- checkboxLabelStyle: checkboxLabelStyle
185
- }))), /*#__PURE__*/_react.default.createElement(_DropdownList.default, {
169
+ }, /*#__PURE__*/_react.default.createElement(_DropdownList.default, {
170
+ ListHeaderComponent: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isSearchable && /*#__PURE__*/_react.default.createElement(_Input.Input, {
171
+ value: searchValue,
172
+ onChangeText: text => onSearch(text),
173
+ style: searchInputStyle,
174
+ primaryColor: primary
175
+ }), isMultiple && newOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
176
+ style: styles.optionsContainerStyle
177
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
178
+ onPress: () => {}
179
+ }, /*#__PURE__*/_react.default.createElement(_CheckBox.default, {
180
+ value: selectAll,
181
+ label: selectAll ? 'Clear all' : 'Select all',
182
+ onChange: () => handleSelectAll(),
183
+ primaryColor: primary,
184
+ checkboxSize: checkboxSize,
185
+ checkboxStyle: checkboxStyle,
186
+ checkboxLabelStyle: checkboxLabelStyle
187
+ })))),
186
188
  options: newOptions,
187
189
  optionLabel: optionLabel,
188
190
  optionValue: optionValue,
189
191
  isMultiple: isMultiple,
192
+ isSearchable: isSearchable,
190
193
  selectedItems: selectedItems,
191
194
  selectedItem: selectedItem,
192
195
  handleMultipleSelections: handleMultipleSelections,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Dropdown","_interopRequireDefault","_DropdownList","_CustomModal","_Input","_CheckBox","_colors","_constants","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","handleSelectAll","prevVal","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","DEFAULT_OPTION_VALUE","DEFAULT_OPTION_LABEL","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","colors","gray","createElement","Fragment","onRequestClose","Input","onChangeText","text","style","View","styles","optionsContainerStyle","TouchableOpacity","onPress","onChange","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\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: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (newOptions.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n if (!prevVal) {\n for (let i = 0; i < newOptions.length; i++) {\n selectedValues.push(newOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\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 const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\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 dropdownStyle={dropdownStyle}\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 {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n <DropdownList\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\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 />\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","_interopRequireWildcard","require","_reactNative","_Dropdown","_interopRequireDefault","_DropdownList","_CustomModal","_Input","_CheckBox","_colors","_constants","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","handleSelectAll","prevVal","filteredOptions","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","DEFAULT_OPTION_VALUE","DEFAULT_OPTION_LABEL","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","colors","gray","createElement","Fragment","onRequestClose","ListHeaderComponent","Input","onChangeText","text","style","View","styles","optionsContainerStyle","TouchableOpacity","onPress","onChange","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\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: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (options.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\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 const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\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 dropdownStyle={dropdownStyle}\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 {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\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 {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\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 />\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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"}
@@ -11,7 +11,8 @@ const colors = {
11
11
  white: '#FFFFFF',
12
12
  dark: '#11142D',
13
13
  gray: '#808191',
14
- lightGray: '#F7F7F7'
14
+ lightGray: '#F7F7F7',
15
+ disabled: '#d3d3d3'
15
16
  };
16
17
  exports.colors = colors;
17
18
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["colors","primary","red","black","white","dark","gray","lightGray","exports"],"sources":["colors.ts"],"sourcesContent":["export const colors: any = {\n primary: 'green',\n red: '#FA4169',\n black: '#000000',\n white: '#FFFFFF',\n dark: '#11142D',\n gray: '#808191',\n lightGray: '#F7F7F7',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,MAAW,GAAG;EACzBC,OAAO,EAAE,OAAO;EAChBC,GAAG,EAAE,SAAS;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE;AACb,CAAC;AAACC,OAAA,CAAAR,MAAA,GAAAA,MAAA"}
1
+ {"version":3,"names":["colors","primary","red","black","white","dark","gray","lightGray","disabled","exports"],"sources":["colors.ts"],"sourcesContent":["export const colors: any = {\n primary: 'green',\n red: '#FA4169',\n black: '#000000',\n white: '#FFFFFF',\n dark: '#11142D',\n gray: '#808191',\n lightGray: '#F7F7F7',\n disabled: '#d3d3d3',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,MAAW,GAAG;EACzBC,OAAO,EAAE,OAAO;EAChBC,GAAG,EAAE,SAAS;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE,SAAS;EACpBC,QAAQ,EAAE;AACZ,CAAC;AAACC,OAAA,CAAAT,MAAA,GAAAA,MAAA"}
@@ -1,11 +1,13 @@
1
1
  /* eslint-disable react-native/no-inline-styles */
2
2
  import React from 'react';
3
3
  import { Pressable, Text, StyleSheet, Image, View } from 'react-native';
4
+ import { colors } from '../../styles/colors';
4
5
  import { CHECKBOX_SIZE } from '../../constants';
5
6
  const CheckBox = _ref => {
6
7
  let {
7
8
  label,
8
9
  value,
10
+ disabled,
9
11
  primaryColor,
10
12
  checkboxSize,
11
13
  checkboxStyle,
@@ -13,11 +15,13 @@ const CheckBox = _ref => {
13
15
  onChange
14
16
  } = _ref;
15
17
  const fillColor = {
16
- backgroundColor: value ? (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white'
18
+ backgroundColor: disabled ? '#d3d3d3' : value ? (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white',
19
+ borderColor: disabled ? colors.disabled : styles.checkbox.borderColor
17
20
  };
18
21
  return /*#__PURE__*/React.createElement(Pressable, {
19
22
  onPress: onChange ? () => onChange(!value) : () => {},
20
- style: [styles.checkboxContainer]
23
+ style: [styles.checkboxContainer],
24
+ disabled: disabled
21
25
  }, /*#__PURE__*/React.createElement(View, {
22
26
  style: [styles.checkbox, checkboxStyle, fillColor]
23
27
  }, /*#__PURE__*/React.createElement(Image, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pressable","Text","StyleSheet","Image","View","CHECKBOX_SIZE","CheckBox","_ref","label","value","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","onChange","fillColor","backgroundColor","createElement","onPress","style","styles","checkboxContainer","checkbox","source","require","height","width","labelStyle","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","borderColor","marginLeft"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Pressable, Text, StyleSheet, Image, View } from 'react-native';\nimport { CHECKBOX_SIZE } from '../../constants';\nimport type { CheckboxProps } from './types';\n\nconst CheckBox = ({\n label,\n value,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n onChange,\n}: CheckboxProps) => {\n const fillColor = {\n backgroundColor: value\n ? checkboxStyle?.backgroundColor || primaryColor || 'green'\n : 'white',\n };\n return (\n <Pressable\n onPress={onChange ? () => onChange(!value) : () => {}}\n style={[styles.checkboxContainer]}\n >\n <View style={[styles.checkbox, checkboxStyle, fillColor]}>\n <Image\n source={require('../../asset/check.png')}\n style={[\n {\n height: checkboxSize || CHECKBOX_SIZE,\n width: checkboxSize || CHECKBOX_SIZE,\n },\n ]}\n />\n </View>\n {label && (\n <Text style={[checkboxLabelStyle, styles.labelStyle]}>{label}</Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n checkboxContainer: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n checkbox: {\n padding: 4,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 4,\n borderColor: 'black',\n },\n labelStyle: { marginLeft: 10 },\n});\n\nexport default CheckBox;\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,IAAI,EAAEC,UAAU,EAAEC,KAAK,EAAEC,IAAI,QAAQ,cAAc;AACvE,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,MAAMC,QAAQ,GAAGC,IAAA,IAQI;EAAA,IARH;IAChBC,KAAK;IACLC,KAAK;IACLC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC;EACa,CAAC,GAAAP,IAAA;EACd,MAAMQ,SAAS,GAAG;IAChBC,eAAe,EAAEP,KAAK,GAClB,CAAAG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,eAAe,KAAIN,YAAY,IAAI,OAAO,GACzD;EACN,CAAC;EACD,oBACEX,KAAA,CAAAkB,aAAA,CAACjB,SAAS;IACRkB,OAAO,EAAEJ,QAAQ,GAAG,MAAMA,QAAQ,CAAC,CAACL,KAAK,CAAC,GAAG,MAAM,CAAC,CAAE;IACtDU,KAAK,EAAE,CAACC,MAAM,CAACC,iBAAiB;EAAE,gBAElCtB,KAAA,CAAAkB,aAAA,CAACb,IAAI;IAACe,KAAK,EAAE,CAACC,MAAM,CAACE,QAAQ,EAAEV,aAAa,EAAEG,SAAS;EAAE,gBACvDhB,KAAA,CAAAkB,aAAA,CAACd,KAAK;IACJoB,MAAM,EAAEC,OAAO,CAAC,uBAAuB,CAAE;IACzCL,KAAK,EAAE,CACL;MACEM,MAAM,EAAEd,YAAY,IAAIN,aAAa;MACrCqB,KAAK,EAAEf,YAAY,IAAIN;IACzB,CAAC;EACD,EACF,CACG,EACNG,KAAK,iBACJT,KAAA,CAAAkB,aAAA,CAAChB,IAAI;IAACkB,KAAK,EAAE,CAACN,kBAAkB,EAAEO,MAAM,CAACO,UAAU;EAAE,GAAEnB,KAAK,CAC7D,CACS;AAEhB,CAAC;AAED,MAAMY,MAAM,GAAGlB,UAAU,CAAC0B,MAAM,CAAC;EAC/BP,iBAAiB,EAAE;IACjBQ,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,UAAU,EAAE;EACd,CAAC;EACDT,QAAQ,EAAE;IACRU,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAE;EACf,CAAC;EACDT,UAAU,EAAE;IAAEU,UAAU,EAAE;EAAG;AAC/B,CAAC,CAAC;AAEF,eAAe/B,QAAQ"}
1
+ {"version":3,"names":["React","Pressable","Text","StyleSheet","Image","View","colors","CHECKBOX_SIZE","CheckBox","_ref","label","value","disabled","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","onChange","fillColor","backgroundColor","borderColor","styles","checkbox","createElement","onPress","style","checkboxContainer","source","require","height","width","labelStyle","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","marginLeft"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Pressable, Text, StyleSheet, Image, View } from 'react-native';\nimport { colors } from '../../styles/colors';\nimport { CHECKBOX_SIZE } from '../../constants';\nimport type { CheckboxProps } from './types';\n\nconst CheckBox = ({\n label,\n value,\n disabled,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n onChange,\n}: CheckboxProps) => {\n const fillColor = {\n backgroundColor: disabled\n ? '#d3d3d3'\n : value\n ? checkboxStyle?.backgroundColor || primaryColor || 'green'\n : 'white',\n borderColor: disabled ? colors.disabled : styles.checkbox.borderColor,\n };\n\n return (\n <Pressable\n onPress={onChange ? () => onChange(!value) : () => {}}\n style={[styles.checkboxContainer]}\n disabled={disabled}\n >\n <View style={[styles.checkbox, checkboxStyle, fillColor]}>\n <Image\n source={require('../../asset/check.png')}\n style={[\n {\n height: checkboxSize || CHECKBOX_SIZE,\n width: checkboxSize || CHECKBOX_SIZE,\n },\n ]}\n />\n </View>\n {label && (\n <Text style={[checkboxLabelStyle, styles.labelStyle]}>{label}</Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n checkboxContainer: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n checkbox: {\n padding: 4,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 4,\n borderColor: 'black',\n },\n labelStyle: { marginLeft: 10 },\n});\n\nexport default CheckBox;\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,IAAI,EAAEC,UAAU,EAAEC,KAAK,EAAEC,IAAI,QAAQ,cAAc;AACvE,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,MAAMC,QAAQ,GAAGC,IAAA,IASI;EAAA,IATH;IAChBC,KAAK;IACLC,KAAK;IACLC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC;EACa,CAAC,GAAAR,IAAA;EACd,MAAMS,SAAS,GAAG;IAChBC,eAAe,EAAEP,QAAQ,GACrB,SAAS,GACTD,KAAK,GACL,CAAAI,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,eAAe,KAAIN,YAAY,IAAI,OAAO,GACzD,OAAO;IACXO,WAAW,EAAER,QAAQ,GAAGN,MAAM,CAACM,QAAQ,GAAGS,MAAM,CAACC,QAAQ,CAACF;EAC5D,CAAC;EAED,oBACEpB,KAAA,CAAAuB,aAAA,CAACtB,SAAS;IACRuB,OAAO,EAAEP,QAAQ,GAAG,MAAMA,QAAQ,CAAC,CAACN,KAAK,CAAC,GAAG,MAAM,CAAC,CAAE;IACtDc,KAAK,EAAE,CAACJ,MAAM,CAACK,iBAAiB,CAAE;IAClCd,QAAQ,EAAEA;EAAS,gBAEnBZ,KAAA,CAAAuB,aAAA,CAAClB,IAAI;IAACoB,KAAK,EAAE,CAACJ,MAAM,CAACC,QAAQ,EAAEP,aAAa,EAAEG,SAAS;EAAE,gBACvDlB,KAAA,CAAAuB,aAAA,CAACnB,KAAK;IACJuB,MAAM,EAAEC,OAAO,CAAC,uBAAuB,CAAE;IACzCH,KAAK,EAAE,CACL;MACEI,MAAM,EAAEf,YAAY,IAAIP,aAAa;MACrCuB,KAAK,EAAEhB,YAAY,IAAIP;IACzB,CAAC;EACD,EACF,CACG,EACNG,KAAK,iBACJV,KAAA,CAAAuB,aAAA,CAACrB,IAAI;IAACuB,KAAK,EAAE,CAACT,kBAAkB,EAAEK,MAAM,CAACU,UAAU;EAAE,GAAErB,KAAK,CAC7D,CACS;AAEhB,CAAC;AAED,MAAMW,MAAM,GAAGlB,UAAU,CAAC6B,MAAM,CAAC;EAC/BN,iBAAiB,EAAE;IACjBO,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,UAAU,EAAE;EACd,CAAC;EACDb,QAAQ,EAAE;IACRc,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,YAAY,EAAE,CAAC;IACfnB,WAAW,EAAE;EACf,CAAC;EACDW,UAAU,EAAE;IAAES,UAAU,EAAE;EAAG;AAC/B,CAAC,CAAC;AAEF,eAAehC,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ColorValue, ViewStyle, TextStyle } from 'react-native';\n\nexport type CheckboxProps = {\n label?: string;\n value?: boolean;\n primaryColor?: ColorValue;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n onChange?: (value: boolean | string | number) => void;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ColorValue, ViewStyle, TextStyle } from 'react-native';\n\nexport type CheckboxProps = {\n label?: string;\n value?: boolean;\n disabled?: boolean;\n primaryColor?: ColorValue;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n onChange?: (value: boolean | string | number) => void;\n};\n"],"mappings":""}
@@ -1,3 +1,5 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /* eslint-disable react-native/no-inline-styles */
1
3
  import React from 'react';
2
4
  import { View, FlatList, StyleSheet, Text } from 'react-native';
3
5
  import DropdownListItem from './DropdownListItem';
@@ -8,6 +10,7 @@ const DropdownList = _ref => {
8
10
  optionLabel,
9
11
  optionValue,
10
12
  isMultiple,
13
+ isSearchable,
11
14
  selectedItems,
12
15
  selectedItem,
13
16
  handleMultipleSelections,
@@ -15,15 +18,19 @@ const DropdownList = _ref => {
15
18
  primaryColor,
16
19
  checkboxSize,
17
20
  checkboxStyle,
18
- checkboxLabelStyle
21
+ checkboxLabelStyle,
22
+ ...rest
19
23
  } = _ref;
20
- return /*#__PURE__*/React.createElement(FlatList, {
24
+ return /*#__PURE__*/React.createElement(FlatList, _extends({
21
25
  data: options,
22
26
  extraData: isMultiple ? selectedItems : selectedItem,
23
27
  initialNumToRender: 5,
24
28
  ListEmptyComponent: /*#__PURE__*/React.createElement(View, {
25
29
  style: styles.emptyListStyle
26
30
  }, /*#__PURE__*/React.createElement(Text, null, "No options available")),
31
+ contentContainerStyle: [isSearchable ? {
32
+ paddingTop: 0
33
+ } : styles.contentContainerStyle],
27
34
  ItemSeparatorComponent: () => /*#__PURE__*/React.createElement(View, {
28
35
  style: styles.itemSeparatorStyle
29
36
  }),
@@ -39,7 +46,7 @@ const DropdownList = _ref => {
39
46
  checkboxLabelStyle
40
47
  }),
41
48
  keyExtractor: (_item, index) => `Options${index}`
42
- });
49
+ }, rest));
43
50
  };
44
51
  const _renderItem = (_ref2, props) => {
45
52
  let {
@@ -68,6 +75,9 @@ const styles = StyleSheet.create({
68
75
  alignItems: 'center',
69
76
  width: '100%',
70
77
  marginVertical: 20
78
+ },
79
+ contentContainerStyle: {
80
+ paddingTop: 20
71
81
  }
72
82
  });
73
83
  export default DropdownList;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","FlatList","StyleSheet","Text","DropdownListItem","colors","DropdownList","_ref","options","optionLabel","optionValue","isMultiple","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","createElement","data","extraData","initialNumToRender","ListEmptyComponent","style","styles","emptyListStyle","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","index","_ref2","props","create","backgroundColor","gray","height","opacity","alignItems","width","marginVertical"],"sources":["DropdownList.tsx"],"sourcesContent":["import React from 'react';\nimport { View, FlatList, StyleSheet, Text } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { colors } from '../../styles/colors';\n\nconst DropdownList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <View style={styles.emptyListStyle}>\n <Text>No options available</Text>\n </View>\n }\n ItemSeparatorComponent={() => <View style={styles.itemSeparatorStyle} />}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n emptyListStyle: { alignItems: 'center', width: '100%', marginVertical: 20 },\n});\n\nexport default DropdownList;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,YAAY,GAAGC,IAAA,IAaV;EAAA,IAbW;IACpBC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,aAAa;IACbC,YAAY;IACZC,wBAAwB;IACxBC,qBAAqB;IACrBC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC;EACG,CAAC,GAAAZ,IAAA;EACJ,oBACER,KAAA,CAAAqB,aAAA,CAACnB,QAAQ;IACPoB,IAAI,EAAEb,OAAQ;IACdc,SAAS,EAAEX,UAAU,GAAGC,aAAa,GAAGC,YAAa;IACrDU,kBAAkB,EAAE,CAAE;IACtBC,kBAAkB,eAChBzB,KAAA,CAAAqB,aAAA,CAACpB,IAAI;MAACyB,KAAK,EAAEC,MAAM,CAACC;IAAe,gBACjC5B,KAAA,CAAAqB,aAAA,CAACjB,IAAI,QAAC,sBAAoB,CAAO,CAEpC;IACDyB,sBAAsB,EAAEA,CAAA,kBAAM7B,KAAA,CAAAqB,aAAA,CAACpB,IAAI;MAACyB,KAAK,EAAEC,MAAM,CAACG;IAAmB,EAAI;IACzEC,UAAU,EAAGC,IAAI,IACfC,WAAW,CAACD,IAAI,EAAE;MAChBtB,WAAW;MACXC,WAAW;MACXC,UAAU;MACVsB,cAAc,EAAEtB,UAAU,GAAGC,aAAa,GAAGC,YAAY;MACzDqB,QAAQ,EAAEvB,UAAU,GAChBG,wBAAwB,GACxBC,qBAAqB;MACzBC,YAAY;MACZC,YAAY;MACZC,aAAa;MACbC;IACF,CAAC,CACF;IACDgB,YAAY,EAAEA,CAACC,KAAK,EAAEC,KAAK,KAAM,UAASA,KAAM;EAAE,EAClD;AAEN,CAAC;AAED,MAAML,WAAW,GAAGA,CAAAM,KAAA,EAAgBC,KAAU,KAAK;EAAA,IAA9B;IAAER;EAAU,CAAC,GAAAO,KAAA;EAChC,oBACEvC,KAAA,CAAAqB,aAAA,CAAChB,gBAAgB;IACf2B,IAAI,EAAEA,IAAK;IACXtB,WAAW,EAAE8B,KAAK,CAAC9B,WAAY;IAC/BC,WAAW,EAAE6B,KAAK,CAAC7B,WAAY;IAC/BC,UAAU,EAAE4B,KAAK,CAAC5B,UAAW;IAC7BsB,cAAc,EAAEM,KAAK,CAACN,cAAe;IACrCC,QAAQ,EAAEK,KAAK,CAACL,QAAS;IACzBlB,YAAY,EAAEuB,KAAK,CAACvB,YAAa;IACjCC,YAAY,EAAEsB,KAAK,CAACtB,YAAa;IACjCC,aAAa,EAAEqB,KAAK,CAACrB,aAAc;IACnCC,kBAAkB,EAAEoB,KAAK,CAACpB;EAAmB,EAC7C;AAEN,CAAC;AAED,MAAMO,MAAM,GAAGxB,UAAU,CAACsC,MAAM,CAAC;EAC/BX,kBAAkB,EAAE;IAClBY,eAAe,EAAEpC,MAAM,CAACqC,IAAI;IAC5BC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDjB,cAAc,EAAE;IAAEkB,UAAU,EAAE,QAAQ;IAAEC,KAAK,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAG;AAC5E,CAAC,CAAC;AAEF,eAAezC,YAAY"}
1
+ {"version":3,"names":["React","View","FlatList","StyleSheet","Text","DropdownListItem","colors","DropdownList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","createElement","_extends","data","extraData","initialNumToRender","ListEmptyComponent","style","styles","emptyListStyle","contentContainerStyle","paddingTop","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","index","_ref2","props","create","backgroundColor","gray","height","opacity","alignItems","width","marginVertical"],"sources":["DropdownList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { View, FlatList, StyleSheet, Text } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { colors } from '../../styles/colors';\n\nconst DropdownList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: any) => {\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <View style={styles.emptyListStyle}>\n <Text>No options available</Text>\n </View>\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => <View style={styles.itemSeparatorStyle} />}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n emptyListStyle: { alignItems: 'center', width: '100%', marginVertical: 20 },\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownList;\n"],"mappings":";AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,YAAY,GAAGC,IAAA,IAeV;EAAA,IAfW;IACpBC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,wBAAwB;IACxBC,qBAAqB;IACrBC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClB,GAAGC;EACA,CAAC,GAAAd,IAAA;EACJ,oBACER,KAAA,CAAAuB,aAAA,CAACrB,QAAQ,EAAAsB,QAAA;IACPC,IAAI,EAAEhB,OAAQ;IACdiB,SAAS,EAAEd,UAAU,GAAGE,aAAa,GAAGC,YAAa;IACrDY,kBAAkB,EAAE,CAAE;IACtBC,kBAAkB,eAChB5B,KAAA,CAAAuB,aAAA,CAACtB,IAAI;MAAC4B,KAAK,EAAEC,MAAM,CAACC;IAAe,gBACjC/B,KAAA,CAAAuB,aAAA,CAACnB,IAAI,QAAC,sBAAoB,CAAO,CAEpC;IACD4B,qBAAqB,EAAE,CACrBnB,YAAY,GAAG;MAAEoB,UAAU,EAAE;IAAE,CAAC,GAAGH,MAAM,CAACE,qBAAqB,CAC/D;IACFE,sBAAsB,EAAEA,CAAA,kBAAMlC,KAAA,CAAAuB,aAAA,CAACtB,IAAI;MAAC4B,KAAK,EAAEC,MAAM,CAACK;IAAmB,EAAI;IACzEC,UAAU,EAAGC,IAAI,IACfC,WAAW,CAACD,IAAI,EAAE;MAChB3B,WAAW;MACXC,WAAW;MACXC,UAAU;MACV2B,cAAc,EAAE3B,UAAU,GAAGE,aAAa,GAAGC,YAAY;MACzDyB,QAAQ,EAAE5B,UAAU,GAChBI,wBAAwB,GACxBC,qBAAqB;MACzBC,YAAY;MACZC,YAAY;MACZC,aAAa;MACbC;IACF,CAAC,CACF;IACDoB,YAAY,EAAEA,CAACC,KAAK,EAAEC,KAAK,KAAM,UAASA,KAAM;EAAE,GAC9CrB,IAAI,EACR;AAEN,CAAC;AAED,MAAMgB,WAAW,GAAGA,CAAAM,KAAA,EAAgBC,KAAU,KAAK;EAAA,IAA9B;IAAER;EAAU,CAAC,GAAAO,KAAA;EAChC,oBACE5C,KAAA,CAAAuB,aAAA,CAAClB,gBAAgB;IACfgC,IAAI,EAAEA,IAAK;IACX3B,WAAW,EAAEmC,KAAK,CAACnC,WAAY;IAC/BC,WAAW,EAAEkC,KAAK,CAAClC,WAAY;IAC/BC,UAAU,EAAEiC,KAAK,CAACjC,UAAW;IAC7B2B,cAAc,EAAEM,KAAK,CAACN,cAAe;IACrCC,QAAQ,EAAEK,KAAK,CAACL,QAAS;IACzBtB,YAAY,EAAE2B,KAAK,CAAC3B,YAAa;IACjCC,YAAY,EAAE0B,KAAK,CAAC1B,YAAa;IACjCC,aAAa,EAAEyB,KAAK,CAACzB,aAAc;IACnCC,kBAAkB,EAAEwB,KAAK,CAACxB;EAAmB,EAC7C;AAEN,CAAC;AAED,MAAMS,MAAM,GAAG3B,UAAU,CAAC2C,MAAM,CAAC;EAC/BX,kBAAkB,EAAE;IAClBY,eAAe,EAAEzC,MAAM,CAAC0C,IAAI;IAC5BC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDnB,cAAc,EAAE;IAAEoB,UAAU,EAAE,QAAQ;IAAEC,KAAK,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAG,CAAC;EAC3ErB,qBAAqB,EAAE;IAAEC,UAAU,EAAE;EAAG;AAC1C,CAAC,CAAC;AAEF,eAAe1B,YAAY"}
@@ -17,7 +17,7 @@ const DropdownListItem = _ref => {
17
17
  const selectedOptionValue = optionValue ?? 'value';
18
18
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
19
19
  style: styles.dropdownModalOptions,
20
- onPress: () => onChange(item[selectedOptionValue])
20
+ onPress: item.disabled ? () => {} : () => onChange(item[selectedOptionValue]) // intentionally didn't use the disable property
21
21
  }, /*#__PURE__*/React.createElement(CheckBox, {
22
22
  value: isMultiple ? selectedOption.includes(item[selectedOptionValue]) : [selectedOption].includes(item[selectedOptionValue]),
23
23
  label: item[optionLabel ?? ''],
@@ -25,7 +25,8 @@ const DropdownListItem = _ref => {
25
25
  primaryColor: primaryColor,
26
26
  checkboxSize: checkboxSize,
27
27
  checkboxStyle: checkboxStyle,
28
- checkboxLabelStyle: checkboxLabelStyle
28
+ checkboxLabelStyle: checkboxLabelStyle,
29
+ disabled: item.disabled
29
30
  }));
30
31
  };
31
32
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","TouchableOpacity","StyleSheet","CheckBox","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","selectedOptionValue","createElement","style","styles","dropdownModalOptions","onPress","value","includes","label","create","paddingHorizontal","paddingVertical","flexDirection","alignItems"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n const selectedOptionValue = optionValue ?? 'value';\n return (\n <TouchableOpacity\n style={styles.dropdownModalOptions}\n onPress={() => onChange(item[selectedOptionValue])}\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[selectedOptionValue])\n : [selectedOption].includes(item[selectedOptionValue])\n }\n label={item[optionLabel ?? '']}\n onChange={() => onChange(item[selectedOptionValue])}\n primaryColor={primaryColor}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n dropdownModalOptions: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,QAAQ,MAAM,aAAa;AAElC,MAAMC,gBAAgB,GAAGC,IAAA,IAWd;EAAA,IAXe;IACxBC,IAAI;IACJC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,cAAc;IACdC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC;EACG,CAAC,GAAAV,IAAA;EACJ,MAAMW,mBAAmB,GAAGR,WAAW,IAAI,OAAO;EAClD,oBACET,KAAA,CAAAkB,aAAA,CAAChB,gBAAgB;IACfiB,KAAK,EAAEC,MAAM,CAACC,oBAAqB;IACnCC,OAAO,EAAEA,CAAA,KAAMV,QAAQ,CAACL,IAAI,CAACU,mBAAmB,CAAC;EAAE,gBAEnDjB,KAAA,CAAAkB,aAAA,CAACd,QAAQ;IACPmB,KAAK,EACHb,UAAU,GACNC,cAAc,CAACa,QAAQ,CAACjB,IAAI,CAACU,mBAAmB,CAAC,CAAC,GAClD,CAACN,cAAc,CAAC,CAACa,QAAQ,CAACjB,IAAI,CAACU,mBAAmB,CAAC,CACxD;IACDQ,KAAK,EAAElB,IAAI,CAACC,WAAW,IAAI,EAAE,CAAE;IAC/BI,QAAQ,EAAEA,CAAA,KAAMA,QAAQ,CAACL,IAAI,CAACU,mBAAmB,CAAC,CAAE;IACpDJ,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BC,kBAAkB,EAAEA;EAAmB,EACvC,CACe;AAEvB,CAAC;AAED,MAAMI,MAAM,GAAGjB,UAAU,CAACuB,MAAM,CAAC;EAC/BL,oBAAoB,EAAE;IACpBM,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,4BAAe7B,IAAI,CAACI,gBAAgB,CAAC"}
1
+ {"version":3,"names":["React","memo","TouchableOpacity","StyleSheet","CheckBox","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","selectedOptionValue","createElement","style","styles","dropdownModalOptions","onPress","disabled","value","includes","label","create","paddingHorizontal","paddingVertical","flexDirection","alignItems"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n}: any) => {\n const selectedOptionValue = optionValue ?? 'value';\n return (\n <TouchableOpacity\n style={styles.dropdownModalOptions}\n onPress={\n item.disabled ? () => {} : () => onChange(item[selectedOptionValue]) // intentionally didn't use the disable property\n }\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[selectedOptionValue])\n : [selectedOption].includes(item[selectedOptionValue])\n }\n label={item[optionLabel ?? '']}\n onChange={() => onChange(item[selectedOptionValue])}\n primaryColor={primaryColor}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n disabled={item.disabled}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n dropdownModalOptions: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,QAAQ,MAAM,aAAa;AAElC,MAAMC,gBAAgB,GAAGC,IAAA,IAWd;EAAA,IAXe;IACxBC,IAAI;IACJC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,cAAc;IACdC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC;EACG,CAAC,GAAAV,IAAA;EACJ,MAAMW,mBAAmB,GAAGR,WAAW,IAAI,OAAO;EAClD,oBACET,KAAA,CAAAkB,aAAA,CAAChB,gBAAgB;IACfiB,KAAK,EAAEC,MAAM,CAACC,oBAAqB;IACnCC,OAAO,EACLf,IAAI,CAACgB,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,MAAMX,QAAQ,CAACL,IAAI,CAACU,mBAAmB,CAAC,CAAC,CAAC;EACtE,gBAEDjB,KAAA,CAAAkB,aAAA,CAACd,QAAQ;IACPoB,KAAK,EACHd,UAAU,GACNC,cAAc,CAACc,QAAQ,CAAClB,IAAI,CAACU,mBAAmB,CAAC,CAAC,GAClD,CAACN,cAAc,CAAC,CAACc,QAAQ,CAAClB,IAAI,CAACU,mBAAmB,CAAC,CACxD;IACDS,KAAK,EAAEnB,IAAI,CAACC,WAAW,IAAI,EAAE,CAAE;IAC/BI,QAAQ,EAAEA,CAAA,KAAMA,QAAQ,CAACL,IAAI,CAACU,mBAAmB,CAAC,CAAE;IACpDJ,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BC,kBAAkB,EAAEA,kBAAmB;IACvCO,QAAQ,EAAEhB,IAAI,CAACgB;EAAS,EACxB,CACe;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGjB,UAAU,CAACwB,MAAM,CAAC;EAC/BN,oBAAoB,EAAE;IACpBO,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,4BAAe9B,IAAI,CAACI,gBAAgB,CAAC"}
@@ -69,7 +69,7 @@ export const DropdownSelect = _ref => {
69
69
  setSelectedItems(selectedValues);
70
70
  onValueChange(selectedValues); //send value to parent
71
71
 
72
- if (newOptions.length === selectedValues.length) {
72
+ if (options.length === selectedValues.length) {
73
73
  setSelectAll(true);
74
74
  } else {
75
75
  setSelectAll(false);
@@ -78,9 +78,10 @@ export const DropdownSelect = _ref => {
78
78
  const handleSelectAll = () => {
79
79
  setSelectAll(prevVal => {
80
80
  const selectedValues = [];
81
+ const filteredOptions = newOptions.filter(item => !item.disabled); //don't select disabled items
81
82
  if (!prevVal) {
82
- for (let i = 0; i < newOptions.length; i++) {
83
- selectedValues.push(newOptions[i][optionValue]);
83
+ for (let i = 0; i < filteredOptions.length; i++) {
84
+ selectedValues.push(filteredOptions[i][optionValue]);
84
85
  }
85
86
  }
86
87
  setSelectedItems(selectedValues);
@@ -156,28 +157,30 @@ export const DropdownSelect = _ref => {
156
157
  modalBackgroundStyle: modalBackgroundStyle,
157
158
  modalOptionsContainer: modalOptionsContainer,
158
159
  onRequestClose: () => {}
159
- }, isSearchable && /*#__PURE__*/React.createElement(Input, {
160
- value: searchValue,
161
- onChangeText: text => onSearch(text),
162
- style: searchInputStyle,
163
- primaryColor: primary
164
- }), isMultiple && newOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
165
- style: styles.optionsContainerStyle
166
- }, /*#__PURE__*/React.createElement(TouchableOpacity, {
167
- onPress: () => {}
168
- }, /*#__PURE__*/React.createElement(CheckBox, {
169
- value: selectAll,
170
- label: selectAll ? 'Clear all' : 'Select all',
171
- onChange: () => handleSelectAll(),
172
- primaryColor: primary,
173
- checkboxSize: checkboxSize,
174
- checkboxStyle: checkboxStyle,
175
- checkboxLabelStyle: checkboxLabelStyle
176
- }))), /*#__PURE__*/React.createElement(DropdownList, {
160
+ }, /*#__PURE__*/React.createElement(DropdownList, {
161
+ ListHeaderComponent: /*#__PURE__*/React.createElement(React.Fragment, null, isSearchable && /*#__PURE__*/React.createElement(Input, {
162
+ value: searchValue,
163
+ onChangeText: text => onSearch(text),
164
+ style: searchInputStyle,
165
+ primaryColor: primary
166
+ }), isMultiple && newOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
167
+ style: styles.optionsContainerStyle
168
+ }, /*#__PURE__*/React.createElement(TouchableOpacity, {
169
+ onPress: () => {}
170
+ }, /*#__PURE__*/React.createElement(CheckBox, {
171
+ value: selectAll,
172
+ label: selectAll ? 'Clear all' : 'Select all',
173
+ onChange: () => handleSelectAll(),
174
+ primaryColor: primary,
175
+ checkboxSize: checkboxSize,
176
+ checkboxStyle: checkboxStyle,
177
+ checkboxLabelStyle: checkboxLabelStyle
178
+ })))),
177
179
  options: newOptions,
178
180
  optionLabel: optionLabel,
179
181
  optionValue: optionValue,
180
182
  isMultiple: isMultiple,
183
+ isSearchable: isSearchable,
181
184
  selectedItems: selectedItems,
182
185
  selectedItem: selectedItem,
183
186
  handleMultipleSelections: handleMultipleSelections,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","TouchableOpacity","StyleSheet","View","Dropdown","DropdownList","CustomModal","Input","CheckBox","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","length","handleSelectAll","prevVal","i","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","gray","createElement","Fragment","_extends","onRequestClose","onChangeText","text","style","styles","optionsContainerStyle","onPress","onChange","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\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: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (newOptions.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n if (!prevVal) {\n for (let i = 0; i < newOptions.length; i++) {\n selectedValues.push(newOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\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 const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\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 dropdownStyle={dropdownStyle}\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 {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n <DropdownList\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\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 />\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","TouchableOpacity","StyleSheet","View","Dropdown","DropdownList","CustomModal","Input","CheckBox","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","length","handleSelectAll","prevVal","filteredOptions","i","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","gray","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","styles","optionsContainerStyle","onPress","onChange","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\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: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (options.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\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 const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\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 dropdownStyle={dropdownStyle}\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 {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\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 {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\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 />\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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"}
@@ -5,6 +5,7 @@ export const colors = {
5
5
  white: '#FFFFFF',
6
6
  dark: '#11142D',
7
7
  gray: '#808191',
8
- lightGray: '#F7F7F7'
8
+ lightGray: '#F7F7F7',
9
+ disabled: '#d3d3d3'
9
10
  };
10
11
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["colors","primary","red","black","white","dark","gray","lightGray"],"sources":["colors.ts"],"sourcesContent":["export const colors: any = {\n primary: 'green',\n red: '#FA4169',\n black: '#000000',\n white: '#FFFFFF',\n dark: '#11142D',\n gray: '#808191',\n lightGray: '#F7F7F7',\n};\n"],"mappings":"AAAA,OAAO,MAAMA,MAAW,GAAG;EACzBC,OAAO,EAAE,OAAO;EAChBC,GAAG,EAAE,SAAS;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE;AACb,CAAC"}
1
+ {"version":3,"names":["colors","primary","red","black","white","dark","gray","lightGray","disabled"],"sources":["colors.ts"],"sourcesContent":["export const colors: any = {\n primary: 'green',\n red: '#FA4169',\n black: '#000000',\n white: '#FFFFFF',\n dark: '#11142D',\n gray: '#808191',\n lightGray: '#F7F7F7',\n disabled: '#d3d3d3',\n};\n"],"mappings":"AAAA,OAAO,MAAMA,MAAW,GAAG;EACzBC,OAAO,EAAE,OAAO;EAChBC,GAAG,EAAE,SAAS;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE,SAAS;EACpBC,QAAQ,EAAE;AACZ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import type { CheckboxProps } from './types';
3
- declare const CheckBox: ({ label, value, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, onChange, }: CheckboxProps) => JSX.Element;
3
+ declare const CheckBox: ({ label, value, disabled, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, onChange, }: CheckboxProps) => JSX.Element;
4
4
  export default CheckBox;
@@ -2,6 +2,7 @@ import type { ColorValue, ViewStyle, TextStyle } from 'react-native';
2
2
  export type CheckboxProps = {
3
3
  label?: string;
4
4
  value?: boolean;
5
+ disabled?: boolean;
5
6
  primaryColor?: ColorValue;
6
7
  checkboxSize?: number;
7
8
  checkboxStyle?: ViewStyle;
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- declare const DropdownList: ({ options, optionLabel, optionValue, isMultiple, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, }: any) => JSX.Element;
2
+ declare const DropdownList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, ...rest }: any) => JSX.Element;
3
3
  export default DropdownList;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-input-select",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
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",
@@ -1,12 +1,14 @@
1
1
  /* eslint-disable react-native/no-inline-styles */
2
2
  import React from 'react';
3
3
  import { Pressable, Text, StyleSheet, Image, View } from 'react-native';
4
+ import { colors } from '../../styles/colors';
4
5
  import { CHECKBOX_SIZE } from '../../constants';
5
6
  import type { CheckboxProps } from './types';
6
7
 
7
8
  const CheckBox = ({
8
9
  label,
9
10
  value,
11
+ disabled,
10
12
  primaryColor,
11
13
  checkboxSize,
12
14
  checkboxStyle,
@@ -14,14 +16,19 @@ const CheckBox = ({
14
16
  onChange,
15
17
  }: CheckboxProps) => {
16
18
  const fillColor = {
17
- backgroundColor: value
19
+ backgroundColor: disabled
20
+ ? '#d3d3d3'
21
+ : value
18
22
  ? checkboxStyle?.backgroundColor || primaryColor || 'green'
19
23
  : 'white',
24
+ borderColor: disabled ? colors.disabled : styles.checkbox.borderColor,
20
25
  };
26
+
21
27
  return (
22
28
  <Pressable
23
29
  onPress={onChange ? () => onChange(!value) : () => {}}
24
30
  style={[styles.checkboxContainer]}
31
+ disabled={disabled}
25
32
  >
26
33
  <View style={[styles.checkbox, checkboxStyle, fillColor]}>
27
34
  <Image
@@ -3,6 +3,7 @@ import type { ColorValue, ViewStyle, TextStyle } from 'react-native';
3
3
  export type CheckboxProps = {
4
4
  label?: string;
5
5
  value?: boolean;
6
+ disabled?: boolean;
6
7
  primaryColor?: ColorValue;
7
8
  checkboxSize?: number;
8
9
  checkboxStyle?: ViewStyle;
@@ -1,3 +1,4 @@
1
+ /* eslint-disable react-native/no-inline-styles */
1
2
  import React from 'react';
2
3
  import { View, FlatList, StyleSheet, Text } from 'react-native';
3
4
  import DropdownListItem from './DropdownListItem';
@@ -8,6 +9,7 @@ const DropdownList = ({
8
9
  optionLabel,
9
10
  optionValue,
10
11
  isMultiple,
12
+ isSearchable,
11
13
  selectedItems,
12
14
  selectedItem,
13
15
  handleMultipleSelections,
@@ -16,6 +18,7 @@ const DropdownList = ({
16
18
  checkboxSize,
17
19
  checkboxStyle,
18
20
  checkboxLabelStyle,
21
+ ...rest
19
22
  }: any) => {
20
23
  return (
21
24
  <FlatList
@@ -27,6 +30,9 @@ const DropdownList = ({
27
30
  <Text>No options available</Text>
28
31
  </View>
29
32
  }
33
+ contentContainerStyle={[
34
+ isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,
35
+ ]}
30
36
  ItemSeparatorComponent={() => <View style={styles.itemSeparatorStyle} />}
31
37
  renderItem={(item) =>
32
38
  _renderItem(item, {
@@ -44,6 +50,7 @@ const DropdownList = ({
44
50
  })
45
51
  }
46
52
  keyExtractor={(_item, index) => `Options${index}`}
53
+ {...rest}
47
54
  />
48
55
  );
49
56
  };
@@ -72,6 +79,7 @@ const styles = StyleSheet.create({
72
79
  opacity: 0.15,
73
80
  },
74
81
  emptyListStyle: { alignItems: 'center', width: '100%', marginVertical: 20 },
82
+ contentContainerStyle: { paddingTop: 20 },
75
83
  });
76
84
 
77
85
  export default DropdownList;
@@ -18,7 +18,9 @@ const DropdownListItem = ({
18
18
  return (
19
19
  <TouchableOpacity
20
20
  style={styles.dropdownModalOptions}
21
- onPress={() => onChange(item[selectedOptionValue])}
21
+ onPress={
22
+ item.disabled ? () => {} : () => onChange(item[selectedOptionValue]) // intentionally didn't use the disable property
23
+ }
22
24
  >
23
25
  <CheckBox
24
26
  value={
@@ -32,6 +34,7 @@ const DropdownListItem = ({
32
34
  checkboxSize={checkboxSize}
33
35
  checkboxStyle={checkboxStyle}
34
36
  checkboxLabelStyle={checkboxLabelStyle}
37
+ disabled={item.disabled}
35
38
  />
36
39
  </TouchableOpacity>
37
40
  );
package/src/index.tsx CHANGED
@@ -76,7 +76,7 @@ export const DropdownSelect = ({
76
76
  setSelectedItems(selectedValues);
77
77
  onValueChange(selectedValues); //send value to parent
78
78
 
79
- if (newOptions.length === selectedValues.length) {
79
+ if (options.length === selectedValues.length) {
80
80
  setSelectAll(true);
81
81
  } else {
82
82
  setSelectAll(false);
@@ -86,10 +86,10 @@ export const DropdownSelect = ({
86
86
  const handleSelectAll = () => {
87
87
  setSelectAll((prevVal) => {
88
88
  const selectedValues = [];
89
-
89
+ const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items
90
90
  if (!prevVal) {
91
- for (let i = 0; i < newOptions.length; i++) {
92
- selectedValues.push(newOptions[i][optionValue]);
91
+ for (let i = 0; i < filteredOptions.length; i++) {
92
+ selectedValues.push(filteredOptions[i][optionValue]);
93
93
  }
94
94
  }
95
95
 
@@ -196,34 +196,39 @@ export const DropdownSelect = ({
196
196
  modalOptionsContainer={modalOptionsContainer}
197
197
  onRequestClose={() => {}}
198
198
  >
199
- {isSearchable && (
200
- <Input
201
- value={searchValue}
202
- onChangeText={(text: string) => onSearch(text)}
203
- style={searchInputStyle}
204
- primaryColor={primary}
205
- />
206
- )}
207
- {isMultiple && newOptions.length > 1 && (
208
- <View style={styles.optionsContainerStyle}>
209
- <TouchableOpacity onPress={() => {}}>
210
- <CheckBox
211
- value={selectAll}
212
- label={selectAll ? 'Clear all' : 'Select all'}
213
- onChange={() => handleSelectAll()}
214
- primaryColor={primary}
215
- checkboxSize={checkboxSize}
216
- checkboxStyle={checkboxStyle}
217
- checkboxLabelStyle={checkboxLabelStyle}
218
- />
219
- </TouchableOpacity>
220
- </View>
221
- )}
222
199
  <DropdownList
200
+ ListHeaderComponent={
201
+ <>
202
+ {isSearchable && (
203
+ <Input
204
+ value={searchValue}
205
+ onChangeText={(text: string) => onSearch(text)}
206
+ style={searchInputStyle}
207
+ primaryColor={primary}
208
+ />
209
+ )}
210
+ {isMultiple && newOptions.length > 1 && (
211
+ <View style={styles.optionsContainerStyle}>
212
+ <TouchableOpacity onPress={() => {}}>
213
+ <CheckBox
214
+ value={selectAll}
215
+ label={selectAll ? 'Clear all' : 'Select all'}
216
+ onChange={() => handleSelectAll()}
217
+ primaryColor={primary}
218
+ checkboxSize={checkboxSize}
219
+ checkboxStyle={checkboxStyle}
220
+ checkboxLabelStyle={checkboxLabelStyle}
221
+ />
222
+ </TouchableOpacity>
223
+ </View>
224
+ )}
225
+ </>
226
+ }
223
227
  options={newOptions}
224
228
  optionLabel={optionLabel}
225
229
  optionValue={optionValue}
226
230
  isMultiple={isMultiple}
231
+ isSearchable={isSearchable}
227
232
  selectedItems={selectedItems}
228
233
  selectedItem={selectedItem}
229
234
  handleMultipleSelections={handleMultipleSelections}
@@ -6,4 +6,5 @@ export const colors: any = {
6
6
  dark: '#11142D',
7
7
  gray: '#808191',
8
8
  lightGray: '#F7F7F7',
9
+ disabled: '#d3d3d3',
9
10
  };