Skip to content

feat(transactions): allow deleting a transaction, and unify the row p… - #57

Merged
Renekakpo merged 1 commit into
developfrom
feat/delete-transaction-and-row-presenter
Aug 12, 2026
Merged

feat(transactions): allow deleting a transaction, and unify the row p…#57
Renekakpo merged 1 commit into
developfrom
feat/delete-transaction-and-row-presenter

Conversation

@Renekakpo

Copy link
Copy Markdown
Contributor

…resenter

Why:

  • No UI could delete a transaction, so a wrong entry stayed in the ledger with no way out. The delete use case existed but was unreachable - and unsafe: it reversed the balance with a two-way sign branch that had no TRANSFER case, so deleting an outgoing transfer leg applied the wrong sign, off by twice the amount, and left an orphaned counter-entry that the per-wallet integrity audit cannot see. Separately, a row showed the note in place of the wallet, so two neighbouring rows presented different kinds of information with no marker.

What:

  • The reversal derives from ledgerEffect, which moved to the domain layer where a ledger rule belongs. Transfers are refused in depth: the use case throws before opening a transaction, and the affordance is hidden on transfer rows. Deletion is reachable from the detail screen behind a single confirmation.
  • A shared presenter owns the row content for both list renderers and the detail hero, so the category is always the title and the wallet always the subtitle, with a discreet indicator when a note exists. Sign and amount colour can no longer diverge between screens.

…resenter

Why:
- No UI could delete a transaction, so a wrong entry stayed in the ledger with no
  way out. The delete use case existed but was unreachable - and unsafe: it
  reversed the balance with a two-way sign branch that had no TRANSFER case, so
  deleting an outgoing transfer leg applied the wrong sign, off by twice the
  amount, and left an orphaned counter-entry that the per-wallet integrity audit
  cannot see. Separately, a row showed the note in place of the wallet, so two
  neighbouring rows presented different kinds of information with no marker.

What:
- The reversal derives from ledgerEffect, which moved to the domain layer where a
  ledger rule belongs. Transfers are refused in depth: the use case throws before
  opening a transaction, and the affordance is hidden on transfer rows. Deletion
  is reachable from the detail screen behind a single confirmation.
- A shared presenter owns the row content for both list renderers and the detail
  hero, so the category is always the title and the wallet always the subtitle,
  with a discreet indicator when a note exists. Sign and amount colour can no
  longer diverge between screens.
@Renekakpo
Renekakpo merged commit 0dbe7bc into develop Aug 12, 2026
1 check passed
@Renekakpo
Renekakpo deleted the feat/delete-transaction-and-row-presenter branch August 12, 2026 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant