import React, {useCallback, useState} from 'react' import {GestureResponderEvent, ListRenderItemInfo, View} from 'react-native' import {List, Menu, RadioButton} from 'react-native-paper' import {useColor} from './color' import CountMany from './count-many' import {setRepo} from './db' interface Props extends ListRenderItemInfo { onSelect: (index: number) => void selected: number onUndo: () => void } export default function StartPlanItem(props: Props) { const {index, item, onSelect, selected, onUndo} = props const {color} = useColor() const [anchor, setAnchor] = useState({x: 0, y: 0}) const [showMenu, setShowMenu] = useState(false) const undo = useCallback(async () => { const first = await setRepo.findOne({ where: {name: item.name, hidden: 0 as any}, order: {created: 'desc'}, }) console.log({first}) await setRepo.delete(first.id) setShowMenu(false) onUndo() }, [setShowMenu, onUndo, item.name]) const longPress = useCallback( (e: GestureResponderEvent) => { setAnchor({x: e.nativeEvent.pageX, y: e.nativeEvent.pageY}) setShowMenu(true) }, [setShowMenu, setAnchor], ) return ( onSelect(index)} left={() => ( onSelect(index)} value={index.toString()} status={selected === index ? 'checked' : 'unchecked'} color={color} /> )} right={() => ( <> setShowMenu(false)}> )} /> ) }