[PR #6378] [CLOSED] WIP: Implement mobile calculator keypad functionality and related tests #48295

Closed
opened 2026-04-26 10:14:26 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6378
Author: @AdrianAcala
Created: 12/12/2025
Status: Closed

Base: masterHead: feature/mobile-money-keypad


📝 Commits (10+)

  • 65b672b Implement mobile calculator keypad functionality and related tests
  • 8177261 Add release notes for mobile calculator keypad enhancement
  • dd255de Fix Playwright deploy-preview E2E/VRT
  • 50e471b Enhance mobile keypad functionality with support for decimal separators and operator buttons
  • f2c308f Refactor mobile keypad functionality and enhance amount parsing logic
  • 865ca15 [autofix.ci] apply automated fixes
  • 0d8a39c [autofix.ci] apply automated fixes (attempt 2/3)
  • 0f50104 Fixed keypad parsing nits.
  • ddf18cc Add mobileCalculatorKeypad feature flag and corresponding hook
  • 8939f1b Update VRT screenshots

📊 Changes

392 files changed (+1407 additions, -67 deletions)

View changed files

packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-1-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-2-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-3-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-4-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-5-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-6-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-7-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-8-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-9-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-1-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-2-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-3-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-1-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-2-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-3-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-1-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-2-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-3-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-closes-an-account-1-chromium-darwin.png (+0 -0)
packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-closes-an-account-2-chromium-darwin.png (+0 -0)

...and 80 more files

📄 Description

Add calculator-style keypad for entering amounts on mobile

image

Note

Adds a mobile calculator-style keypad (with arithmetic) for amount entry across transactions, budgets, categories, balances, and account creation, gated by a new feature flag, with accompanying E2E and unit tests.

  • Frontend:
    • Calculator Keypad: Introduces MoneyKeypad modal and useIsMobileCalculatorKeypadEnabled hook to show a calculator-style keypad on mobile.
    • Amount Inputs: Integrates keypad and expression parsing into AmountInput and FocusableAmountInput (localized decimal separator, programmatic focus behavior, blur handling).
    • Transactions: Updates TransactionEdit (child inputs, split support) and mobile page models to open/use keypad; adds keypad-aware selectors (data-testid like amount-display, child-amount-input-*).
    • Budgets/Categories/Balances: Ensures modals dismiss keypad before actions; enables keypad-based amount entry in budget/balance/category menus.
    • Account Creation: CreateLocalAccountModal uses keypad and parseAmountExpression for initial balance.
    • Utilities/Flags: Adds parseAmountExpression, useFeatureFlag support, and new flag flags.mobileCalculatorKeypad in FeatureFlag.
  • Tests:
    • E2E: Enables flag during tests; adds keypad interactions for transactions and budgets; updates mobile page models to drive keypad.
    • Unit: Adds tests for AmountInput keypad behavior and useIsMobileCalculatorKeypadEnabled hook.
  • Release Notes: Adds entry announcing the mobile calculator keypad enhancement.

Written by Cursor Bugbot for commit 250d59d065. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features

    • Keypad-driven amount entry added across balance, budget, category and transaction flows; new amount display and split controls for transaction entry.
    • Improved handling to automatically dismiss the on-screen keypad before closing modals or proceeding with actions.
  • Tests

    • Test setup updated to enable the mobile calculator keypad during end-to-end runs.

✏️ Tip: You can customize this high-level summary in your review settings.


🔄 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/6378 **Author:** [@AdrianAcala](https://github.com/AdrianAcala) **Created:** 12/12/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `feature/mobile-money-keypad` --- ### 📝 Commits (10+) - [`65b672b`](https://github.com/actualbudget/actual/commit/65b672b6592f8f5909e0d86f0236be7581fe0f33) Implement mobile calculator keypad functionality and related tests - [`8177261`](https://github.com/actualbudget/actual/commit/8177261ab16999870085457addf565919780cbcd) Add release notes for mobile calculator keypad enhancement - [`dd255de`](https://github.com/actualbudget/actual/commit/dd255ded93c00a45a2dfbcbdcd9bd45fd59d24d9) Fix Playwright deploy-preview E2E/VRT - [`50e471b`](https://github.com/actualbudget/actual/commit/50e471bc762e383ccbf71790b53ad64db7d6a08a) Enhance mobile keypad functionality with support for decimal separators and operator buttons - [`f2c308f`](https://github.com/actualbudget/actual/commit/f2c308ffc7e507c4990da80cdfcb41c5ecd919ec) Refactor mobile keypad functionality and enhance amount parsing logic - [`865ca15`](https://github.com/actualbudget/actual/commit/865ca1505bbea80828f6d00987f7d1bbfcc1a412) [autofix.ci] apply automated fixes - [`0d8a39c`](https://github.com/actualbudget/actual/commit/0d8a39ce2a14ba345e577d98f51602a95f2c680a) [autofix.ci] apply automated fixes (attempt 2/3) - [`0f50104`](https://github.com/actualbudget/actual/commit/0f50104b231e2a63979a0dc279b1932cd93dd877) Fixed keypad parsing nits. - [`ddf18cc`](https://github.com/actualbudget/actual/commit/ddf18cccc7f545262cecf97bd39bc12803245911) Add mobileCalculatorKeypad feature flag and corresponding hook - [`8939f1b`](https://github.com/actualbudget/actual/commit/8939f1b50762c6693b01a9f8ffdf95bafd064089) Update VRT screenshots ### 📊 Changes **392 files changed** (+1407 additions, -67 deletions) <details> <summary>View changed files</summary> ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-1-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-2-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-3-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-4-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-5-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-6-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-7-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-8-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-9-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-1-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-2-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-3-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-1-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-2-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-import-csv-file-twice-3-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-1-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-2-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-Import-Transactions-imports-transactions-from-a-CSV-file-3-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-closes-an-account-1-chromium-darwin.png` (+0 -0) ➕ `packages/desktop-client/e2e/accounts.test.ts-snapshots/Accounts-closes-an-account-2-chromium-darwin.png` (+0 -0) _...and 80 more files_ </details> ### 📄 Description Add calculator-style keypad for entering amounts on mobile <img width="1320" height="2246" alt="image" src="https://github.com/user-attachments/assets/af9be906-c7d6-4b44-acf8-e201f9b1e302" /> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds a mobile calculator-style keypad (with arithmetic) for amount entry across transactions, budgets, categories, balances, and account creation, gated by a new feature flag, with accompanying E2E and unit tests. > > - **Frontend**: > - **Calculator Keypad**: Introduces `MoneyKeypad` modal and `useIsMobileCalculatorKeypadEnabled` hook to show a calculator-style keypad on mobile. > - **Amount Inputs**: Integrates keypad and expression parsing into `AmountInput` and `FocusableAmountInput` (localized decimal separator, programmatic focus behavior, blur handling). > - **Transactions**: Updates `TransactionEdit` (child inputs, split support) and mobile page models to open/use keypad; adds keypad-aware selectors (`data-testid` like `amount-display`, `child-amount-input-*`). > - **Budgets/Categories/Balances**: Ensures modals dismiss keypad before actions; enables keypad-based amount entry in budget/balance/category menus. > - **Account Creation**: `CreateLocalAccountModal` uses keypad and `parseAmountExpression` for initial balance. > - **Utilities/Flags**: Adds `parseAmountExpression`, `useFeatureFlag` support, and new flag `flags.mobileCalculatorKeypad` in `FeatureFlag`. > - **Tests**: > - **E2E**: Enables flag during tests; adds keypad interactions for transactions and budgets; updates mobile page models to drive keypad. > - **Unit**: Adds tests for `AmountInput` keypad behavior and `useIsMobileCalculatorKeypadEnabled` hook. > - **Release Notes**: Adds entry announcing the mobile calculator keypad enhancement. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 250d59d065c5e1072dc3219e3197881949e79047. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Keypad-driven amount entry added across balance, budget, category and transaction flows; new amount display and split controls for transaction entry. * Improved handling to automatically dismiss the on-screen keypad before closing modals or proceeding with actions. * **Tests** * Test setup updated to enable the mobile calculator keypad during end-to-end runs. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <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-26 10:14:26 -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#48295