[PR #5921] [MERGED] Add virtualizer to mobile transactions #36406

Closed
opened 2026-04-20 23:16:28 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/5921
Author: @MatissJanis
Created: 10/13/2025
Status: Merged
Merged: 10/22/2025
Merged by: @MatissJanis

Base: masterHead: cursor/add-virtualizer-to-mobile-transactions-eb3e


📝 Commits (6)

  • c3f6f22 Refactor: Use Virtualizer for mobile transaction list
  • 6355485 Refactor TransactionList to use ListBox and group by date
  • ff33dce Remove unused MOBILE_NAV_HEIGHT import and style
  • b54f9ff Merge branch 'master' into cursor/add-virtualizer-to-mobile-transactions-eb3e
  • a8fa2d9 docs: Add mobile transaction virtualizer release note
  • e20320a Merge branch 'master' into cursor/add-virtualizer-to-mobile-transactions-eb3e

📊 Changes

2 files changed (+78 additions, -58 deletions)

View changed files

📝 packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx (+72 -58)
upcoming-release-notes/5921.md (+6 -0)

📄 Description

This PR introduces Virtualizer from react-aria-components to the mobile transactions list.

Why:

  • Performance: Improves performance and responsiveness for large transaction lists by only rendering visible items.
  • Consistency: Aligns the implementation with the existing pattern used in the mobile rules page, ensuring a consistent approach to list virtualization across the mobile interface.

What:

  • Replaced the ListBox component with Virtualizer and GridList.
  • Restructured the transaction data into a flat list of items, including both date headers and individual transactions, to work with GridList.
  • Maintained sticky date headers and all existing functionality (selection, loading, empty states).

Open in Cursor Open in Web


🔄 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/5921 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 10/13/2025 **Status:** ✅ Merged **Merged:** 10/22/2025 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `cursor/add-virtualizer-to-mobile-transactions-eb3e` --- ### 📝 Commits (6) - [`c3f6f22`](https://github.com/actualbudget/actual/commit/c3f6f22432768dbf2d33a408396301358660df6d) Refactor: Use Virtualizer for mobile transaction list - [`6355485`](https://github.com/actualbudget/actual/commit/63554857d240e1007ab7aadeab4106bce1182148) Refactor TransactionList to use ListBox and group by date - [`ff33dce`](https://github.com/actualbudget/actual/commit/ff33dce271da315281b8030c0149dd07b1e8a4e5) Remove unused MOBILE_NAV_HEIGHT import and style - [`b54f9ff`](https://github.com/actualbudget/actual/commit/b54f9ffc3dacf99581494f2d7d3fc26245fc24ff) Merge branch 'master' into cursor/add-virtualizer-to-mobile-transactions-eb3e - [`a8fa2d9`](https://github.com/actualbudget/actual/commit/a8fa2d9f0879972b150ed02c814d6b40c6e6fe2b) docs: Add mobile transaction virtualizer release note - [`e20320a`](https://github.com/actualbudget/actual/commit/e20320a270b249b077f510dbc39772040aee7efe) Merge branch 'master' into cursor/add-virtualizer-to-mobile-transactions-eb3e ### 📊 Changes **2 files changed** (+78 additions, -58 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx` (+72 -58) ➕ `upcoming-release-notes/5921.md` (+6 -0) </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. --> This PR introduces `Virtualizer` from `react-aria-components` to the mobile transactions list. **Why:** - **Performance:** Improves performance and responsiveness for large transaction lists by only rendering visible items. - **Consistency:** Aligns the implementation with the existing pattern used in the mobile rules page, ensuring a consistent approach to list virtualization across the mobile interface. **What:** - Replaced the `ListBox` component with `Virtualizer` and `GridList`. - Restructured the transaction data into a flat list of items, including both date headers and individual transactions, to work with `GridList`. - Maintained sticky date headers and all existing functionality (selection, loading, empty states). --- <a href="https://cursor.com/background-agent?bcId=bc-686d9249-2564-4d17-b255-0f14a07ac807"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-cursor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-cursor-light.svg"><img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-686d9249-2564-4d17-b255-0f14a07ac807"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-web-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-web-light.svg"><img alt="Open in Web" src="https://cursor.com/open-in-web.svg"></picture></a> --- <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-20 23:16:28 -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#36406