import { useCallback, useMemo, Fragment } from 'react'; import { useTheme, Menu, Divider, Checkbox } from 'react-native-paper'; import { View } from 'react-native'; import type { MultiSelectDropdownItemProps } from './types'; function MultiSelectDropdownItem(props: MultiSelectDropdownItemProps) { const { option, width, value = [], onSelect, isLast } = props; const style = useMemo(() => ({ minWidth: width }), []); const isActive = useCallback( (currentValue: any) => { return value.indexOf(currentValue) !== -1; }, [value] ); const theme = useTheme(); const titleStyle = { color: isActive(option.value) ? theme.colors.primary : theme.colors.onBackground, }; const onPress = () => { if (option.value) { const valueIndex = value.indexOf(option.value); if (valueIndex === -1) { onSelect?.([...value, option.value]); } else { onSelect?.( [...value].filter((currentValue) => currentValue !== option.value) ); } } }; return ( {!isLast && } ); } export default MultiSelectDropdownItem;