import React, { useCallback, useMemo, useState } from 'react' import { View } from 'react-native' import { Button, Menu, Subheading } from 'react-native-paper' import { ITEM_PADDING } from './constants' export interface Item { value: string label: string color?: string } function Select({ value, onChange, items, label, }: { value: string onChange: (value: string) => void items: Item[] label?: string }) { const [show, setShow] = useState(false) const selected = useMemo( () => items.find((item) => item.value === value) || items[0], [items, value], ) const handlePress = useCallback( (newValue: string) => { onChange(newValue) setShow(false) }, [onChange], ) return ( {label && {label}} setShow(false)} anchor={ } > {items.map((item) => ( handlePress(item.value)} /> ))} ) } export default React.memo(Select)