react-native-input-select 0.27.0 → 0.29.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.
package/README.md CHANGED
@@ -7,15 +7,17 @@ A fully customizable dropdown selection package for react-native android and iOS
7
7
  ## Installation
8
8
 
9
9
  With npm
10
+
10
11
  ```sh
11
12
  npm install react-native-input-select
12
13
  ```
14
+
13
15
  With yarn
14
16
 
15
17
  ```sh
16
18
  yarn add react-native-input-select
17
19
  ```
18
-
20
+
19
21
  ## Basic Usage
20
22
 
21
23
  ```js
@@ -26,44 +28,116 @@ export default function App() {
26
28
  const [country, setCountry] = React.useState();
27
29
 
28
30
  return (
29
- <Dropdown
30
- label="Country"
31
- placeholder="Select an option..."
32
- options={[
33
- { name: 'Albania', code: 'AL' },
34
- { name: 'Åland Islands', code: 'AX' },
35
- { name: 'Algeria', code: 'DZ' },
36
- { name: 'American Samoa', code: 'AS' },
37
- { name: 'Andorra', code: 'AD' },
38
- { name: 'Angola', code: 'AO' },
39
- { name: 'Anguilla', code: 'AI' },
40
- { name: 'Antarctica', code: 'AQ' },
41
- { name: 'Antigua and Barbuda', code: 'AG' },
42
- ]}
43
- optionLabel={'name'}
44
- optionValue={'code'}
45
- selectedValue={country}
46
- onValueChange={(value) => setCountry(value)}
47
- primaryColor={'green'}
48
- />
31
+ <Dropdown
32
+ label="Country"
33
+ placeholder="Select an option..."
34
+ options={[
35
+ { name: 'Albania', code: 'AL' },
36
+ { name: 'Åland Islands', code: 'AX' },
37
+ { name: 'Algeria', code: 'DZ' },
38
+ { name: 'American Samoa', code: 'AS' },
39
+ { name: 'Andorra', code: 'AD' },
40
+ { name: 'Angola', code: 'AO' },
41
+ { name: 'Anguilla', code: 'AI' },
42
+ { name: 'Antarctica', code: 'AQ' },
43
+ { name: 'Antigua and Barbuda', code: 'AG' },
44
+ ]}
45
+ optionLabel={'name'}
46
+ optionValue={'code'}
47
+ selectedValue={country}
48
+ onValueChange={(value) => setCountry(value)}
49
+ primaryColor={'green'}
50
+ />
49
51
  );
50
52
  }
51
53
  ```
