import React, {useCallback, useMemo, useState} from 'react' import {View} from 'react-native' import {Button, Menu, Subheading, useTheme} 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 {colors} = useTheme() 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)