import { useState } from "react"; import { Divider, IconButton, Menu } from "react-native-paper"; import ConfirmDialog from "./ConfirmDialog"; export default function ListMenu({ onEdit, onCopy, onClear, onDelete, onSelect, ids, }: { onEdit: () => void; onCopy?: () => void; onClear: () => void; onDelete: () => void; onSelect: () => void; ids?: unknown[]; }) { const [showMenu, setShowMenu] = useState(false); const [showRemove, setShowRemove] = useState(false); const edit = () => { setShowMenu(false); onEdit(); }; const copy = () => { setShowMenu(false); onCopy(); }; const clear = () => { setShowMenu(false); onClear(); }; const remove = () => { setShowMenu(false); setShowRemove(false); onDelete(); }; const select = () => { setShowMenu(false); onSelect(); }; return ( <> {ids.length > 0 && ( setShowRemove(true)} /> )} setShowMenu(false)} anchor={ setShowMenu(true)} icon="dots-vertical" /> } > {onCopy && ( )} setShowRemove(true)} title="Delete" /> setShowMenu(false)} > {ids?.length === 0 ? ( <>This irreversibly deletes records from the app. Are you sure? ) : ( <>This will delete {ids.length} {ids?.length > 1 ? "records" : "record"}. Are you sure? )} ); }