[PR #8130] [CLOSED] fix(accounts): place upcoming transactions at end when sorted date ascending #122353

Closed
opened 2026-06-11 21:11:18 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/8130
Author: @64johnlee
Created: 6/7/2026
Status: Closed

Base: masterHead: fix-upcoming-sort-order-3803


📝 Commits (8)

  • 7792cde fix(reports): show correct tooltip entries in compact widget mode
  • 269fe12 fix(transactions): anchor split-error popover to row start to prevent horizontal overflow
  • fd7ba3c fix(notifications): fix stacked notification overlap and broken opacity
  • adfbf69 fix(accounts): show running balance when sorted by date ascending
  • c86f3c8 fix(accounts): place upcoming transactions at end when sorted date ascending
  • 96bc493 chore: add release notes for #3803
  • 6887d42 Update VRT screenshots
  • 5b1bf83 chore: retrigger CI

📊 Changes

12 files changed (+54 additions, -38 deletions)

View changed files

📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-1-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-2-chromium-linux.png (+0 -0)
📝 packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/src/components/Notifications.tsx (+2 -2)
📝 packages/desktop-client/src/components/accounts/Account.tsx (+16 -8)
📝 packages/desktop-client/src/components/reports/graphs/LineGraph.tsx (+8 -8)
📝 packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx (+21 -19)
📝 packages/desktop-client/src/components/transactions/TransactionsTable.tsx (+1 -1)
upcoming-release-notes/3803.md (+6 -0)

📄 Description

Summary

AllTransactions always prepended preview (scheduled/upcoming) transactions to the top of the list regardless of the active sort direction. When sorting by date ascending (oldest first), upcoming transactions have future dates and should appear at the bottom of the list — not pinned to the top.

Fix: add a prependPreviews prop (default true, preserving all existing behaviour). The class component passes prependPreviews={false} when the active sort is date ascending, which causes previews to be appended after historical transactions instead of prepended before them.

Preview running-balance entries are also suppressed in this mode to avoid incorrect values, since calculateRunningBalancesBottomUp assumes the starting balance comes from the newest (first, in DESC order) transaction.

Closes #3803

Changes

  • packages/desktop-client/src/components/accounts/Account.tsx
    • AllTransactionsProps: add optional prependPreviews?: boolean
    • AllTransactions: use prependPreviews to flip prepend→append and suppress preview balances
    • Render: pass prependPreviews={!(sort?.field==='date' && sort?.ascDesc==='asc')}

Test plan

  • With upcoming scheduled transactions, sort accounts by date descending — upcoming transactions should remain at the top
  • Sort by date ascending — upcoming transactions should appear at the bottom, after all historical transactions
  • Confirm all other sort types still show upcoming transactions at the top (no regression)

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 37 14.13 MB → 14.13 MB (+479 B) +0.00%
loot-core 1 5.28 MB 0%
api 2 3.87 MB 0%
cli 1 7.97 MB 0%
crdt 1 11.12 kB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
37 14.13 MB → 14.13 MB (+479 B) +0.00%
Changeset
File Δ Size
src/components/reports/graphs/StackedBarGraph.tsx 📈 +254 B (+2.52%) 9.84 kB → 10.09 kB
src/components/accounts/Account.tsx 📈 +201 B (+0.45%) 43.94 kB → 44.14 kB
src/components/reports/graphs/LineGraph.tsx 📈 +18 B (+0.18%) 9.89 kB → 9.91 kB
src/components/Notifications.tsx 📈 +2 B (+0.01%) 14.79 kB → 14.79 kB
src/components/reports/reports/Calendar.tsx 📈 +2 B (+0.01%) 27.58 kB → 27.59 kB
src/components/transactions/TransactionsTable.tsx 📈 +2 B (+0.00%) 90.38 kB → 90.38 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/ReportRouter.js 1.27 MB → 1.27 MB (+274 B) +0.02%
static/js/wide.js 298.88 kB → 299.08 kB (+201 B) +0.07%
static/js/index.js 1.6 MB → 1.6 MB (+2 B) +0.00%
static/js/Value.js 5.08 MB → 5.08 MB (+2 B) +0.00%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 962.55 kB 0%
static/js/ManageRules.js 46.63 kB 0%
static/js/PayeeRuleCountLabel.js 7.33 kB 0%
static/js/ScheduleEditForm.js 146.57 kB 0%
static/js/SchedulesTable.js 206.26 kB 0%
static/js/TransactionEdit.js 90.63 kB 0%
static/js/TransactionList.js 85.81 kB 0%
static/js/_baseIsEqual.js 98.38 kB 0%
static/js/ca.js 185.63 kB 0%
static/js/client.js 451.37 kB 0%
static/js/da.js 100.19 kB 0%
static/js/de.js 172.1 kB 0%
static/js/en-GB.js 9.25 kB 0%
static/js/en.js 201.61 kB 0%
static/js/es.js 177.58 kB 0%
static/js/extends.js 508.79 kB 0%
static/js/fr.js 177.35 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 163.93 kB 0%
static/js/narrow.js 365.05 kB 0%
static/js/nb-NO.js 147.07 kB 0%
static/js/nl.js 119.71 kB 0%
static/js/pt-BR.js 187.34 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 173.33 kB 0%
static/js/theme.js 31.88 kB 0%
static/js/toString.js 705.14 kB 0%
static/js/uk.js 216.7 kB 0%
static/js/useFormatList.js 2.52 kB 0%
static/js/useTransactionBatchActions.js 9.71 kB 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%
static/js/zh-Hans.js 116.44 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.28 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.lfNBY2TT.js 5.28 MB 0%

api

Total

Files count Total bundle size % Changed
2 3.87 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
index.js 3.87 MB 0%
models.js 0 B 0%

cli

Total

Files count Total bundle size % Changed
1 7.97 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
cli.js 7.97 MB 0%

crdt

Total

Files count Total bundle size % Changed
1 11.12 kB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
index.js 11.12 kB 0%

🔄 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/8130 **Author:** [@64johnlee](https://github.com/64johnlee) **Created:** 6/7/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `fix-upcoming-sort-order-3803` --- ### 📝 Commits (8) - [`7792cde`](https://github.com/actualbudget/actual/commit/7792cdee49d83a8a9fa97107aae572272e94ce9a) fix(reports): show correct tooltip entries in compact widget mode - [`269fe12`](https://github.com/actualbudget/actual/commit/269fe126e593bca3027e887d5d58251c1152281d) fix(transactions): anchor split-error popover to row start to prevent horizontal overflow - [`fd7ba3c`](https://github.com/actualbudget/actual/commit/fd7ba3c0892cfd966500ba8cfb61e93162082777) fix(notifications): fix stacked notification overlap and broken opacity - [`adfbf69`](https://github.com/actualbudget/actual/commit/adfbf6989b30ad3fcc87f71af0c8d13e249848c7) fix(accounts): show running balance when sorted by date ascending - [`c86f3c8`](https://github.com/actualbudget/actual/commit/c86f3c84b77772c8114c5b0dcfc37172069c33a9) fix(accounts): place upcoming transactions at end when sorted date ascending - [`96bc493`](https://github.com/actualbudget/actual/commit/96bc493953e82d816009cf7574d4b3a1c711464f) chore: add release notes for #3803 - [`6887d42`](https://github.com/actualbudget/actual/commit/6887d422484b1ff1d6293f723580e237c737c5d6) Update VRT screenshots - [`5b1bf83`](https://github.com/actualbudget/actual/commit/5b1bf836cd015c21409dc6baff7b268a4df89413) chore: retrigger CI ### 📊 Changes **12 files changed** (+54 additions, -38 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-applies-budget-template-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-1-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-2-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-applies-budget-template-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/src/components/Notifications.tsx` (+2 -2) 📝 `packages/desktop-client/src/components/accounts/Account.tsx` (+16 -8) 📝 `packages/desktop-client/src/components/reports/graphs/LineGraph.tsx` (+8 -8) 📝 `packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx` (+21 -19) 📝 `packages/desktop-client/src/components/transactions/TransactionsTable.tsx` (+1 -1) ➕ `upcoming-release-notes/3803.md` (+6 -0) </details> ### 📄 Description ## Summary `AllTransactions` always prepended preview (scheduled/upcoming) transactions to the top of the list regardless of the active sort direction. When sorting by date ascending (oldest first), upcoming transactions have future dates and should appear at the **bottom** of the list — not pinned to the top. **Fix**: add a `prependPreviews` prop (default `true`, preserving all existing behaviour). The class component passes `prependPreviews={false}` when the active sort is date ascending, which causes previews to be appended after historical transactions instead of prepended before them. Preview running-balance entries are also suppressed in this mode to avoid incorrect values, since `calculateRunningBalancesBottomUp` assumes the starting balance comes from the newest (first, in DESC order) transaction. Closes #3803 ## Changes - `packages/desktop-client/src/components/accounts/Account.tsx` - `AllTransactionsProps`: add optional `prependPreviews?: boolean` - `AllTransactions`: use `prependPreviews` to flip prepend→append and suppress preview balances - Render: pass `prependPreviews={!(sort?.field==='date' && sort?.ascDesc==='asc')}` ## Test plan - [ ] With upcoming scheduled transactions, sort accounts by date descending — upcoming transactions should remain at the top - [ ] Sort by date ascending — upcoming transactions should appear at the bottom, after all historical transactions - [ ] Confirm all other sort types still show upcoming transactions at the top (no regression) <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 37 | 14.13 MB → 14.13 MB (+479 B) | +0.00% loot-core | 1 | 5.28 MB | 0% api | 2 | 3.87 MB | 0% cli | 1 | 7.97 MB | 0% crdt | 1 | 11.12 kB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 37 | 14.13 MB → 14.13 MB (+479 B) | +0.00% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/components/reports/graphs/StackedBarGraph.tsx` | 📈 +254 B (+2.52%) | 9.84 kB → 10.09 kB `src/components/accounts/Account.tsx` | 📈 +201 B (+0.45%) | 43.94 kB → 44.14 kB `src/components/reports/graphs/LineGraph.tsx` | 📈 +18 B (+0.18%) | 9.89 kB → 9.91 kB `src/components/Notifications.tsx` | 📈 +2 B (+0.01%) | 14.79 kB → 14.79 kB `src/components/reports/reports/Calendar.tsx` | 📈 +2 B (+0.01%) | 27.58 kB → 27.59 kB `src/components/transactions/TransactionsTable.tsx` | 📈 +2 B (+0.00%) | 90.38 kB → 90.38 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- static/js/ReportRouter.js | 1.27 MB → 1.27 MB (+274 B) | +0.02% static/js/wide.js | 298.88 kB → 299.08 kB (+201 B) | +0.07% static/js/index.js | 1.6 MB → 1.6 MB (+2 B) | +0.00% static/js/Value.js | 5.08 MB → 5.08 MB (+2 B) | +0.00% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 962.55 kB | 0% static/js/ManageRules.js | 46.63 kB | 0% static/js/PayeeRuleCountLabel.js | 7.33 kB | 0% static/js/ScheduleEditForm.js | 146.57 kB | 0% static/js/SchedulesTable.js | 206.26 kB | 0% static/js/TransactionEdit.js | 90.63 kB | 0% static/js/TransactionList.js | 85.81 kB | 0% static/js/_baseIsEqual.js | 98.38 kB | 0% static/js/ca.js | 185.63 kB | 0% static/js/client.js | 451.37 kB | 0% static/js/da.js | 100.19 kB | 0% static/js/de.js | 172.1 kB | 0% static/js/en-GB.js | 9.25 kB | 0% static/js/en.js | 201.61 kB | 0% static/js/es.js | 177.58 kB | 0% static/js/extends.js | 508.79 kB | 0% static/js/fr.js | 177.35 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 163.93 kB | 0% static/js/narrow.js | 365.05 kB | 0% static/js/nb-NO.js | 147.07 kB | 0% static/js/nl.js | 119.71 kB | 0% static/js/pt-BR.js | 187.34 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 173.33 kB | 0% static/js/theme.js | 31.88 kB | 0% static/js/toString.js | 705.14 kB | 0% static/js/uk.js | 216.7 kB | 0% static/js/useFormatList.js | 2.52 kB | 0% static/js/useTransactionBatchActions.js | 9.71 kB | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% static/js/zh-Hans.js | 116.44 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.28 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.lfNBY2TT.js | 5.28 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 2 | 3.87 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- index.js | 3.87 MB | 0% models.js | 0 B | 0% </div> </details> --- #### cli **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 7.97 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- cli.js | 7.97 MB | 0% </div> </details> --- #### crdt **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 11.12 kB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- index.js | 11.12 kB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end ---> --- <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-06-11 21:11:19 -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#122353