import React, { useState } from "react"; import { StyleProp, Text, View } from "react-native"; import DropDownPicker, { ItemType } from "react-native-dropdown-picker"; import { errorStyle } from "../../Styles/BaseStyles"; import { BaseProps } from "../../Utils/BaseProps"; import styles from "./DropdownStyles"; export interface DropDownProps extends BaseProps { items: ItemType[]; placeholderStyles?: StyleProp; onChange?: (e: ItemType) => void; dropDownContainerStyle?: StyleProp; listItemContainerStyle?: StyleProp; dropDownPickerProps?: any; style?: StyleProp; onSelect?: (e: object) => void; } const DropdownPicker = (props: DropDownProps) => { const { style, containerStyle, labelStyle, disabled = false, label, hideLabel = false, errorMessage, errorVisibility = true, showErrorMessage = true, assistiveText, assistiveTextStyle, placeholder, placeholderStyles, onChange, listItemContainerStyle, dropDownContainerStyle, onSelect, items, dropDownPickerProps, } = props; const [open, setOpen] = useState(false); const [value, setValue] = useState(null); const [dItems, setItems] = useState(items); return ( {hideLabel || !label ? null : ( // eslint-disable-next-line react-native/no-inline-styles {label} )} { if (onChange) { onChange(item.value); } if (onSelect) { onSelect(item); } }} listMode="SCROLLVIEW" dropDownContainerStyle={[ styles.dropDownContainerStyle, dropDownContainerStyle, ]} placeholder={placeholder} placeholderStyle={placeholderStyles} /> {assistiveText && !errorVisibility ? ( {assistiveText} ) : null} {errorVisibility && showErrorMessage && errorMessage ? ( {errorMessage} ) : null} ); }; export default DropdownPicker;