[PR #7893] [CLOSED] [WIP] [AI] Fix Calendar widget crash on mobile by adding DisplayPayeeProvider #131582

Closed
opened 2026-06-16 00:15:51 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7893
Author: @xxiaoxiong
Created: 5/19/2026
Status: Closed

Base: masterHead: fix/calendar-displaypayee-provider-7108


📝 Commits (1)

  • 899d7c6 [AI] fix: wrap desktop Calendar TransactionList with DisplayPayeeProvider

📊 Changes

1 file changed (+53 additions, -51 deletions)

View changed files

📝 packages/desktop-client/src/components/reports/reports/Calendar.tsx (+53 -51)

📄 Description

Problem

Fixes #7108

The Transaction Calendar widget was crashing on mobile devices with the error:

Error: useDisplayPayee must be used within a DisplayPayeeContextProvider.

Root Cause

The desktop TransactionList component in Calendar.tsx was missing the DisplayPayeeProvider wrapper, while the mobile TransactionListMobile already had it. When the mobile view rendered, it tried to use useDisplayPayee hook without the required context provider, causing the crash.

Solution

Wrapped the desktop TransactionList with DisplayPayeeProvider, matching the pattern already used for the mobile version (line 753-761).

Changes

  • Added DisplayPayeeProvider wrapper around desktop TransactionList in Calendar component
  • Both desktop and mobile transaction lists now have consistent context provider setup

Testing

  • Verified that the Calendar widget no longer crashes on mobile
  • Confirmed desktop view still works correctly
  • Checked that transaction payees display properly in both views

Code Review Notes

The mobile version already had this pattern:

<DisplayPayeeProvider transactions={allTransactions}>
  <TransactionListMobile ... />
</DisplayPayeeProvider>

Now the desktop version matches:

<DisplayPayeeProvider transactions={allTransactions}>
  <TransactionList ... />
</DisplayPayeeProvider>

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 33 14 MB → 14 MB (+182 B) +0.00%
loot-core 1 5.34 MB 0%
api 2 3.96 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
33 14 MB → 14 MB (+182 B) +0.00%
Changeset
File Δ Size
src/components/reports/reports/Calendar.tsx 📈 +182 B (+0.64%) 27.58 kB → 27.76 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.25 MB → 1.25 MB (+182 B) +0.01%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/index.js 2.02 MB 0%
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 962.55 kB 0%
static/js/ScheduleEditForm.js 146.45 kB 0%
static/js/TransactionEdit.js 86.89 kB 0%
static/js/TransactionList.js 85.81 kB 0%
static/js/Value.js 5.08 MB 0%
static/js/bankSyncUtils.js 54.15 kB 0%
static/js/ca.js 187.62 kB 0%
static/js/chart-theme.js 800.08 kB 0%
static/js/client.js 451.37 kB 0%
static/js/da.js 101.17 kB 0%
static/js/de.js 170.27 kB 0%
static/js/en-GB.js 10.01 kB 0%
static/js/en.js 196.93 kB 0%
static/js/es.js 178.71 kB 0%
static/js/extends.js 500.36 kB 0%
static/js/fr.js 178.61 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 165.02 kB 0%
static/js/narrow.js 364.2 kB 0%
static/js/nb-NO.js 148.08 kB 0%
static/js/nl.js 106.24 kB 0%
static/js/pt-BR.js 189.28 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 174.48 kB 0%
static/js/theme.js 31.67 kB 0%
static/js/uk.js 207.38 kB 0%
static/js/useFormatList.js 4.96 kB 0%
static/js/wide.js 453 B 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%
static/js/zh-Hans.js 117.65 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.34 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.BkJq0HmC.js 5.34 MB 0%

api

Total

Files count Total bundle size % Changed
2 3.96 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.96 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/7893 **Author:** [@xxiaoxiong](https://github.com/xxiaoxiong) **Created:** 5/19/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `fix/calendar-displaypayee-provider-7108` --- ### 📝 Commits (1) - [`899d7c6`](https://github.com/actualbudget/actual/commit/899d7c661db5efb57da76bcd18a686a886eb1bc3) [AI] fix: wrap desktop Calendar TransactionList with DisplayPayeeProvider ### 📊 Changes **1 file changed** (+53 additions, -51 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/src/components/reports/reports/Calendar.tsx` (+53 -51) </details> ### 📄 Description ## Problem Fixes #7108 The Transaction Calendar widget was crashing on mobile devices with the error: ``` Error: useDisplayPayee must be used within a DisplayPayeeContextProvider. ``` ## Root Cause The desktop `TransactionList` component in `Calendar.tsx` was missing the `DisplayPayeeProvider` wrapper, while the mobile `TransactionListMobile` already had it. When the mobile view rendered, it tried to use `useDisplayPayee` hook without the required context provider, causing the crash. ## Solution Wrapped the desktop `TransactionList` with `DisplayPayeeProvider`, matching the pattern already used for the mobile version (line 753-761). ## Changes - Added `DisplayPayeeProvider` wrapper around desktop `TransactionList` in Calendar component - Both desktop and mobile transaction lists now have consistent context provider setup ## Testing - Verified that the Calendar widget no longer crashes on mobile - Confirmed desktop view still works correctly - Checked that transaction payees display properly in both views ## Code Review Notes The mobile version already had this pattern: ```tsx <DisplayPayeeProvider transactions={allTransactions}> <TransactionListMobile ... /> </DisplayPayeeProvider> ``` Now the desktop version matches: ```tsx <DisplayPayeeProvider transactions={allTransactions}> <TransactionList ... /> </DisplayPayeeProvider> ``` <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 33 | 14 MB → 14 MB (+182 B) | +0.00% loot-core | 1 | 5.34 MB | 0% api | 2 | 3.96 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 ----------- | ----------------- | --------- 33 | 14 MB → 14 MB (+182 B) | +0.00% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/components/reports/reports/Calendar.tsx` | 📈 +182 B (+0.64%) | 27.58 kB → 27.76 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.25 MB → 1.25 MB (+182 B) | +0.01% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 2.02 MB | 0% static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 962.55 kB | 0% static/js/ScheduleEditForm.js | 146.45 kB | 0% static/js/TransactionEdit.js | 86.89 kB | 0% static/js/TransactionList.js | 85.81 kB | 0% static/js/Value.js | 5.08 MB | 0% static/js/bankSyncUtils.js | 54.15 kB | 0% static/js/ca.js | 187.62 kB | 0% static/js/chart-theme.js | 800.08 kB | 0% static/js/client.js | 451.37 kB | 0% static/js/da.js | 101.17 kB | 0% static/js/de.js | 170.27 kB | 0% static/js/en-GB.js | 10.01 kB | 0% static/js/en.js | 196.93 kB | 0% static/js/es.js | 178.71 kB | 0% static/js/extends.js | 500.36 kB | 0% static/js/fr.js | 178.61 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 165.02 kB | 0% static/js/narrow.js | 364.2 kB | 0% static/js/nb-NO.js | 148.08 kB | 0% static/js/nl.js | 106.24 kB | 0% static/js/pt-BR.js | 189.28 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 174.48 kB | 0% static/js/theme.js | 31.67 kB | 0% static/js/uk.js | 207.38 kB | 0% static/js/useFormatList.js | 4.96 kB | 0% static/js/wide.js | 453 B | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% static/js/zh-Hans.js | 117.65 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.34 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.BkJq0HmC.js | 5.34 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 2 | 3.96 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.96 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-16 00:15:51 -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#131582