import React, { useImperativeHandle, useMemo, useRef, ReactElement, JSXElementConstructor, } from 'react'; import { Image, View, Text } from 'react-native'; import Dropdown from '../Dropdown'; import { SelectCountryProps } from './model'; import { styles } from './styles'; const SelectCountryComponent: ( props: SelectCountryProps ) => ReactElement> | null = React.forwardRef((props, currentRef) => { const { data, value, valueField, labelField, imageField, selectedTextStyle, imageStyle, } = props; const ref: any = useRef(null); useImperativeHandle(currentRef, () => { return { open: eventOpen, close: eventClose }; }); const eventOpen = () => { ref.current.open(); }; const eventClose = () => { ref.current.close(); }; const _renderItem = (item: any) => { return ( {item[labelField]} ); }; const selectItem: any = useMemo(() => { const index = data.findIndex((e: any) => e[valueField] === value); return data[index]; }, [data, valueField, value]); return ( { if (selectItem?.image) { return ( ); } else { return null; } }} /> ); }); export default SelectCountryComponent;