diff --git a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx index 76b809b286..54d1295d76 100644 --- a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx +++ b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx @@ -117,7 +117,11 @@ export const PayeeTableRow = memo( const { id } = payee; const dispatchSelected = useSelectedDispatch(); const selectedItems = useSelectedItems(); - const selectedIds = useMemo(() => [...selectedItems], [selectedItems]); + const selectedIds = useMemo(() => { + const ids = + selectedItems && selectedItems.size > 0 ? selectedItems : [payee.id]; + return Array.from(new Set(ids)); + }, [payee, selectedItems]); const borderColor = selected ? theme.tableBorderSelected diff --git a/packages/desktop-client/src/components/transactions/TransactionMenu.tsx b/packages/desktop-client/src/components/transactions/TransactionMenu.tsx index f4f5d815c6..1298f97749 100644 --- a/packages/desktop-client/src/components/transactions/TransactionMenu.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionMenu.tsx @@ -20,6 +20,7 @@ type BalanceMenuProps = Omit< ComponentPropsWithoutRef, 'onMenuSelect' | 'items' > & { + transaction: TransactionEntity; getTransaction: (id: string) => TransactionEntity | undefined; onDuplicate: (ids: string[]) => void; onDelete: (ids: string[]) => void; @@ -35,6 +36,7 @@ type BalanceMenuProps = Omit< }; export function TransactionMenu({ + transaction, getTransaction, onDuplicate, onDelete, @@ -49,7 +51,14 @@ export function TransactionMenu({ const { t } = useTranslation(); const dispatch = useDispatch(); const selectedItems = useSelectedItems(); - const selectedIds = useMemo(() => [...selectedItems], [selectedItems]); + + const selectedIds = useMemo(() => { + const ids = + selectedItems && selectedItems.size > 0 + ? selectedItems + : [transaction.id]; + return Array.from(new Set(ids)); + }, [transaction, selectedItems]); const scheduleIds = useMemo(() => { return selectedIds diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.tsx b/packages/desktop-client/src/components/transactions/TransactionsTable.tsx index 55d7fbe734..1d776a5904 100644 --- a/packages/desktop-client/src/components/transactions/TransactionsTable.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionsTable.tsx @@ -1152,6 +1152,7 @@ const Transaction = memo(function Transaction({ isNonModal > allTransactions?.find(t => t.id === id)} onDelete={ids => onBatchDelete?.(ids)} onDuplicate={ids => onBatchDuplicate?.(ids)} diff --git a/upcoming-release-notes/5358.md b/upcoming-release-notes/5358.md new file mode 100644 index 0000000000..474f3de192 --- /dev/null +++ b/upcoming-release-notes/5358.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [matt-fidd] +--- + +Fix payee and transaction context menus when no items selected