52
- For more examples visit our [wiki page](https://github.com/azeezat/react-native-select/wiki)
53
54
 
55
+ ## Advanced Usage
56
+
57
+ ```js
58
+ import React from 'react';
59
+ import Dropdown from 'react-native-input-select';
60
+
61
+ export default function App() {
62
+ const [country, setCountry] = React.useState();
63
+
64
+ return (
65
+ <Dropdown
66
+ label="Customized components in list"
67
+ placeholder="Select multiple options..."
68
+ options={countries.slice(0, 3)}
69
+ optionLabel={'name'}
70
+ optionValue={'code'}
71
+ selectedValue={country}
72
+ onValueChange={(itemValue: any) => setCountry(itemValue)}
73
+ isMultiple
74
+ primaryColor={'orange'}
75
+ dropdownStyle={{
76
+ borderWidth: 0, // To remove border, set borderWidth to 0
77
+ }}
78
+ placeholderStyle={{
79
+ color: 'purple',
80
+ fontSize: 15,
81
+ fontWeight: '500',
82
+ }}
83
+ labelStyle={{ color: 'teal', fontSize: 15, fontWeight: '500' }}
84
+ dropdownHelperTextStyle={{
85
+ color: 'green',
86
+ fontWeight: '900',
87
+ }}
88
+ modalBackgroundStyle={{
89
+ backgroundColor: 'rgba(196, 198, 246, 0.5)',
90
+ }}
91
+ helperText="The placeholder has been styled"
92
+ checkboxSize={20}
93
+ checkboxStyle={{
94
+ backgroundColor: 'purple',
95
+ borderRadius: 30, // To get a circle - add the checkboxSize and the padding size
96
+ padding: 10,
97
+ }}
98
+ checkboxLabelStyle={{ color: 'red', fontSize: 30 }}
99
+ listHeaderComponent={
100
+ <View style={styles.customComponentContainer}>
101
+ <Text style={styles.text}>
102
+ 💡 You can add any component to the top of this list
103
+ </Text>
104
+ <View style={styles.fixToText}>
105
+ <Button
106
+ title="Left button"
107
+ onPress={() => Alert.alert('Left button pressed')}
108
+ color="#007AFF"
109
+ />
110
+ <Button
111
+ title="Right button"
112
+ onPress={() => Alert.alert('Right button pressed')}
113
+ />
114
+ </View>
115
+ </View>
116
+ }
117
+ listFooterComponent={
118
+ <View style={styles.customComponentContainer}>
119
+ <Text>You can add any component to the bottom of this list</Text>
120
+ </View>
121
+ }
122
+ />
123
+ );
124
+ }
125
+ ```
126
+
127
+ For more examples visit our [wiki page](https://github.com/azeezat/react-native-select/wiki)
54
128
 
55
129
  # iOS
56
- | | | |
57
- |:-------------------------:|:-------------------------:|:-------------------------:|
58
- |<img width="529" alt="Screenshot 2023-03-23 at 5 11 54 PM" src="https://user-images.githubusercontent.com/9849221/227392644-a039424a-9bdf-4253-b984-7b043e4a9545.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 00 19 PM" src="https://user-images.githubusercontent.com/9849221/227391036-44b5e935-bc5e-48d6-a3a9-7a285a4879fd.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 00 29 PM" src="https://user-images.githubusercontent.com/9849221/227391040-45772980-e51c-4ebf-aabf-30886ff06e7c.png">|
59
- |<img width="529" alt="Screenshot 2023-03-23 at 5 00 35 PM" src="https://user-images.githubusercontent.com/9849221/227391043-9e5fe1aa-86aa-438c-9e84-8c38975d3d57.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 11 54 PM" src="https://user-images.githubusercontent.com/9849221/227391594-f672b97a-c3c0-466c-b615-a887e4a8a6c0.png">| <img width="529" alt="Screenshot 2023-04-06 at 5 26 46 PM" src="https://user-images.githubusercontent.com/9849221/230516858-b11168be-3144-4914-a31a-15663c5d0404.png">|
60
130
 
131
+ | | | |
132
+ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
133
+ | <img width="529" alt="Screenshot 2023-04-18 at 10 06 15 AM" src="https://user-images.githubusercontent.com/9849221/232854077-d5f8436a-55d8-4826-af44-5a7d47626765.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 00 19 PM" src="https://user-images.githubusercontent.com/9849221/227391036-44b5e935-bc5e-48d6-a3a9-7a285a4879fd.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 00 29 PM" src="https://user-images.githubusercontent.com/9849221/227391040-45772980-e51c-4ebf-aabf-30886ff06e7c.png"> |
134
+ | <img width="529" alt="Screenshot 2023-03-23 at 5 00 35 PM" src="https://user-images.githubusercontent.com/9849221/227391043-9e5fe1aa-86aa-438c-9e84-8c38975d3d57.png"> | <img width="529" alt="Screenshot 2023-03-23 at 5 11 54 PM" src="https://user-images.githubusercontent.com/9849221/227391594-f672b97a-c3c0-466c-b615-a887e4a8a6c0.png"> | <img width="529" alt="Screenshot 2023-04-06 at 5 26 46 PM" src="https://user-images.githubusercontent.com/9849221/230516858-b11168be-3144-4914-a31a-15663c5d0404.png"> |
61
135
 
62
136
  # Android
63
- | | | |
64
- |:-------------------------:|:-------------------------:|:-------------------------:|
65
- |<img width="456" alt="Screenshot 2023-03-23 at 5 25 07 PM" src="https://user-images.githubusercontent.com/9849221/227393546-3aba8a28-f437-4f8f-9611-bf300c5af8f2.png"> | <img width="456" alt="Screenshot 2023-03-23 at 5 26 58 PM" src="https://user-images.githubusercontent.com/9849221/227393548-28796d7b-9760-43a9-8ed3-fb1618cd1b7d.png"> | <img width="456" alt="Screenshot 2023-03-23 at 5 28 49 PM" src="https://user-images.githubusercontent.com/9849221/227393554-91ed1a92-d229-4814-84d8-5f9095e8d048.png">|
66
137
 
138
+ | | | |
139
+ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
140
+ | <img width="456" alt="Screenshot 2023-03-23 at 5 25 07 PM" src="https://user-images.githubusercontent.com/9849221/227393546-3aba8a28-f437-4f8f-9611-bf300c5af8f2.png"> | <img width="456" alt="Screenshot 2023-03-23 at 5 26 58 PM" src="https://user-images.githubusercontent.com/9849221/227393548-28796d7b-9760-43a9-8ed3-fb1618cd1b7d.png"> | <img width="456" alt="Screenshot 2023-03-23 at 5 28 49 PM" src="https://user-images.githubusercontent.com/9849221/227393554-91ed1a92-d229-4814-84d8-5f9095e8d048.png"> |
67
141
 
68
142
  ## Props
69
143
 
@@ -75,18 +149,18 @@ For more examples visit our [wiki page](https://github.com/azeezat/react-native-
75
149
  | optionLabel | `string` | `name` |
76
150
  | optionValue | `string` | `code` |
77
151
  | error | `string` | `This is a required field` |
78
- | helperText | `string` | `Only countries in the east are listed` |
152
+ | helperText | `string` | `Only few countries are listed` |
79
153
  | selectedValue | `string` or `Array` | `AL` or `[AL, AX]` |
80
154
  | onValueChange | `function` | `()=>{}` |
81
155
  | isMultiple | `Boolean` | `true` |
82
156
  | isSearchable | `Boolean` | `true` |
83
157
  | disabled | `Boolean` | `true` |
84
158
  | labelStyle | `Object` | `{color: 'red', fontSize: 15, fontWeight: '500'}` |
85
- | placeholderStyle | `Object` | `{color: 'red', fontSize: 15, fontWeight: '500'}` |
159
+ | placeholderStyle | `Object` | `{color: 'blue', fontSize: 15, fontWeight: '500'}` |
86
160
  | dropdownStyle | `Object` | `{borderColor: 'blue', margin: 5, borderWidth:0 ...}` |
87
161
  | dropdownContainerStyle | `Object` | `{backgroundColor: 'red', width: '30%', ...}` |
88
162
  | searchInputStyle | `Object` | `{backgroundColor: 'red', borderRadius: 0, ...}` |
89
- | selectedItemStyle | `Object` | `{backgroundColor: 'red', color: 'yellow', ...}` |
163
+ | selectedItemStyle | `Object` | `{fontWeight: '600', color: 'yellow', ...}` |
90
164
  | multipleSelectedItemStyle | `Object` | `{backgroundColor: 'red', color: 'yellow', ...}` |
91
165
  | modalBackgroundStyle | `Object` | `{backgroundColor: 'rgba(196, 198, 246, 0.5)'}` |
92
166
  | modalOptionsContainer | `Object` | `{padding: 5}` |
@@ -97,7 +171,8 @@ For more examples visit our [wiki page](https://github.com/azeezat/react-native-
97
171
  | checkboxSize | `number` | `20` |
98
172
  | checkboxStyle | `Object` | `{backgroundColor: 'blue', borderRadius: 30, padding: 10}` |
99
173
  | checkboxLabelStyle | `Object` | `{color: 'red', fontWeight:'500'}` |
100
-
174
+ | listHeaderComponent | `React Component` | `<Text> You can add any component to the top of this list <Text>` |
175
+ | listFooterComponent | `React Component` | `<Text> You can add any component to the bottom of this list <Text>` |
101
176
 
102
177
  ## Contributing
103
178
 
@@ -108,5 +183,5 @@ See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the
108
183
  MIT
109
184
 
110
185
  # Video Demo
111
- https://user-images.githubusercontent.com/9849221/230516294-a1aca5a7-65f5-4d9c-9b7f-a057807cf35f.mov
112
186
 
187
+ https://user-images.githubusercontent.com/9849221/232344214-55fa5557-cfdd-42c4-a334-f93c15341b0b.mov
@@ -27,7 +27,7 @@ const CheckBox = _ref => {
27
27
  borderColor: disabled ? _colors.colors.disabled : styles.checkbox.borderColor
28
28
  };
29
29
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
30
- onPress: onChange ? () => onChange(!value) : () => {},
30
+ onPress: onChange ? () => onChange(!value) : null,
31
31
  style: [styles.checkboxContainer],
32
32
  disabled: disabled
33
33
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
@@ -1 +1 @@
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
+ {"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) : null}\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,IAAK;IAClDgB,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"}
@@ -64,11 +64,6 @@ const styles = _reactNative.StyleSheet.create({
64
64
  color: _colors.colors.gray,
65
65
  ..._typography.typography.caption
66
66
  },
67
- inputFocusErrorState: {
68
- borderWidth: 2,
69
- borderStyle: 'solid',
70
- borderColor: _colors.colors.red
71
- },
72
67
  error: {
73
68
  color: _colors.colors.red,
74
69
  marginTop: 8,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownSelectedItemsView","_colors","_typography","obj","__esModule","default","Dropdown","_ref","label","placeholder","helperText","error","getSelectedItemsLabel","handleToggleModal","isMultiple","selectedItem","selectedItems","labelStyle","dropdownStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","createElement","View","style","styles","dropdownInputContainer","Text","helper","StyleSheet","create","marginBottom","color","colors","gray","typography","caption","inputFocusErrorState","borderWidth","borderStyle","borderColor","red","marginTop","primary","width","blackText","black","_default","exports"],"sources":["Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport DropdownSelectedItemsView from './DropdownSelectedItemsView';\nimport { colors } from '../../styles/colors';\nimport { typography } from '../../styles/typography';\n\nconst Dropdown = ({\n label,\n placeholder,\n helperText,\n error,\n getSelectedItemsLabel,\n handleToggleModal,\n isMultiple,\n selectedItem,\n selectedItems,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n selectedItemStyle,\n placeholderStyle,\n multipleSelectedItemStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n primaryColor,\n disabled,\n}: any) => {\n return (\n <View style={[styles.dropdownInputContainer, dropdownContainerStyle]}>\n {label && label !== '' && (\n <Text style={[styles.label, labelStyle]}>{label}</Text>\n )}\n <DropdownSelectedItemsView\n placeholder={placeholder}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n handleToggleModal={handleToggleModal}\n isMultiple={isMultiple}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n dropdownStyle={dropdownStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n primaryColor={primaryColor}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n />\n\n {error && error !== '' && (\n <Text style={[styles.error, dropdownErrorTextStyle]}>{error}</Text>\n )}\n\n {helperText && helperText !== '' && !error && (\n <Text style={[styles.helper, dropdownHelperTextStyle]}>\n {helperText}\n </Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n label: { marginBottom: 16, color: colors.gray, ...typography.caption },\n inputFocusErrorState: {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: colors.red,\n },\n error: { color: colors.red, marginTop: 8, ...typography.caption },\n helper: { marginTop: 8, color: colors.primary, ...typography.caption },\n dropdownInputContainer: { marginBottom: 23, width: '100%' },\n blackText: { color: colors.black },\n});\n\nexport default Dropdown;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DropdownSelectedItemsView","_colors","_typography","obj","__esModule","default","Dropdown","_ref","label","placeholder","helperText","error","getSelectedItemsLabel","handleToggleModal","isMultiple","selectedItem","selectedItems","labelStyle","dropdownStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","createElement","View","style","styles","dropdownInputContainer","Text","helper","StyleSheet","create","marginBottom","color","colors","gray","typography","caption","red","marginTop","primary","width","blackText","black","_default","exports"],"sources":["Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport DropdownSelectedItemsView from './DropdownSelectedItemsView';\nimport { colors } from '../../styles/colors';\nimport { typography } from '../../styles/typography';\n\nconst Dropdown = ({\n label,\n placeholder,\n helperText,\n error,\n getSelectedItemsLabel,\n handleToggleModal,\n isMultiple,\n selectedItem,\n selectedItems,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n selectedItemStyle,\n placeholderStyle,\n multipleSelectedItemStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n primaryColor,\n disabled,\n}: any) => {\n return (\n <View style={[styles.dropdownInputContainer, dropdownContainerStyle]}>\n {label && label !== '' && (\n <Text style={[styles.label, labelStyle]}>{label}</Text>\n )}\n <DropdownSelectedItemsView\n placeholder={placeholder}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n handleToggleModal={handleToggleModal}\n isMultiple={isMultiple}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n dropdownStyle={dropdownStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n primaryColor={primaryColor}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n />\n\n {error && error !== '' && (\n <Text style={[styles.error, dropdownErrorTextStyle]}>{error}</Text>\n )}\n\n {helperText && helperText !== '' && !error && (\n <Text style={[styles.helper, dropdownHelperTextStyle]}>\n {helperText}\n </Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n label: { marginBottom: 16, color: colors.gray, ...typography.caption },\n error: { color: colors.red, marginTop: 8, ...typography.caption },\n helper: { marginTop: 8, color: colors.primary, ...typography.caption },\n dropdownInputContainer: { marginBottom: 23, width: '100%' },\n blackText: { color: colors.black },\n});\n\nexport default Dropdown;\n"],"mappings":"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"}
@@ -31,6 +31,7 @@ const DropdownSelect = _ref => {
31
31
  isMultiple,
32
32
  isSearchable,
33
33
  labelStyle,
34
+ placeholderStyle,
34
35
  dropdownStyle,
35
36
  dropdownContainerStyle,
36
37
  dropdownErrorStyle,
@@ -46,7 +47,8 @@ const DropdownSelect = _ref => {
46
47
  checkboxSize,
47
48
  checkboxStyle,
48
49
  checkboxLabelStyle,
49
- placeholderStyle,
50
+ listHeaderComponent,
51
+ listFooterComponent,
50
52
  ...rest
51
53
  } = _ref;
52
54
  const [newOptions, setNewOptions] = (0, _react.useState)(options ? options : []);
@@ -174,7 +176,7 @@ const DropdownSelect = _ref => {
174
176
  onChangeText: text => onSearch(text),
175
177
  style: searchInputStyle,
176
178
  primaryColor: primary
177
- }), isMultiple && newOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
179
+ }), listHeaderComponent, isMultiple && newOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
178
180
  style: styles.optionsContainerStyle
179
181
  }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
180
182
  onPress: () => {}
@@ -187,6 +189,7 @@ const DropdownSelect = _ref => {
187
189
  checkboxStyle: checkboxStyle,
188
190
  checkboxLabelStyle: checkboxLabelStyle
189
191
  })))),
192
+ ListFooterComponent: listFooterComponent,
190
193
  options: newOptions,
191
194
  optionLabel: optionLabel,
192
195
  optionValue: optionValue,
@@ -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","placeholderStyle","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 placeholderStyle,\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 (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\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 placeholderStyle={placeholderStyle}\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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"}
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","placeholderStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","listHeaderComponent","listFooterComponent","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","ListFooterComponent","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 placeholderStyle,\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 listHeaderComponent,\n listFooterComponent,\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 (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\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 placeholderStyle={placeholderStyle}\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 {listHeaderComponent}\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 ListFooterComponent={listFooterComponent}\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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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type { ViewStyle, ColorValue, TextStyle } from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: any[];\n optionLabel: string;\n optionValue: string;\n onValueChange: Function;\n selectedValue?: string | any[] | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: ViewStyle;\n multipleSelectedItemStyle?: ViewStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainer?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n placeholderStyle?: TextStyle;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type { ViewStyle, ColorValue, TextStyle } from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: any[];\n optionLabel: string;\n optionValue: string;\n onValueChange: Function;\n selectedValue?: string | any[] | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: TextStyle;\n multipleSelectedItemStyle?: ViewStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainer?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n placeholderStyle?: TextStyle;\n listHeaderComponent?: React.ReactNode;\n listFooterComponent?: React.ReactNode;\n};\n"],"mappings":""}
@@ -19,7 +19,7 @@ const CheckBox = _ref => {
19
19
  borderColor: disabled ? colors.disabled : styles.checkbox.borderColor
20
20
  };
21
21
  return /*#__PURE__*/React.createElement(Pressable, {
22
- onPress: onChange ? () => onChange(!value) : () => {},
22
+ onPress: onChange ? () => onChange(!value) : null,
23
23
  style: [styles.checkboxContainer],
24
24
  disabled: disabled
25
25
  }, /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
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
+ {"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) : null}\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,IAAK;IAClDc,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"}
@@ -57,11 +57,6 @@ const styles = StyleSheet.create({
57
57
  color: colors.gray,
58
58
  ...typography.caption
59
59
  },
60
- inputFocusErrorState: {
61
- borderWidth: 2,
62
- borderStyle: 'solid',
63
- borderColor: colors.red
64
- },
65
60
  error: {
66
61
  color: colors.red,
67
62
  marginTop: 8,
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","DropdownSelectedItemsView","colors","typography","Dropdown","_ref","label","placeholder","helperText","error","getSelectedItemsLabel","handleToggleModal","isMultiple","selectedItem","selectedItems","labelStyle","dropdownStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","createElement","style","styles","dropdownInputContainer","helper","create","marginBottom","color","gray","caption","inputFocusErrorState","borderWidth","borderStyle","borderColor","red","marginTop","primary","width","blackText","black"],"sources":["Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport DropdownSelectedItemsView from './DropdownSelectedItemsView';\nimport { colors } from '../../styles/colors';\nimport { typography } from '../../styles/typography';\n\nconst Dropdown = ({\n label,\n placeholder,\n helperText,\n error,\n getSelectedItemsLabel,\n handleToggleModal,\n isMultiple,\n selectedItem,\n selectedItems,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n selectedItemStyle,\n placeholderStyle,\n multipleSelectedItemStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n primaryColor,\n disabled,\n}: any) => {\n return (\n <View style={[styles.dropdownInputContainer, dropdownContainerStyle]}>\n {label && label !== '' && (\n <Text style={[styles.label, labelStyle]}>{label}</Text>\n )}\n <DropdownSelectedItemsView\n placeholder={placeholder}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n handleToggleModal={handleToggleModal}\n isMultiple={isMultiple}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n dropdownStyle={dropdownStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n primaryColor={primaryColor}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n />\n\n {error && error !== '' && (\n <Text style={[styles.error, dropdownErrorTextStyle]}>{error}</Text>\n )}\n\n {helperText && helperText !== '' && !error && (\n <Text style={[styles.helper, dropdownHelperTextStyle]}>\n {helperText}\n </Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n label: { marginBottom: 16, color: colors.gray, ...typography.caption },\n inputFocusErrorState: {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: colors.red,\n },\n error: { color: colors.red, marginTop: 8, ...typography.caption },\n helper: { marginTop: 8, color: colors.primary, ...typography.caption },\n dropdownInputContainer: { marginBottom: 23, width: '100%' },\n blackText: { color: colors.black },\n});\n\nexport default Dropdown;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","DropdownSelectedItemsView","colors","typography","Dropdown","_ref","label","placeholder","helperText","error","getSelectedItemsLabel","handleToggleModal","isMultiple","selectedItem","selectedItems","labelStyle","dropdownStyle","dropdownContainerStyle","selectedItemStyle","placeholderStyle","multipleSelectedItemStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","primaryColor","disabled","createElement","style","styles","dropdownInputContainer","helper","create","marginBottom","color","gray","caption","red","marginTop","primary","width","blackText","black"],"sources":["Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport DropdownSelectedItemsView from './DropdownSelectedItemsView';\nimport { colors } from '../../styles/colors';\nimport { typography } from '../../styles/typography';\n\nconst Dropdown = ({\n label,\n placeholder,\n helperText,\n error,\n getSelectedItemsLabel,\n handleToggleModal,\n isMultiple,\n selectedItem,\n selectedItems,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n selectedItemStyle,\n placeholderStyle,\n multipleSelectedItemStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n primaryColor,\n disabled,\n}: any) => {\n return (\n <View style={[styles.dropdownInputContainer, dropdownContainerStyle]}>\n {label && label !== '' && (\n <Text style={[styles.label, labelStyle]}>{label}</Text>\n )}\n <DropdownSelectedItemsView\n placeholder={placeholder}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n handleToggleModal={handleToggleModal}\n isMultiple={isMultiple}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n dropdownStyle={dropdownStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n primaryColor={primaryColor}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n />\n\n {error && error !== '' && (\n <Text style={[styles.error, dropdownErrorTextStyle]}>{error}</Text>\n )}\n\n {helperText && helperText !== '' && !error && (\n <Text style={[styles.helper, dropdownHelperTextStyle]}>\n {helperText}\n </Text>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n label: { marginBottom: 16, color: colors.gray, ...typography.caption },\n error: { color: colors.red, marginTop: 8, ...typography.caption },\n helper: { marginTop: 8, color: colors.primary, ...typography.caption },\n dropdownInputContainer: { marginBottom: 23, width: '100%' },\n blackText: { color: colors.black },\n});\n\nexport default Dropdown;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,OAAOC,yBAAyB,MAAM,6BAA6B;AACnE,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,UAAU,QAAQ,yBAAyB;AAEpD,MAAMC,QAAQ,GAAGC,IAAA,IAqBN;EAAA,IArBO;IAChBC,KAAK;IACLC,WAAW;IACXC,UAAU;IACVC,KAAK;IACLC,qBAAqB;IACrBC,iBAAiB;IACjBC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,UAAU;IACVC,aAAa;IACbC,sBAAsB;IACtBC,iBAAiB;IACjBC,gBAAgB;IAChBC,yBAAyB;IACzBC,kBAAkB;IAClBC,sBAAsB;IACtBC,uBAAuB;IACvBC,YAAY;IACZC;EACG,CAAC,GAAApB,IAAA;EACJ,oBACER,KAAA,CAAA6B,aAAA,CAAC5B,IAAI;IAAC6B,KAAK,EAAE,CAACC,MAAM,CAACC,sBAAsB,EAAEZ,sBAAsB;EAAE,GAClEX,KAAK,IAAIA,KAAK,KAAK,EAAE,iBACpBT,KAAA,CAAA6B,aAAA,CAAC3B,IAAI;IAAC4B,KAAK,EAAE,CAACC,MAAM,CAACtB,KAAK,EAAES,UAAU;EAAE,GAAET,KAAK,CAChD,eACDT,KAAA,CAAA6B,aAAA,CAACzB,yBAAyB;IACxBM,WAAW,EAAEA,WAAY;IACzBE,KAAK,EAAEA,KAAM;IACbC,qBAAqB,EAAEA,qBAAsB;IAC7CC,iBAAiB,EAAEA,iBAAkB;IACrCC,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BE,aAAa,EAAEA,aAAc;IAC7BE,iBAAiB,EAAEA,iBAAkB;IACrCE,yBAAyB,EAAEA,yBAA0B;IACrDC,kBAAkB,EAAEA,kBAAmB;IACvCG,YAAY,EAAEA,YAAa;IAC3BC,QAAQ,EAAEA,QAAS;IACnBN,gBAAgB,EAAEA;EAAiB,EACnC,EAEDV,KAAK,IAAIA,KAAK,KAAK,EAAE,iBACpBZ,KAAA,CAAA6B,aAAA,CAAC3B,IAAI;IAAC4B,KAAK,EAAE,CAACC,MAAM,CAACnB,KAAK,EAAEa,sBAAsB;EAAE,GAAEb,KAAK,CAC5D,EAEAD,UAAU,IAAIA,UAAU,KAAK,EAAE,IAAI,CAACC,KAAK,iBACxCZ,KAAA,CAAA6B,aAAA,CAAC3B,IAAI;IAAC4B,KAAK,EAAE,CAACC,MAAM,CAACE,MAAM,EAAEP,uBAAuB;EAAE,GACnDf,UAAU,CAEd,CACI;AAEX,CAAC;AAED,MAAMoB,MAAM,GAAG5B,UAAU,CAAC+B,MAAM,CAAC;EAC/BzB,KAAK,EAAE;IAAE0B,YAAY,EAAE,EAAE;IAAEC,KAAK,EAAE/B,MAAM,CAACgC,IAAI;IAAE,GAAG/B,UAAU,CAACgC;EAAQ,CAAC;EACtE1B,KAAK,EAAE;IAAEwB,KAAK,EAAE/B,MAAM,CAACkC,GAAG;IAAEC,SAAS,EAAE,CAAC;IAAE,GAAGlC,UAAU,CAACgC;EAAQ,CAAC;EACjEL,MAAM,EAAE;IAAEO,SAAS,EAAE,CAAC;IAAEJ,KAAK,EAAE/B,MAAM,CAACoC,OAAO;IAAE,GAAGnC,UAAU,CAACgC;EAAQ,CAAC;EACtEN,sBAAsB,EAAE;IAAEG,YAAY,EAAE,EAAE;IAAEO,KAAK,EAAE;EAAO,CAAC;EAC3DC,SAAS,EAAE;IAAEP,KAAK,EAAE/B,MAAM,CAACuC;EAAM;AACnC,CAAC,CAAC;AAEF,eAAerC,QAAQ"}
@@ -22,6 +22,7 @@ export const DropdownSelect = _ref => {
22
22
  isMultiple,
23
23
  isSearchable,
24
24
  labelStyle,
25
+ placeholderStyle,
25
26
  dropdownStyle,
26
27
  dropdownContainerStyle,
27
28
  dropdownErrorStyle,
@@ -37,7 +38,8 @@ export const DropdownSelect = _ref => {
37
38
  checkboxSize,
38
39
  checkboxStyle,
39
40
  checkboxLabelStyle,
40
- placeholderStyle,
41
+ listHeaderComponent,
42
+ listFooterComponent,
41
43
  ...rest
42
44
  } = _ref;
43
45
  const [newOptions, setNewOptions] = useState(options ? options : []);
@@ -165,7 +167,7 @@ export const DropdownSelect = _ref => {
165
167
  onChangeText: text => onSearch(text),
166
168
  style: searchInputStyle,
167
169
  primaryColor: primary
168
- }), isMultiple && newOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
170
+ }), listHeaderComponent, isMultiple && newOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
169
171
  style: styles.optionsContainerStyle
170
172
  }, /*#__PURE__*/React.createElement(TouchableOpacity, {
171
173
  onPress: () => {}
@@ -178,6 +180,7 @@ export const DropdownSelect = _ref => {
178
180
  checkboxStyle: checkboxStyle,
179
181
  checkboxLabelStyle: checkboxLabelStyle
180
182
  })))),
183
+ ListFooterComponent: listFooterComponent,
181
184
  options: newOptions,
182
185
  optionLabel: optionLabel,
183
186
  optionValue: optionValue,
@@ -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","placeholderStyle","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 placeholderStyle,\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 (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\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 placeholderStyle={placeholderStyle}\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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"}
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","placeholderStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","listHeaderComponent","listFooterComponent","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","ListFooterComponent","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 placeholderStyle,\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 listHeaderComponent,\n listFooterComponent,\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 (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\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 placeholderStyle={placeholderStyle}\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 {listHeaderComponent}\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 ListFooterComponent={listFooterComponent}\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":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACjE,OAAOC,QAAQ,MAAM,gCAAgC;AACrD,OAAOC,YAAY,MAAM,oCAAoC;AAC7D,OAAOC,WAAW,MAAM,0BAA0B;AAClD,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,oBAAoB,EAAEC,oBAAoB,QAAQ,aAAa;AAGxE,OAAO,MAAMC,cAAc,GAAGC,IAAA,IAgCT;EAAA,IAhCU;IAC7BC,WAAW;IACXC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,aAAa;IACbC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,gBAAgB;IAChBC,aAAa;IACbC,sBAAsB;IACtBC,kBAAkB;IAClBC,sBAAsB;IACtBC,uBAAuB;IACvBC,iBAAiB;IACjBC,yBAAyB;IACzBC,oBAAoB;IACpBC,qBAAqB;IACrBC,gBAAgB;IAChBC,YAAY;IACZC,QAAQ;IACRC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC,mBAAmB;IACnBC,mBAAmB;IACnB,GAAGC;EACU,CAAC,GAAA/B,IAAA;EACd,MAAM,CAACgC,UAAU,EAAEC,aAAa,CAAC,GAAG9C,QAAQ,CAACkB,OAAO,GAAGA,OAAO,GAAG,EAAE,CAAC;EACpE,MAAM,CAAC6B,IAAI,EAAEC,OAAO,CAAC,GAAGhD,QAAQ,CAAC,KAAK,CAAC;EACvC,MAAM,CAACiD,SAAS,EAAEC,YAAY,CAAC,GAAGlD,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACmD,YAAY,EAAEC,eAAe,CAAC,GAAGpD,QAAQ,CAACsB,aAAa,CAAC,CAAC,CAAC;EACjE,MAAM,CAAC+B,aAAa,EAAEC,gBAAgB,CAAC,GAAGtD,QAAQ,CAChDuD,KAAK,CAACC,OAAO,CAAClC,aAAa,CAAC,GACxBA,aAAa,GACbA,aAAa,KAAK,EAAE,IAAIA,aAAa,KAAKmC,SAAS,GACnD,EAAE,GACF,CAACnC,aAAa,CAAC,CACpB,CAAC,CAAC;EACH,MAAM,CAACoC,WAAW,EAAEC,cAAc,CAAC,GAAG3D,QAAQ,CAAC,EAAE,CAAC;;EAElD;AACF;AACA;EACE,MAAM4D,qBAAqB,GAAIC,KAAU,IAAK;IAC5C,IAAIV,YAAY,KAAKU,KAAK,EAAE;MAC1BT,eAAe,CAAC,IAAI,CAAC;IACvB,CAAC,MAAM;MACLA,eAAe,CAACS,KAAK,CAAC;MACtBxC,aAAa,CAACwC,KAAK,CAAC,CAAC,CAAC;MACtBb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClB;EACF,CAAC;;EAED,MAAMc,wBAAwB,GAAID,KAAU,IAAK;IAC/C,IAAIE,cAAc,GAAG,CAAC,GAAGV,aAAa,CAAC;IAEvC,IAAIU,cAAc,CAACC,QAAQ,CAACH,KAAK,CAAC,EAAE;MAClCE,cAAc,GAAGA,cAAc,CAACE,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKL,KAAK,CAAC;IAClE,CAAC,MAAM;MACLE,cAAc,CAACI,IAAI,CAACN,KAAK,CAAC;IAC5B;IACAP,gBAAgB,CAACS,cAAc,CAAC;IAChC1C,aAAa,CAAC0C,cAAc,CAAC,CAAC,CAAC;;IAE/B,IACE7C,OAAO,CAAC+C,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,CAAC5B,QAAQ,CAAC,CAAC8B,MAAM,KAAKL,cAAc,CAACK,MAAM,EACzE;MACAlB,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,MAAM;MACLA,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC;EAED,MAAMmB,eAAe,GAAGA,CAAA,KAAM;IAC5BnB,YAAY,CAAEoB,OAAO,IAAK;MACxB,MAAMP,cAAc,GAAG,EAAE;MACzB,MAAMQ,eAAe,GAAG1B,UAAU,CAACoB,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,CAAC5B,QAAQ,CAAC,CAAC,CAAC;MACrE,IAAI,CAACgC,OAAO,EAAE;QACZ,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,eAAe,CAACH,MAAM,EAAEI,CAAC,EAAE,EAAE;UAC/CT,cAAc,CAACI,IAAI,CAACI,eAAe,CAACC,CAAC,CAAC,CAACpD,WAAW,CAAC,CAAC;QACtD;MACF;MAEAkC,gBAAgB,CAACS,cAAc,CAAC;MAChC1C,aAAa,CAAC0C,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAO,CAACO,OAAO;IACjB,CAAC,CAAC;EACJ,CAAC;;EAED;AACF;AACA;EACE,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;IAClC,IAAIlD,UAAU,EAAE;MACd,IAAImD,cAA6B,GAAG,EAAE;MACtCrB,aAAa,IACXA,aAAa,CAACsB,OAAO,CAAEC,OAAO,IAAK;QAAA,IAAAC,aAAA;QACjC,IAAIC,iBAAiB,GACnB5D,OAAO,MAAA2D,aAAA,GACP3D,OAAO,CAAC6D,IAAI,CACTb,IAAS,IACRA,IAAI,CAAC9C,WAAW,IAAIT,oBAAoB,CAAC,KAAKiE,OAAO,CACxD,cAAAC,aAAA,uBAHDA,aAAA,CAGI1D,WAAW,CAAC;QAClBuD,cAAc,CAACP,IAAI,CAACW,iBAAiB,CAAC;MACxC,CAAC,CAAC;MACJ,OAAOJ,cAAc;IACvB;IAEA,IAAII,iBAAiB,GACnB5D,OAAO,IACPA,OAAO,CAAC6D,IAAI,CACTb,IAAS,IACRA,IAAI,CAAC9C,WAAW,IAAIT,oBAAoB,CAAC,KAAKwC,YAAY,CAC7D;IACH,OAAO2B,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG3D,WAAW,IAAIT,oBAAoB,CAAC;EACjE,CAAC;;EAED;AACF;AACA;EACE,MAAMsE,QAAQ,GAAInB,KAAa,IAAK;IAClCF,cAAc,CAACE,KAAK,CAAC;IAErB,IAAIoB,UAAU,GAAGpB,KAAK,CAACqB,QAAQ,EAAE,CAACC,iBAAiB,EAAE,CAACC,IAAI,EAAE;IAE5D,MAAMC,WAAW,GAAG,IAAIC,MAAM,CAACL,UAAU,EAAE,GAAG,CAAC;IAE/C,MAAMM,aAAa,GAAGrE,OAAO,CAAC+C,MAAM,CAAEC,IAAS,IAAK;MAClD,IACEA,IAAI,CAAC/C,WAAW,IAAIT,oBAAoB,CAAC,CACtCwE,QAAQ,EAAE,CACVM,WAAW,EAAE,CACbC,MAAM,CAACJ,WAAW,CAAC,KAAK,CAAC,CAAC,IAC7BnB,IAAI,CAAC9C,WAAW,IAAIT,oBAAoB,CAAC,CACtCuE,QAAQ,CAACG,WAAW,CAAC,CACrBG,WAAW,EAAE,CACbC,MAAM,CAACJ,WAAW,CAAC,KAAK,CAAC,CAAC,EAC7B;QACA,OAAOnB,IAAI;MACb;IACF,CAAC,CAAC;IAEFpB,aAAa,CAACyC,aAAa,CAAC;EAC9B,CAAC;;EAED;AACF;AACA;EACE,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;IAC9B1C,OAAO,CAAC,CAACD,IAAI,CAAC;IACdY,cAAc,CAAC,EAAE,CAAC;IAClBb,aAAa,CAAC5B,OAAO,CAAC;EACxB,CAAC;EAED,IAAIyE,OAAO,GAAGtD,YAAY,IAAI5B,MAAM,CAACmF,IAAI;EACzC,oBACE7F,KAAA,CAAA8F,aAAA,CAAA9F,KAAA,CAAA+F,QAAA,qBACE/F,KAAA,CAAA8F,aAAA,CAACzF,QAAQ,EAAA2F,QAAA;IACPhF,KAAK,EAAEA,KAAM;IACbD,WAAW,EAAEA,WAAY;IACzBG,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACbyD,qBAAqB,EAAEA,qBAAsB;IAC7CtB,YAAY,EAAEA,YAAa;IAC3BE,aAAa,EAAEA,aAAc;IAC7BqC,iBAAiB,EAAEA,iBAAkB;IACrCjE,UAAU,EAAEA,UAAW;IACvBE,aAAa,EAAEA,aAAc;IAC7BC,sBAAsB,EAAEA,sBAAuB;IAC/CC,kBAAkB,EAAEA,kBAAmB;IACvCC,sBAAsB,EAAEA,sBAAuB;IAC/CC,uBAAuB,EAAEA,uBAAwB;IACjDC,iBAAiB,EAAEA,iBAAkB;IACrCC,yBAAyB,EAAEA,yBAA0B;IACrDV,UAAU,EAAEA,UAAW;IACvBc,YAAY,EAAEsD,OAAQ;IACtBrD,QAAQ,EAAEA,QAAS;IACnBZ,gBAAgB,EAAEA;EAAiB,GAC/BkB,IAAI,EACR,eACF7C,KAAA,CAAA8F,aAAA,CAACvF,WAAW;IACVyC,IAAI,EAAEA,IAAK;IACX2C,iBAAiB,EAAEA,iBAAkB;IACrCxD,oBAAoB,EAAEA,oBAAqB;IAC3CC,qBAAqB,EAAEA,qBAAsB;IAC7C6D,cAAc,EAAEA,CAAA,KAAM,CAAC;EAAE,gBAEzBjG,KAAA,CAAA8F,aAAA,CAACxF,YAAY;IACX4F,mBAAmB,eACjBlG,KAAA,CAAA8F,aAAA,CAAA9F,KAAA,CAAA+F,QAAA,QACGtE,YAAY,iBACXzB,KAAA,CAAA8F,aAAA,CAACtF,KAAK;MACJsD,KAAK,EAAEH,WAAY;MACnBwC,YAAY,EAAGC,IAAY,IAAKnB,QAAQ,CAACmB,IAAI,CAAE;MAC/CC,KAAK,EAAEhE,gBAAiB;MACxBC,YAAY,EAAEsD;IAAQ,EAEzB,EACAjD,mBAAmB,EACnBnB,UAAU,IAAIsB,UAAU,CAACuB,MAAM,GAAG,CAAC,iBAClCrE,KAAA,CAAA8F,aAAA,CAAC1F,IAAI;MAACiG,KAAK,EAAEC,MAAM,CAACC;IAAsB,gBACxCvG,KAAA,CAAA8F,aAAA,CAAC5F,gBAAgB;MAACsG,OAAO,EAAEA,CAAA,KAAM,CAAC;IAAE,gBAClCxG,KAAA,CAAA8F,aAAA,CAACrF,QAAQ;MACPqD,KAAK,EAAEZ,SAAU;MACjBlC,KAAK,EAAEkC,SAAS,GAAG,WAAW,GAAG,YAAa;MAC9CuD,QAAQ,EAAEA,CAAA,KAAMnC,eAAe,EAAG;MAClChC,YAAY,EAAEsD,OAAQ;MACtBpD,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEA,aAAc;MAC7BC,kBAAkB,EAAEA;IAAmB,EACvC,CACe,CAEtB,CAEJ;IACDgE,mBAAmB,EAAE9D,mBAAoB;IACzCzB,OAAO,EAAE2B,UAAW;IACpB1B,WAAW,EAAEA,WAAY;IACzBC,WAAW,EAAEA,WAAY;IACzBG,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3B6B,aAAa,EAAEA,aAAc;IAC7BF,YAAY,EAAEA,YAAa;IAC3BW,wBAAwB,EAAEA,wBAAyB;IACnDF,qBAAqB,EAAEA,qBAAsB;IAC7CvB,YAAY,EAAEsD,OAAQ;IACtBpD,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BC,kBAAkB,EAAEA;EAAmB,EACvC,CACU,CACb;AAEP,CAAC;AAED,MAAM4D,MAAM,GAAGnG,UAAU,CAACwG,MAAM,CAAC;EAC/BJ,qBAAqB,EAAE;IACrBK,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEF,eAAejG,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type { ViewStyle, ColorValue, TextStyle } from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: any[];\n optionLabel: string;\n optionValue: string;\n onValueChange: Function;\n selectedValue?: string | any[] | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: ViewStyle;\n multipleSelectedItemStyle?: ViewStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainer?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n placeholderStyle?: TextStyle;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type { ViewStyle, ColorValue, TextStyle } from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: any[];\n optionLabel: string;\n optionValue: string;\n onValueChange: Function;\n selectedValue?: string | any[] | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: TextStyle;\n multipleSelectedItemStyle?: ViewStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainer?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n placeholderStyle?: TextStyle;\n listHeaderComponent?: React.ReactNode;\n listFooterComponent?: React.ReactNode;\n};\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import type { DropdownProps } from './types/index.types';
3
- export declare const DropdownSelect: ({ 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, placeholderStyle, ...rest }: DropdownProps) => JSX.Element;
3
+ export declare const DropdownSelect: ({ placeholder, label, error, helperText, options, optionLabel, optionValue, onValueChange, selectedValue, isMultiple, isSearchable, labelStyle, placeholderStyle, dropdownStyle, dropdownContainerStyle, dropdownErrorStyle, dropdownErrorTextStyle, dropdownHelperTextStyle, selectedItemStyle, multipleSelectedItemStyle, modalBackgroundStyle, modalOptionsContainer, searchInputStyle, primaryColor, disabled, checkboxSize, checkboxStyle, checkboxLabelStyle, listHeaderComponent, listFooterComponent, ...rest }: DropdownProps) => JSX.Element;
4
4
  export default DropdownSelect;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { ViewStyle, ColorValue, TextStyle } from 'react-native';
2
3
  export type DropdownProps = {
3
4
  placeholder?: string;
@@ -17,7 +18,7 @@ export type DropdownProps = {
17
18
  dropdownErrorStyle?: ViewStyle;
18
19
  dropdownErrorTextStyle?: TextStyle;
19
20
  dropdownHelperTextStyle?: TextStyle;
20
- selectedItemStyle?: ViewStyle;
21
+ selectedItemStyle?: TextStyle;
21
22
  multipleSelectedItemStyle?: ViewStyle;
22
23
  modalBackgroundStyle?: ViewStyle;
23
24
  modalOptionsContainer?: ViewStyle;
@@ -28,4 +29,6 @@ export type DropdownProps = {
28
29
  checkboxStyle?: ViewStyle;
29
30
  checkboxLabelStyle?: TextStyle;
30
31
  placeholderStyle?: TextStyle;
32
+ listHeaderComponent?: React.ReactNode;
33
+ listFooterComponent?: React.ReactNode;
31
34
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-input-select",
3
- "version": "0.27.0",
3
+ "version": "0.29.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",
@@ -26,7 +26,7 @@ const CheckBox = ({
26
26
 
27
27
  return (
28
28
  <Pressable
29
- onPress={onChange ? () => onChange(!value) : () => {}}
29
+ onPress={onChange ? () => onChange(!value) : null}
30
30
  style={[styles.checkboxContainer]}
31
31
  disabled={disabled}
32
32
  >
@@ -63,11 +63,6 @@ const Dropdown = ({
63
63
 
64
64
  const styles = StyleSheet.create({
65
65
  label: { marginBottom: 16, color: colors.gray, ...typography.caption },
66
- inputFocusErrorState: {
67
- borderWidth: 2,
68
- borderStyle: 'solid',
69
- borderColor: colors.red,
70
- },
71
66
  error: { color: colors.red, marginTop: 8, ...typography.caption },
72
67
  helper: { marginTop: 8, color: colors.primary, ...typography.caption },
73
68
  dropdownInputContainer: { marginBottom: 23, width: '100%' },
package/src/index.tsx CHANGED
@@ -22,6 +22,7 @@ export const DropdownSelect = ({
22
22
  isMultiple,
23
23
  isSearchable,
24
24
  labelStyle,
25
+ placeholderStyle,
25
26
  dropdownStyle,
26
27
  dropdownContainerStyle,
27
28
  dropdownErrorStyle,
@@ -37,7 +38,8 @@ export const DropdownSelect = ({
37
38
  checkboxSize,
38
39
  checkboxStyle,
39
40
  checkboxLabelStyle,
40
- placeholderStyle,
41
+ listHeaderComponent,
42
+ listFooterComponent,
41
43
  ...rest
42
44
  }: DropdownProps) => {
43
45
  const [newOptions, setNewOptions] = useState(options ? options : []);
@@ -211,6 +213,7 @@ export const DropdownSelect = ({
211
213
  primaryColor={primary}
212
214
  />
213
215
  )}
216
+ {listHeaderComponent}
214
217
  {isMultiple && newOptions.length > 1 && (
215
218
  <View style={styles.optionsContainerStyle}>
216
219
  <TouchableOpacity onPress={() => {}}>
@@ -228,6 +231,7 @@ export const DropdownSelect = ({
228
231
  )}
229
232
  </>
230
233
  }
234
+ ListFooterComponent={listFooterComponent}
231
235
  options={newOptions}
232
236
  optionLabel={optionLabel}
233
237
  optionValue={optionValue}
@@ -18,7 +18,7 @@ export type DropdownProps = {
18
18
  dropdownErrorStyle?: ViewStyle;
19
19
  dropdownErrorTextStyle?: TextStyle;
20
20
  dropdownHelperTextStyle?: TextStyle;
21
- selectedItemStyle?: ViewStyle;
21
+ selectedItemStyle?: TextStyle;
22
22
  multipleSelectedItemStyle?: ViewStyle;
23
23
  modalBackgroundStyle?: ViewStyle;
24
24
  modalOptionsContainer?: ViewStyle;
@@ -29,4 +29,6 @@ export type DropdownProps = {
29
29
  checkboxStyle?: ViewStyle;
30
30
  checkboxLabelStyle?: TextStyle;
31
31
  placeholderStyle?: TextStyle;
32
+ listHeaderComponent?: React.ReactNode;
33
+ listFooterComponent?: React.ReactNode;
32
34
  };