react-native-input-select 1.3.4 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -18
- package/lib/commonjs/components/CustomModal/index.js +17 -4
- package/lib/commonjs/components/CustomModal/index.js.map +1 -1
- package/lib/commonjs/components/Dropdown/DropdownFlatList.js +7 -2
- package/lib/commonjs/components/Dropdown/DropdownFlatList.js.map +1 -1
- package/lib/commonjs/components/Dropdown/DropdownListItem.js +3 -1
- package/lib/commonjs/components/Dropdown/DropdownListItem.js.map +1 -1
- package/lib/commonjs/components/Dropdown/DropdownSectionList.js +6 -1
- package/lib/commonjs/components/Dropdown/DropdownSectionList.js.map +1 -1
- package/lib/commonjs/index.js +3 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/CustomModal/index.js +18 -5
- package/lib/module/components/CustomModal/index.js.map +1 -1
- package/lib/module/components/Dropdown/DropdownFlatList.js +7 -2
- package/lib/module/components/Dropdown/DropdownFlatList.js.map +1 -1
- package/lib/module/components/Dropdown/DropdownListItem.js +3 -1
- package/lib/module/components/Dropdown/DropdownListItem.js.map +1 -1
- package/lib/module/components/Dropdown/DropdownSectionList.js +6 -1
- package/lib/module/components/Dropdown/DropdownSectionList.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/Dropdown/DropdownFlatList.d.ts +1 -1
- package/lib/typescript/components/Dropdown/DropdownListItem.d.ts +1 -1
- package/lib/typescript/components/Dropdown/DropdownSectionList.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/CustomModal/index.tsx +47 -24
- package/src/components/Dropdown/DropdownFlatList.tsx +5 -2
- package/src/components/Dropdown/DropdownListItem.tsx +2 -0
- package/src/components/Dropdown/DropdownSectionList.tsx +5 -2
- package/src/index.tsx +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Modal","
|
|
1
|
+
{"version":3,"names":["React","KeyboardAvoidingView","Modal","Platform","SafeAreaView","StyleSheet","TouchableOpacity","TouchableWithoutFeedback","colors","ModalContentWrapper","_ref","children","OS","createElement","style","flex","behavior","Fragment","CustomModal","_ref2","visible","onRequestClose","modalBackgroundStyle","modalOptionsContainerStyle","modalControls","modalProps","_extends","transparent","animationType","onPress","styles","modalContainer","modalOptionsContainer","create","justifyContent","backgroundColor","maxHeight","white","borderTopLeftRadius","borderTopRightRadius","zIndex"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\nimport {\n KeyboardAvoidingView,\n Modal,\n ModalProps,\n Platform,\n SafeAreaView,\n StyleSheet,\n TouchableOpacity,\n TouchableWithoutFeedback,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\nimport { TCustomModalControls } from 'src/types/index.types';\n\ntype ScreenWrapperProps = {\n children: React.ReactNode;\n};\n\n// In iOS, `SafeAreaView` does not automatically account on keyboard.\n// Therefore, for iOS we need to wrap the content in `KeyboardAvoidingView`.\nconst ModalContentWrapper = ({\n children,\n}: ScreenWrapperProps): ReactElement => {\n return Platform.OS === 'ios' ? (\n <KeyboardAvoidingView style={[{ flex: 1 }]} behavior=\"padding\">\n {children}\n </KeyboardAvoidingView>\n ) : (\n <>{children}</>\n );\n};\n\nconst CustomModal = ({\n visible,\n onRequestClose,\n modalBackgroundStyle, //kept for backwards compatibility\n modalOptionsContainerStyle, //kept for backwards compatibility\n modalControls,\n modalProps, //kept for backwards compatibility\n children,\n}: TCustomModalControls & ModalProps) => {\n return (\n <Modal\n transparent={true}\n visible={visible}\n onRequestClose={() => onRequestClose?.()}\n animationType=\"fade\"\n {...modalControls?.modalProps}\n {...modalProps} //kept for backwards compatibility\n >\n {/*Used to fix the select with search box behavior in iOS*/}\n <ModalContentWrapper>\n <TouchableOpacity\n onPress={() => onRequestClose?.()}\n style={[\n styles.modalContainer,\n styles.modalBackgroundStyle,\n modalControls?.modalBackgroundStyle || modalBackgroundStyle,\n ]}\n >\n {/* Added this `TouchableWithoutFeedback` wrapper because of the closing modal on expo web */}\n <TouchableWithoutFeedback onPress={() => {}}>\n <SafeAreaView\n style={[\n styles.modalOptionsContainer,\n modalControls?.modalOptionsContainerStyle ||\n modalOptionsContainerStyle,\n ]}\n >\n {children}\n </SafeAreaView>\n </TouchableWithoutFeedback>\n </TouchableOpacity>\n </ModalContentWrapper>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n modalContainer: {\n flex: 1,\n justifyContent: 'flex-end',\n },\n modalBackgroundStyle: { backgroundColor: 'rgba(0, 0, 0, 0.5)' },\n modalOptionsContainer: {\n maxHeight: '50%',\n backgroundColor: colors.white,\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n zIndex: 5,\n },\n});\n\nexport default CustomModal;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAwB,OAAO;AAC3C,SACEC,oBAAoB,EACpBC,KAAK,EAELC,QAAQ,EACRC,YAAY,EACZC,UAAU,EACVC,gBAAgB,EAChBC,wBAAwB,QACnB,cAAc;AACrB,SAASC,MAAM,QAAQ,qBAAqB;AAO5C;AACA;AACA,MAAMC,mBAAmB,GAAGC,IAAA,IAEY;EAAA,IAFX;IAC3BC;EACkB,CAAC,GAAAD,IAAA;EACnB,OAAOP,QAAQ,CAACS,EAAE,KAAK,KAAK,gBAC1BZ,KAAA,CAAAa,aAAA,CAACZ,oBAAoB;IAACa,KAAK,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAE,CAAC,CAAE;IAACC,QAAQ,EAAC;EAAS,GAC3DL,QACmB,CAAC,gBAEvBX,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAiB,QAAA,QAAGN,QAAW,CACf;AACH,CAAC;AAED,MAAMO,WAAW,GAAGC,KAAA,IAQqB;EAAA,IARpB;IACnBC,OAAO;IACPC,cAAc;IACdC,oBAAoB;IAAE;IACtBC,0BAA0B;IAAE;IAC5BC,aAAa;IACbC,UAAU;IAAE;IACZd;EACiC,CAAC,GAAAQ,KAAA;EAClC,oBACEnB,KAAA,CAAAa,aAAA,CAACX,KAAK,EAAAwB,QAAA;IACJC,WAAW,EAAE,IAAK;IAClBP,OAAO,EAAEA,OAAQ;IACjBC,cAAc,EAAEA,CAAA,KAAMA,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG,CAAE;IACzCO,aAAa,EAAC;EAAM,GAChBJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEC,UAAU,EACzBA,UAAU,gBAGdzB,KAAA,CAAAa,aAAA,CAACJ,mBAAmB,qBAClBT,KAAA,CAAAa,aAAA,CAACP,gBAAgB;IACfuB,OAAO,EAAEA,CAAA,KAAMR,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG,CAAE;IAClCP,KAAK,EAAE,CACLgB,MAAM,CAACC,cAAc,EACrBD,MAAM,CAACR,oBAAoB,EAC3B,CAAAE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,oBAAoB,KAAIA,oBAAoB;EAC3D,gBAGFtB,KAAA,CAAAa,aAAA,CAACN,wBAAwB;IAACsB,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,gBAC1C7B,KAAA,CAAAa,aAAA,CAACT,YAAY;IACXU,KAAK,EAAE,CACLgB,MAAM,CAACE,qBAAqB,EAC5B,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAED,0BAA0B,KACvCA,0BAA0B;EAC5B,GAEDZ,QACW,CACU,CACV,CACC,CAChB,CAAC;AAEZ,CAAC;AAED,MAAMmB,MAAM,GAAGzB,UAAU,CAAC4B,MAAM,CAAC;EAC/BF,cAAc,EAAE;IACdhB,IAAI,EAAE,CAAC;IACPmB,cAAc,EAAE;EAClB,CAAC;EACDZ,oBAAoB,EAAE;IAAEa,eAAe,EAAE;EAAqB,CAAC;EAC/DH,qBAAqB,EAAE;IACrBI,SAAS,EAAE,KAAK;IAChBD,eAAe,EAAE3B,MAAM,CAAC6B,KAAK;IAC7BC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAetB,WAAW"}
|
|
@@ -24,6 +24,7 @@ const DropdownFlatList = _ref => {
|
|
|
24
24
|
// kept for backwards compatibility to be removed in future release
|
|
25
25
|
checkboxComponentStyles,
|
|
26
26
|
checkboxComponent,
|
|
27
|
+
checkboxControls,
|
|
27
28
|
listComponentStyles,
|
|
28
29
|
listIndex,
|
|
29
30
|
emptyListMessage,
|
|
@@ -71,7 +72,10 @@ const DropdownFlatList = _ref => {
|
|
|
71
72
|
checkboxLabelStyle,
|
|
72
73
|
// kept for backwards compatibility
|
|
73
74
|
checkboxComponentStyles,
|
|
74
|
-
|
|
75
|
+
// kept for backwards compatibility
|
|
76
|
+
checkboxComponent,
|
|
77
|
+
// kept for backwards compatibility
|
|
78
|
+
checkboxControls
|
|
75
79
|
}),
|
|
76
80
|
keyExtractor: (_item, index) => `Options${index}`,
|
|
77
81
|
ref: flatlistRef,
|
|
@@ -102,7 +106,8 @@ const _renderItem = (_ref3, props) => {
|
|
|
102
106
|
checkboxLabelStyle: props.checkboxLabelStyle,
|
|
103
107
|
scrollToItem: props.scrollToItem,
|
|
104
108
|
checkboxComponentStyles: props.checkboxComponentStyles,
|
|
105
|
-
checkboxComponent: props.checkboxComponent
|
|
109
|
+
checkboxComponent: props.checkboxComponent,
|
|
110
|
+
checkboxControls: props.checkboxControls
|
|
106
111
|
});
|
|
107
112
|
};
|
|
108
113
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","FlatList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","flatlistRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","itemIndex","createElement","_extends","data","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","create"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (listIndex.itemIndex >= 0) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","FlatList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","checkboxControls","listComponentStyles","listIndex","emptyListMessage","rest","flatlistRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","itemIndex","createElement","_extends","data","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","create"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n checkboxControls,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (listIndex.itemIndex >= 0) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles, // kept for backwards compatibility\n checkboxComponent, // kept for backwards compatibility\n checkboxControls,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n ref={flatlistRef}\n onScrollToIndexFailed={({ index }) => {\n setTimeout(() => {\n scrollToItem(index);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n scrollToItem={props.scrollToItem}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n checkboxControls={props.checkboxControls}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownFlatList;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,8 @@ const DropdownListItem = _ref => {
|
|
|
14
14
|
checkboxStyle,
|
|
15
15
|
checkboxLabelStyle,
|
|
16
16
|
checkboxComponentStyles,
|
|
17
|
-
checkboxComponent
|
|
17
|
+
checkboxComponent,
|
|
18
|
+
checkboxControls
|
|
18
19
|
} = _ref;
|
|
19
20
|
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
20
21
|
style: styles.listItemContainerStyle,
|
|
@@ -24,6 +25,7 @@ const DropdownListItem = _ref => {
|
|
|
24
25
|
label: item[optionLabel],
|
|
25
26
|
onChange: () => onChange(item[optionValue]),
|
|
26
27
|
primaryColor: primaryColor,
|
|
28
|
+
checkboxControls: checkboxControls,
|
|
27
29
|
checkboxSize: (checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxSize) || checkboxSize,
|
|
28
30
|
checkboxStyle: (checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxStyle) || checkboxStyle,
|
|
29
31
|
checkboxLabelStyle: (checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxLabelStyle) || checkboxLabelStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","TouchableOpacity","StyleSheet","CheckBox","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","createElement","style","styles","listItemContainerStyle","onPress","disabled","value","includes","label","create","paddingHorizontal","paddingVertical","flexDirection","alignItems"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n}: any) => {\n return (\n <TouchableOpacity\n style={styles.listItemContainerStyle}\n onPress={\n item.disabled ? () => {} : () => onChange(item[optionValue]) // intentionally didn't use the disable property\n }\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[optionValue])\n : [selectedOption].includes(item[optionValue])\n }\n label={item[optionLabel]}\n onChange={() => onChange(item[optionValue])}\n primaryColor={primaryColor}\n checkboxSize={checkboxComponentStyles?.checkboxSize || checkboxSize}\n checkboxStyle={checkboxComponentStyles?.checkboxStyle || checkboxStyle}\n checkboxLabelStyle={\n checkboxComponentStyles?.checkboxLabelStyle || checkboxLabelStyle\n }\n disabled={item.disabled}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,QAAQ,MAAM,aAAa;AAElC,MAAMC,gBAAgB,GAAGC,IAAA,
|
|
1
|
+
{"version":3,"names":["React","memo","TouchableOpacity","StyleSheet","CheckBox","DropdownListItem","_ref","item","optionLabel","optionValue","isMultiple","selectedOption","onChange","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","checkboxControls","createElement","style","styles","listItemContainerStyle","onPress","disabled","value","includes","label","create","paddingHorizontal","paddingVertical","flexDirection","alignItems"],"sources":["DropdownListItem.tsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { TouchableOpacity, StyleSheet } from 'react-native';\nimport CheckBox from '../CheckBox';\n\nconst DropdownListItem = ({\n item,\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption,\n onChange,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n checkboxControls,\n}: any) => {\n return (\n <TouchableOpacity\n style={styles.listItemContainerStyle}\n onPress={\n item.disabled ? () => {} : () => onChange(item[optionValue]) // intentionally didn't use the disable property\n }\n >\n <CheckBox\n value={\n isMultiple\n ? selectedOption.includes(item[optionValue])\n : [selectedOption].includes(item[optionValue])\n }\n label={item[optionLabel]}\n onChange={() => onChange(item[optionValue])}\n primaryColor={primaryColor}\n checkboxControls={checkboxControls}\n checkboxSize={checkboxComponentStyles?.checkboxSize || checkboxSize}\n checkboxStyle={checkboxComponentStyles?.checkboxStyle || checkboxStyle}\n checkboxLabelStyle={\n checkboxComponentStyles?.checkboxLabelStyle || checkboxLabelStyle\n }\n disabled={item.disabled}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n\nexport default memo(DropdownListItem);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,QAAQ,MAAM,aAAa;AAElC,MAAMC,gBAAgB,GAAGC,IAAA,IAcd;EAAA,IAde;IACxBC,IAAI;IACJC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,cAAc;IACdC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC,uBAAuB;IACvBC,iBAAiB;IACjBC;EACG,CAAC,GAAAb,IAAA;EACJ,oBACEN,KAAA,CAAAoB,aAAA,CAAClB,gBAAgB;IACfmB,KAAK,EAAEC,MAAM,CAACC,sBAAuB;IACrCC,OAAO,EACLjB,IAAI,CAACkB,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,MAAMb,QAAQ,CAACL,IAAI,CAACE,WAAW,CAAC,CAAC,CAAC;EAC9D,gBAEDT,KAAA,CAAAoB,aAAA,CAAChB,QAAQ;IACPsB,KAAK,EACHhB,UAAU,GACNC,cAAc,CAACgB,QAAQ,CAACpB,IAAI,CAACE,WAAW,CAAC,CAAC,GAC1C,CAACE,cAAc,CAAC,CAACgB,QAAQ,CAACpB,IAAI,CAACE,WAAW,CAAC,CAChD;IACDmB,KAAK,EAAErB,IAAI,CAACC,WAAW,CAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAMA,QAAQ,CAACL,IAAI,CAACE,WAAW,CAAC,CAAE;IAC5CI,YAAY,EAAEA,YAAa;IAC3BM,gBAAgB,EAAEA,gBAAiB;IACnCL,YAAY,EAAE,CAAAG,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEH,YAAY,KAAIA,YAAa;IACpEC,aAAa,EAAE,CAAAE,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEF,aAAa,KAAIA,aAAc;IACvEC,kBAAkB,EAChB,CAAAC,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAED,kBAAkB,KAAIA,kBAChD;IACDS,QAAQ,EAAElB,IAAI,CAACkB,QAAS;IACxBP,iBAAiB,EAAEA;EAAkB,CACtC,CACe,CAAC;AAEvB,CAAC;AAED,MAAMI,MAAM,GAAGnB,UAAU,CAAC0B,MAAM,CAAC;EAC/BN,sBAAsB,EAAE;IACtBO,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,4BAAehC,IAAI,CAACI,gBAAgB,CAAC"}
|
|
@@ -22,6 +22,7 @@ const DropdownSectionList = _ref => {
|
|
|
22
22
|
checkboxLabelStyle,
|
|
23
23
|
checkboxComponentStyles,
|
|
24
24
|
checkboxComponent,
|
|
25
|
+
checkboxControls,
|
|
25
26
|
listComponentStyles,
|
|
26
27
|
listIndex,
|
|
27
28
|
emptyListMessage,
|
|
@@ -99,7 +100,10 @@ const DropdownSectionList = _ref => {
|
|
|
99
100
|
checkboxLabelStyle,
|
|
100
101
|
// kept for backwards compatibility
|
|
101
102
|
checkboxComponentStyles,
|
|
103
|
+
// kept for backwards compatibility
|
|
102
104
|
checkboxComponent,
|
|
105
|
+
// kept for backwards compatibility
|
|
106
|
+
checkboxControls,
|
|
103
107
|
expandedSections
|
|
104
108
|
}),
|
|
105
109
|
renderSectionHeader: _ref2 => {
|
|
@@ -148,7 +152,8 @@ const _renderItem = (_ref3, props) => {
|
|
|
148
152
|
checkboxStyle: props.checkboxStyle,
|
|
149
153
|
checkboxLabelStyle: props.checkboxLabelStyle,
|
|
150
154
|
checkboxComponentStyles: props.checkboxComponentStyles,
|
|
151
|
-
checkboxComponent: props.checkboxComponent
|
|
155
|
+
checkboxComponent: props.checkboxComponent,
|
|
156
|
+
checkboxControls: props.checkboxControls
|
|
152
157
|
});
|
|
153
158
|
};
|
|
154
159
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","useRef","SectionList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","SectionHeaderTitle","extractPropertyFromArray","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","expandedSections","setExpandedSections","Set","initialState","handleToggleListExpansion","title","expandedSectionsState","next","has","delete","add","sectionlistRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","createElement","_extends","sections","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","create"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef?.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (listIndex.itemIndex >= 0 && listIndex.sectionIndex >= 0) {\n scrollToLocation(listIndex);\n }\n }, [listIndex]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","useRef","SectionList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","SectionHeaderTitle","extractPropertyFromArray","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","checkboxControls","listComponentStyles","listIndex","emptyListMessage","rest","expandedSections","setExpandedSections","Set","initialState","handleToggleListExpansion","title","expandedSectionsState","next","has","delete","add","sectionlistRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","createElement","_extends","sections","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","create"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n checkboxControls,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef?.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (listIndex.itemIndex >= 0 && listIndex.sectionIndex >= 0) {\n scrollToLocation(listIndex);\n }\n }, [listIndex]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles, // kept for backwards compatibility\n checkboxComponent, // kept for backwards compatibility\n checkboxControls,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n checkboxControls={props.checkboxControls}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -50,7 +50,9 @@ export const DropdownSelect = _ref => {
|
|
|
50
50
|
checkboxLabelStyle,
|
|
51
51
|
// kept for backwards compatibility
|
|
52
52
|
checkboxComponentStyles,
|
|
53
|
+
// kept for backwards compatibility
|
|
53
54
|
checkboxComponent,
|
|
55
|
+
// kept for backwards compatibility
|
|
54
56
|
listHeaderComponent,
|
|
55
57
|
listFooterComponent,
|
|
56
58
|
listComponentStyles,
|
|
@@ -325,6 +327,7 @@ export const DropdownSelect = _ref => {
|
|
|
325
327
|
label: selectAll ? (listControls === null || listControls === void 0 ? void 0 : listControls.unselectAllText) || 'Clear all' : (listControls === null || listControls === void 0 ? void 0 : listControls.selectAllText) || 'Select all',
|
|
326
328
|
onChange: () => handleSelectAll(),
|
|
327
329
|
primaryColor: primary,
|
|
330
|
+
checkboxControls: checkboxControls,
|
|
328
331
|
checkboxSize: checkboxSize,
|
|
329
332
|
checkboxStyle: checkboxStyle,
|
|
330
333
|
checkboxLabelStyle: checkboxLabelStyle,
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","escapeRegExp","extractPropertyFromArray","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","modalControls","checkboxControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","i","length","selectAllCallback","unselectAllCallback","checkSelectAll","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","visible","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","hideSelectAll","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","emptyListMessage","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Input from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownFlatList from './components/Dropdown/DropdownFlatList';\nimport DropdownSectionList from './components/Dropdown/DropdownSectionList';\nimport CustomModal from './components/CustomModal';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type {\n DropdownProps,\n TFlatList,\n TFlatListItem,\n TSectionList,\n TSectionListItem,\n} from './types/index.types';\nimport { escapeRegExp, extractPropertyFromArray } from './utils';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle, // kept for backwards compatibility\n modalOptionsContainerStyle, // kept for backwards compatibility\n searchInputStyle, // kept for backwards compatibility\n primaryColor,\n disabled,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps, // kept for backwards compatibility\n hideModal = false,\n listControls,\n searchControls,\n modalControls,\n checkboxControls,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<TFlatList | TSectionList>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); // for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); // for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: -1, sectionIndex: -1 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\n return () => {};\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n\n return () => {};\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * List type\n *==========================================*/\n\n // check the structure of the new options array to determine if it is a section list or a\n const isSectionList = newOptions?.some(\n (item) => item.title && item.data && Array.isArray(item.data)\n );\n\n const ListTypeComponent = isSectionList\n ? DropdownSectionList\n : DropdownFlatList;\n const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const modifiedOptions = isSectionList ? modifiedSectionData : newOptions;\n\n const optLabel = optionLabel || DEFAULT_OPTION_LABEL;\n const optValue = optionValue || DEFAULT_OPTION_VALUE;\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: string | number) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); // send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); // send value to parent\n setOpen(false); // close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: string[] | number[]) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\n );\n\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); // send value to parent\n return !prevVal;\n });\n\n if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n\n selectedItems?.forEach((element: number | string) => {\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === element\n )?.[optLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === selectedItem\n );\n return selectedItemLabel?.[optLabel];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = escapeRegExp(value).toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n // Because the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options as TFlatList, regexFilter);\n\n setNewOptions(searchResults);\n };\n\n const searchFlatList = (flatList: TFlatList, regexFilter: RegExp) => {\n const searchResults = flatList.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = listItem.data.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n if (disabled) {\n // protecting any toggleModal invocation when Dropdown is disabled by not activating state\n return;\n }\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: -1, sectionIndex: -1 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\n\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n visible={open}\n modalBackgroundStyle={modalBackgroundStyle} // kept for backwards compatibility\n modalOptionsContainerStyle={modalOptionsContainerStyle} // kept for backwards compatibility\n onRequestClose={() => handleToggleModal()}\n modalControls={modalControls}\n modalProps={modalProps} // kept for backwards compatibility\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {!listControls?.hideSelectAll &&\n isMultiple &&\n modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n listComponentStyles={listComponentStyles}\n options={newOptions}\n optionLabel={optLabel}\n optionValue={optValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n checkboxControls={checkboxControls}\n listIndex={listIndex}\n emptyListMessage={listControls?.emptyListMessage}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","escapeRegExp","extractPropertyFromArray","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","modalControls","checkboxControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","i","length","selectAllCallback","unselectAllCallback","checkSelectAll","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","visible","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","hideSelectAll","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","emptyListMessage","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Input from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownFlatList from './components/Dropdown/DropdownFlatList';\nimport DropdownSectionList from './components/Dropdown/DropdownSectionList';\nimport CustomModal from './components/CustomModal';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type {\n DropdownProps,\n TFlatList,\n TFlatListItem,\n TSectionList,\n TSectionListItem,\n} from './types/index.types';\nimport { escapeRegExp, extractPropertyFromArray } from './utils';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle, // kept for backwards compatibility\n modalOptionsContainerStyle, // kept for backwards compatibility\n searchInputStyle, // kept for backwards compatibility\n primaryColor,\n disabled,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles, // kept for backwards compatibility\n checkboxComponent, // kept for backwards compatibility\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps, // kept for backwards compatibility\n hideModal = false,\n listControls,\n searchControls,\n modalControls,\n checkboxControls,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<TFlatList | TSectionList>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); // for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); // for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: -1, sectionIndex: -1 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\n return () => {};\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n\n return () => {};\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * List type\n *==========================================*/\n\n // check the structure of the new options array to determine if it is a section list or a\n const isSectionList = newOptions?.some(\n (item) => item.title && item.data && Array.isArray(item.data)\n );\n\n const ListTypeComponent = isSectionList\n ? DropdownSectionList\n : DropdownFlatList;\n const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const modifiedOptions = isSectionList ? modifiedSectionData : newOptions;\n\n const optLabel = optionLabel || DEFAULT_OPTION_LABEL;\n const optValue = optionValue || DEFAULT_OPTION_VALUE;\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: string | number) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); // send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); // send value to parent\n setOpen(false); // close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: string[] | number[]) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\n );\n\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); // send value to parent\n return !prevVal;\n });\n\n if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n\n selectedItems?.forEach((element: number | string) => {\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === element\n )?.[optLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === selectedItem\n );\n return selectedItemLabel?.[optLabel];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = escapeRegExp(value).toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n // Because the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options as TFlatList, regexFilter);\n\n setNewOptions(searchResults);\n };\n\n const searchFlatList = (flatList: TFlatList, regexFilter: RegExp) => {\n const searchResults = flatList.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = listItem.data.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n if (disabled) {\n // protecting any toggleModal invocation when Dropdown is disabled by not activating state\n return;\n }\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: -1, sectionIndex: -1 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\n\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n visible={open}\n modalBackgroundStyle={modalBackgroundStyle} // kept for backwards compatibility\n modalOptionsContainerStyle={modalOptionsContainerStyle} // kept for backwards compatibility\n onRequestClose={() => handleToggleModal()}\n modalControls={modalControls}\n modalProps={modalProps} // kept for backwards compatibility\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {!listControls?.hideSelectAll &&\n isMultiple &&\n modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxControls={checkboxControls}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n listComponentStyles={listComponentStyles}\n options={newOptions}\n optionLabel={optLabel}\n optionValue={optValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\n checkboxControls={checkboxControls}\n listIndex={listIndex}\n emptyListMessage={listControls?.emptyListMessage}\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,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare const DropdownFlatList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
|
|
2
|
+
declare const DropdownFlatList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, checkboxControls, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
|
|
3
3
|
export default DropdownFlatList;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<({ item, optionLabel, optionValue, isMultiple, selectedOption, onChange, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, }: any) => JSX.Element>;
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ item, optionLabel, optionValue, isMultiple, selectedOption, onChange, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, checkboxControls, }: any) => JSX.Element>;
|
|
3
3
|
export default _default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare const DropdownSectionList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
|
|
2
|
+
declare const DropdownSectionList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, checkboxControls, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
|
|
3
3
|
export default DropdownSectionList;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-input-select",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"description": "A customizable dropdown selection package for react-native for android and iOS with multiple select and search capabilities.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -1,15 +1,35 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactElement } from 'react';
|
|
2
2
|
import {
|
|
3
|
+
KeyboardAvoidingView,
|
|
3
4
|
Modal,
|
|
4
|
-
|
|
5
|
+
ModalProps,
|
|
6
|
+
Platform,
|
|
5
7
|
SafeAreaView,
|
|
6
8
|
StyleSheet,
|
|
9
|
+
TouchableOpacity,
|
|
7
10
|
TouchableWithoutFeedback,
|
|
8
|
-
ModalProps,
|
|
9
11
|
} from 'react-native';
|
|
10
12
|
import { colors } from '../../styles/colors';
|
|
11
13
|
import { TCustomModalControls } from 'src/types/index.types';
|
|
12
14
|
|
|
15
|
+
type ScreenWrapperProps = {
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// In iOS, `SafeAreaView` does not automatically account on keyboard.
|
|
20
|
+
// Therefore, for iOS we need to wrap the content in `KeyboardAvoidingView`.
|
|
21
|
+
const ModalContentWrapper = ({
|
|
22
|
+
children,
|
|
23
|
+
}: ScreenWrapperProps): ReactElement => {
|
|
24
|
+
return Platform.OS === 'ios' ? (
|
|
25
|
+
<KeyboardAvoidingView style={[{ flex: 1 }]} behavior="padding">
|
|
26
|
+
{children}
|
|
27
|
+
</KeyboardAvoidingView>
|
|
28
|
+
) : (
|
|
29
|
+
<>{children}</>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
13
33
|
const CustomModal = ({
|
|
14
34
|
visible,
|
|
15
35
|
onRequestClose,
|
|
@@ -28,27 +48,30 @@ const CustomModal = ({
|
|
|
28
48
|
{...modalControls?.modalProps}
|
|
29
49
|
{...modalProps} //kept for backwards compatibility
|
|
30
50
|
>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
{/*Used to fix the select with search box behavior in iOS*/}
|
|
52
|
+
<ModalContentWrapper>
|
|
53
|
+
<TouchableOpacity
|
|
54
|
+
onPress={() => onRequestClose?.()}
|
|
55
|
+
style={[
|
|
56
|
+
styles.modalContainer,
|
|
57
|
+
styles.modalBackgroundStyle,
|
|
58
|
+
modalControls?.modalBackgroundStyle || modalBackgroundStyle,
|
|
59
|
+
]}
|
|
60
|
+
>
|
|
61
|
+
{/* Added this `TouchableWithoutFeedback` wrapper because of the closing modal on expo web */}
|
|
62
|
+
<TouchableWithoutFeedback onPress={() => {}}>
|
|
63
|
+
<SafeAreaView
|
|
64
|
+
style={[
|
|
65
|
+
styles.modalOptionsContainer,
|
|
66
|
+
modalControls?.modalOptionsContainerStyle ||
|
|
67
|
+
modalOptionsContainerStyle,
|
|
68
|
+
]}
|
|
69
|
+
>
|
|
70
|
+
{children}
|
|
71
|
+
</SafeAreaView>
|
|
72
|
+
</TouchableWithoutFeedback>
|
|
73
|
+
</TouchableOpacity>
|
|
74
|
+
</ModalContentWrapper>
|
|
52
75
|
</Modal>
|
|
53
76
|
);
|
|
54
77
|
};
|
|
@@ -21,6 +21,7 @@ const DropdownFlatList = ({
|
|
|
21
21
|
checkboxLabelStyle, // kept for backwards compatibility to be removed in future release
|
|
22
22
|
checkboxComponentStyles,
|
|
23
23
|
checkboxComponent,
|
|
24
|
+
checkboxControls,
|
|
24
25
|
listComponentStyles,
|
|
25
26
|
listIndex,
|
|
26
27
|
emptyListMessage,
|
|
@@ -74,8 +75,9 @@ const DropdownFlatList = ({
|
|
|
74
75
|
checkboxSize, // kept for backwards compatibility
|
|
75
76
|
checkboxStyle, // kept for backwards compatibility
|
|
76
77
|
checkboxLabelStyle, // kept for backwards compatibility
|
|
77
|
-
checkboxComponentStyles,
|
|
78
|
-
checkboxComponent,
|
|
78
|
+
checkboxComponentStyles, // kept for backwards compatibility
|
|
79
|
+
checkboxComponent, // kept for backwards compatibility
|
|
80
|
+
checkboxControls,
|
|
79
81
|
})
|
|
80
82
|
}
|
|
81
83
|
keyExtractor={(_item, index) => `Options${index}`}
|
|
@@ -106,6 +108,7 @@ const _renderItem = ({ item }: any, props: any) => {
|
|
|
106
108
|
scrollToItem={props.scrollToItem}
|
|
107
109
|
checkboxComponentStyles={props.checkboxComponentStyles}
|
|
108
110
|
checkboxComponent={props.checkboxComponent}
|
|
111
|
+
checkboxControls={props.checkboxControls}
|
|
109
112
|
/>
|
|
110
113
|
);
|
|
111
114
|
};
|
|
@@ -15,6 +15,7 @@ const DropdownListItem = ({
|
|
|
15
15
|
checkboxLabelStyle,
|
|
16
16
|
checkboxComponentStyles,
|
|
17
17
|
checkboxComponent,
|
|
18
|
+
checkboxControls,
|
|
18
19
|
}: any) => {
|
|
19
20
|
return (
|
|
20
21
|
<TouchableOpacity
|
|
@@ -32,6 +33,7 @@ const DropdownListItem = ({
|
|
|
32
33
|
label={item[optionLabel]}
|
|
33
34
|
onChange={() => onChange(item[optionValue])}
|
|
34
35
|
primaryColor={primaryColor}
|
|
36
|
+
checkboxControls={checkboxControls}
|
|
35
37
|
checkboxSize={checkboxComponentStyles?.checkboxSize || checkboxSize}
|
|
36
38
|
checkboxStyle={checkboxComponentStyles?.checkboxStyle || checkboxStyle}
|
|
37
39
|
checkboxLabelStyle={
|
|
@@ -26,6 +26,7 @@ const DropdownSectionList = ({
|
|
|
26
26
|
checkboxLabelStyle,
|
|
27
27
|
checkboxComponentStyles,
|
|
28
28
|
checkboxComponent,
|
|
29
|
+
checkboxControls,
|
|
29
30
|
listComponentStyles,
|
|
30
31
|
listIndex,
|
|
31
32
|
emptyListMessage,
|
|
@@ -109,8 +110,9 @@ const DropdownSectionList = ({
|
|
|
109
110
|
checkboxSize, // kept for backwards compatibility
|
|
110
111
|
checkboxStyle, // kept for backwards compatibility
|
|
111
112
|
checkboxLabelStyle, // kept for backwards compatibility
|
|
112
|
-
checkboxComponentStyles,
|
|
113
|
-
checkboxComponent,
|
|
113
|
+
checkboxComponentStyles, // kept for backwards compatibility
|
|
114
|
+
checkboxComponent, // kept for backwards compatibility
|
|
115
|
+
checkboxControls,
|
|
114
116
|
expandedSections,
|
|
115
117
|
})
|
|
116
118
|
}
|
|
@@ -155,6 +157,7 @@ const _renderItem = ({ section: { title }, item }: any, props: any) => {
|
|
|
155
157
|
checkboxLabelStyle={props.checkboxLabelStyle}
|
|
156
158
|
checkboxComponentStyles={props.checkboxComponentStyles}
|
|
157
159
|
checkboxComponent={props.checkboxComponent}
|
|
160
|
+
checkboxControls={props.checkboxControls}
|
|
158
161
|
/>
|
|
159
162
|
);
|
|
160
163
|
};
|
package/src/index.tsx
CHANGED
|
@@ -48,8 +48,8 @@ export const DropdownSelect: React.FC<DropdownProps> = ({
|
|
|
48
48
|
checkboxSize, // kept for backwards compatibility
|
|
49
49
|
checkboxStyle, // kept for backwards compatibility
|
|
50
50
|
checkboxLabelStyle, // kept for backwards compatibility
|
|
51
|
-
checkboxComponentStyles,
|
|
52
|
-
checkboxComponent,
|
|
51
|
+
checkboxComponentStyles, // kept for backwards compatibility
|
|
52
|
+
checkboxComponent, // kept for backwards compatibility
|
|
53
53
|
listHeaderComponent,
|
|
54
54
|
listFooterComponent,
|
|
55
55
|
listComponentStyles,
|
|
@@ -389,6 +389,7 @@ export const DropdownSelect: React.FC<DropdownProps> = ({
|
|
|
389
389
|
}
|
|
390
390
|
onChange={() => handleSelectAll()}
|
|
391
391
|
primaryColor={primary}
|
|
392
|
+
checkboxControls={checkboxControls}
|
|
392
393
|
checkboxSize={checkboxSize}
|
|
393
394
|
checkboxStyle={checkboxStyle}
|
|
394
395
|
checkboxLabelStyle={checkboxLabelStyle}
|