[PR #7450] [WIP] Multi Currency [UX] [DO NOT MERGE] #21537

Open
opened 2026-04-14 22:08:22 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7450
Author: @StephenBrown2
Created: 4/9/2026
Status: 🔄 Open

Base: masterHead: multi-currency


📝 Commits (10+)

  • b7728a3 Add multi-currency preferences and fix NumberFormat type issues
  • 5857a6b Add exchange rate service with providers, frontend polling hook, and settings UI
  • fb2f243 Updates currency symbols and decimal places.
  • 808650a Add sat-comma formatter
  • 8cbe346 Rename currency formatting functions for clarity
  • b774880 Add account currency support
  • 1ec9ed1 Add base_amount calculation and cross-currency transfer support
  • 8f26138 Add frontend exchange rate polling and budget base_amount support
  • 8f2b6a9 feat: Add multi-currency category UI
  • a6974aa Add per-currency budget buffers and totals

📊 Changes

137 files changed (+10168 additions, -586 deletions)

View changed files

.agent-memory (+1 -0)
.agent_memory (+1 -0)
📝 packages/api/methods.test.ts (+14 -5)
packages/desktop-client/bin/inject-currency-translations.ts (+77 -0)
packages/desktop-client/e2e/budget-multicurrency.test.ts (+400 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts (+5 -5)
📝 packages/desktop-client/package.json (+1 -1)
📝 packages/desktop-client/src/accounts/accountsSlice.ts (+3 -1)
📝 packages/desktop-client/src/budget/budgetSlice.ts (+9 -2)
📝 packages/desktop-client/src/components/App.tsx (+4 -0)
📝 packages/desktop-client/src/components/accounts/Balance.tsx (+36 -7)
📝 packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx (+23 -2)
packages/desktop-client/src/components/accounts/ConvertedBalanceTooltip.tsx (+93 -0)
📝 packages/desktop-client/src/components/accounts/Header.tsx (+1 -0)
📝 packages/desktop-client/src/components/accounts/Reconcile.tsx (+5 -3)
📝 packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx (+3 -3)
📝 packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx (+13 -1)
📝 packages/desktop-client/src/components/budget/BudgetPageHeader.tsx (+9 -1)
📝 packages/desktop-client/src/components/budget/BudgetTable.tsx (+11 -2)
📝 packages/desktop-client/src/components/budget/BudgetTotals.tsx (+16 -0)

...and 80 more files

📄 Description

Description

This is my current working copy for multi-currency support. It is intended as a UX demo, not a single PR to merge. I expect to get a lot of feedback and want to knock out certain use cases and then we can pick it apart into much smaller PRs for actual merge later.

Testing

Checklist

  • Release notes added (see link above)
  • No obvious regressions in affected areas
  • Self-review has been performed - I understand what each change in the code does and why it is needed

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/7450 **Author:** [@StephenBrown2](https://github.com/StephenBrown2) **Created:** 4/9/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `multi-currency` --- ### 📝 Commits (10+) - [`b7728a3`](https://github.com/actualbudget/actual/commit/b7728a393001e83f51612970a9fad9deee1d9108) Add multi-currency preferences and fix NumberFormat type issues - [`5857a6b`](https://github.com/actualbudget/actual/commit/5857a6be8a7e752daa690b3d96f171356edcec4f) Add exchange rate service with providers, frontend polling hook, and settings UI - [`fb2f243`](https://github.com/actualbudget/actual/commit/fb2f243ffa64a1c7b9cf69485f646226b5ecdeea) Updates currency symbols and decimal places. - [`808650a`](https://github.com/actualbudget/actual/commit/808650ac55a134f3214f877d00e7558a179d0282) Add sat-comma formatter - [`8cbe346`](https://github.com/actualbudget/actual/commit/8cbe3460bff301f39cc4e119a90d92b91fd264a2) Rename currency formatting functions for clarity - [`b774880`](https://github.com/actualbudget/actual/commit/b7748807ae992eaa0888abe9e84b4d2ad4b35835) Add account currency support - [`1ec9ed1`](https://github.com/actualbudget/actual/commit/1ec9ed1e9061c0327ae8062b1750a902eb0d3eb6) Add base_amount calculation and cross-currency transfer support - [`8f26138`](https://github.com/actualbudget/actual/commit/8f261380088b37d4809ba0ee860d0789dc2fb265) Add frontend exchange rate polling and budget base_amount support - [`8f2b6a9`](https://github.com/actualbudget/actual/commit/8f2b6a9421bc87c12d0e1dfe85518a49a983751d) feat: Add multi-currency category UI - [`a6974aa`](https://github.com/actualbudget/actual/commit/a6974aa1a86fd37227c7f33b7836ce11714cab9e) Add per-currency budget buffers and totals ### 📊 Changes **137 files changed** (+10168 additions, -586 deletions) <details> <summary>View changed files</summary> ➕ `.agent-memory` (+1 -0) ➕ `.agent_memory` (+1 -0) 📝 `packages/api/methods.test.ts` (+14 -5) ➕ `packages/desktop-client/bin/inject-currency-translations.ts` (+77 -0) ➕ `packages/desktop-client/e2e/budget-multicurrency.test.ts` (+400 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts` (+5 -5) 📝 `packages/desktop-client/package.json` (+1 -1) 📝 `packages/desktop-client/src/accounts/accountsSlice.ts` (+3 -1) 📝 `packages/desktop-client/src/budget/budgetSlice.ts` (+9 -2) 📝 `packages/desktop-client/src/components/App.tsx` (+4 -0) 📝 `packages/desktop-client/src/components/accounts/Balance.tsx` (+36 -7) 📝 `packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx` (+23 -2) ➕ `packages/desktop-client/src/components/accounts/ConvertedBalanceTooltip.tsx` (+93 -0) 📝 `packages/desktop-client/src/components/accounts/Header.tsx` (+1 -0) 📝 `packages/desktop-client/src/components/accounts/Reconcile.tsx` (+5 -3) 📝 `packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx` (+3 -3) 📝 `packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx` (+13 -1) 📝 `packages/desktop-client/src/components/budget/BudgetPageHeader.tsx` (+9 -1) 📝 `packages/desktop-client/src/components/budget/BudgetTable.tsx` (+11 -2) 📝 `packages/desktop-client/src/components/budget/BudgetTotals.tsx` (+16 -0) _...and 80 more files_ </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> ## Description <!-- What does this PR do? Why is it needed? Please give context on the "why?": why do we need this change? What problem is it solving for you?--> This is my current working copy for multi-currency support. It is intended as a UX demo, not a single PR to merge. I expect to get a lot of feedback and want to knock out certain use cases and then we can pick it apart into much smaller PRs for actual merge later. ## Related issue(s) <!-- e.g. Fixes #123, Relates to #456 --> ## Testing <!-- What did you test? How can we reproduce the issue you are fixing or how can we test the feature you built? --> ## Checklist - [ ] Release notes added (see link above) - [ ] No obvious regressions in affected areas - [ ] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-14 22:08:22 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#21537