import React from 'react';
import {
View,
Text,
Pressable,
ScrollView,
StyleSheet,
Image,
TouchableOpacity,
} from 'react-native';
import { colors } from '../../styles/colors';
import { inputStyles } from '../../styles/input';
const DropdownSelectedItemsView = ({
placeholder,
error,
getSelectedItemsLabel,
openModal,
isMultiple,
selectedItem,
selectedItems,
dropdownIcon,
dropdownStyle,
dropdownIconStyle,
selectedItemStyle,
placeholderStyle,
multipleSelectedItemStyle,
dropdownErrorStyle,
primaryColor,
disabled,
setIndexOfSelectedItem,
}: any) => {
return (
openModal()}
style={({ pressed }) => [
pressed && {
...inputStyles.inputFocusState,
borderColor: primaryColor,
},
{ ...inputStyles.input, ...dropdownStyle },
error && //this must be last
error !== '' &&
!pressed && {
...inputStyles.inputFocusErrorState,
...dropdownErrorStyle,
},
]}
disabled={disabled}
>
true}
>
{isMultiple ? (
getSelectedItemsLabel()?.map((label: string, i: Number) => (
{
openModal();
setIndexOfSelectedItem(label); // immediately scrolls to list item with the specified label when modal
}}
key={`react-native-input-select-${Math.random()}-${i}`}
style={[
styles.selectedItems,
{ backgroundColor: primaryColor },
multipleSelectedItemStyle,
]}
label={label}
disabled={disabled}
/>
))
) : (
{
openModal();
setIndexOfSelectedItem(getSelectedItemsLabel()); // immediately scrolls to list item with the specified label when modal
}}
style={[styles.blackText, selectedItemStyle]}
label={getSelectedItemsLabel()}
disabled={disabled}
/>
)}
{!selectedItem && selectedItems?.length === 0 && (
openModal()}
style={[styles.blackText, placeholderStyle]}
label={placeholder ?? 'Select an option'}
disabled={disabled}
/>
)}
{dropdownIcon || (
)}
);
};
const DropdownContent = ({ onPress, style, label, ...rest }: any) => {
return (
onPress()} {...rest}>
{label}
);
};
const styles = StyleSheet.create({
iconStyle: { position: 'absolute', right: 25, top: 25 },
selectedItemsContainer: {
flexDirection: 'row',
flexWrap: 'nowrap',
alignItems: 'center',
},
selectedItems: {
color: colors.white,
paddingHorizontal: 10,
paddingVertical: 5,
borderRadius: 10,
backgroundColor: colors.primary,
marginRight: 10,
overflow: 'hidden',
},
blackText: { color: colors.black },
});
export default DropdownSelectedItemsView;