[PR #8106] [WIP] [AI] Improved context menu #136411

Open
opened 2026-06-17 21:10:00 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/8106
Author: @alecbakholdin
Created: 6/6/2026
Status: 🔄 Open

Base: masterHead: improved-context-menu


📝 Commits (10+)

  • 8ce423d Context Menu is implemented
  • c30752f allow Document and Window in ref event listener hook
  • f86a862 did stupid examples to showcase api usage
  • 2543c79 recreated TransactionMenu using new context action
  • f42f7b3 fixed styling and removed excess calls to useContextMenuAction
  • e4f7dca removed extra call
  • 37d7042 extra imports
  • 2d7e38e started converting files to useContextMenu
  • 4b1c065 fixed context menus in reports
  • f14b5b2 linting and formatting

📊 Changes

61 files changed (+1303 additions, -1324 deletions)

View changed files

📝 .oxlintrc.json (+1 -1)
📝 packages/component-library/src/Menu.tsx (+1 -0)
📝 packages/desktop-client/e2e/accounts.test.ts (+20 -0)
📝 packages/desktop-client/e2e/budget.test.ts (+23 -0)
📝 packages/desktop-client/e2e/page-models/account-page.ts (+4 -0)
📝 packages/desktop-client/e2e/page-models/budget-page.ts (+15 -0)
📝 packages/desktop-client/e2e/page-models/navigation.ts (+10 -0)
📝 packages/desktop-client/e2e/page-models/payees-page.ts (+8 -0)
📝 packages/desktop-client/e2e/page-models/reports-page.ts (+6 -0)
📝 packages/desktop-client/e2e/page-models/rules-page.ts (+8 -0)
📝 packages/desktop-client/e2e/page-models/schedules-page.ts (+4 -0)
📝 packages/desktop-client/e2e/payees.test.ts (+10 -0)
📝 packages/desktop-client/e2e/reports.test.ts (+7 -0)
📝 packages/desktop-client/e2e/rules.test.ts (+8 -0)
📝 packages/desktop-client/e2e/schedules.test.ts (+15 -0)
packages/desktop-client/e2e/tsconfig.json (+0 -9)
📝 packages/desktop-client/package.json (+1 -0)
packages/desktop-client/src/components/ContextMenu.tsx (+81 -0)
📝 packages/desktop-client/src/components/FinancesApp.tsx (+2 -0)
📝 packages/desktop-client/src/components/budget/SidebarCategory.tsx (+21 -40)

...and 41 more files

📄 Description

Description

This PR introduces a new global ContextMenu.tsx component designed to dramatically reduce code duplication when implementing right-click context menus, and migrates the dashboard report cards and several major lists to utilize it.

Key Changes & Benefits:

  1. Introduced ContextMenu: Created a centralized ContextMenu.tsx system utilizing a useContextMenuAction hook, allowing nested components to synchronously register contextual actions that are rendered in a single, globally-managed popover.
  2. Support for Nested Context Menus: The new system gracefully handles multiple overlapping contexts without requiring separate context menu definitions. For example, in the TransactionsTable, we can now define row-level actions while simultaneously defining cell-specific actions (like right-clicking a category cell to "Add to Filter").
  3. Eliminated Prop Drilling: Specific cards and components can now inject their own custom actions simply by using the hook and passing the context menu ref, completely removing the need to drill menuItems arrays down through multiple layers of components.
  4. Refactored ReportCard: Updated ReportCard.tsx to handle standard actions (Rename, Remove, Copy) internally driven by a widgetId prop. This eliminated repetitive boilerplate and custom popover state management from every single child dashboard card (NetWorthCard, CashFlowCard, SpendingCard, etc.).
  5. Migrated Application Lists & Tables: Upgraded various lists across the app to use the new hook for their right-click menus, streamlining their source code and standardizing the UI interaction.

Global stuff

  • packages/desktop-client/src/components/ContextMenu.tsx (New)
  • packages/desktop-client/src/components/FinancesApp.tsx

Switched to using new hook

  • packages/desktop-client/src/components/budget/SidebarGroup.tsx
  • packages/desktop-client/src/components/payees/PayeeTableRow.tsx
  • packages/desktop-client/src/components/rules/RuleRow.tsx
  • packages/desktop-client/src/components/schedules/SchedulesTable.tsx
  • packages/desktop-client/src/components/sidebar/Account.tsx
  • packages/desktop-client/src/components/sidebar/BudgetName.tsx
  • packages/desktop-client/src/components/table.tsx
  • packages/desktop-client/src/components/tags/ManageTags.tsx
  • packages/desktop-client/src/components/tags/TagRow.tsx
  • packages/desktop-client/src/components/tags/TagsList.tsx
  • packages/desktop-client/src/components/transactions/TransactionsTable.tsx
  • packages/desktop-client/src/components/transactions/useTransactionRowContextActions.ts

Report card refactor

  • packages/desktop-client/src/components/reports/Overview.tsx
  • packages/desktop-client/src/components/reports/ReportCard.tsx
  • packages/desktop-client/src/components/reports/reports/* (All 14 report cards migrated)

Refactoring / Tech Debt. Addresses code duplication around context menus, standardizes context menu functionality across the application, and enables nested context support.

I can also imagine this being useful for the table refactor. One thing that would make the table easier to work with in the future is keeping functionality as local as possible. This hook helps accomplish that by allowing someone to specify a context action as close to the source as possible.

Testing

  • Navigated to the Dashboard and right-clicked on different report cards to ensure the standard actions (Rename, Remove, Copy) and any custom card actions (e.g., Markdown alignment) appear correctly.
  • Checked tables and lists across the app (Schedules, Rules, Payees, Tags, Transactions, and the Sidebar) to ensure their right-click context menus render and execute actions correctly.
  • Verified that context menu actions composite correctly without conflicting when multiple components provide actions to the same ref.

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

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 37 13.23 MB → 13.39 MB (+158.75 kB) +1.17%
loot-core 1 4.86 MB → 4.86 MB (+142 B) +0.00%
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 13.23 MB → 13.39 MB (+158.75 kB) +1.17%
Changeset
File Δ Size
node_modules/lodash/lodash.js 🆕 +177.44 kB 0 B → 177.44 kB
src/components/transactions/useTransactionRowContextActions.ts 🆕 +4.61 kB 0 B → 4.61 kB
src/components/ContextMenu.tsx 🆕 +2.83 kB 0 B → 2.83 kB
src/contextmenu/contextMenuSlice.ts 🆕 +936 B 0 B → 936 B
home/runner/work/actual/actual/packages/loot-core/src/shared/platform.ts 📈 +142 B (+26.79%) 530 B → 672 B
src/components/reports/ReportCard.tsx 📈 +1.48 kB (+22.29%) 6.65 kB → 8.13 kB
src/components/budget/envelope/budgetsummary/ToBudget.tsx 📈 +300 B (+5.23%) 5.6 kB → 5.9 kB
src/hooks/useContextMenu.ts 📈 +37 B (+4.26%) 869 B → 906 B
src/components/budget/envelope/EnvelopeBudgetComponents.tsx 📈 +943 B (+3.24%) 28.41 kB → 29.33 kB
src/components/budget/SidebarGroup.tsx 📈 +305 B (+3.07%) 9.7 kB → 10 kB
src/redux/store.ts 📈 +22 B (+2.37%) 929 B → 951 B
src/components/sidebar/Account.tsx 📈 +88 B (+0.68%) 12.71 kB → 12.79 kB
src/components/FinancesApp.tsx 📈 +119 B (+0.61%) 18.99 kB → 19.11 kB
package.json 📈 +45 B (+0.46%) 9.56 kB → 9.61 kB
home/runner/work/actual/actual/packages/component-library/src/Menu.tsx 📈 +16 B (+0.32%) 4.93 kB → 4.94 kB
src/components/table.tsx 📈 +122 B (+0.31%) 38.37 kB → 38.49 kB
node_modules/react-hotkeys-hook/dist/index.js 📈 +6 B (+0.07%) 8.52 kB → 8.53 kB
src/components/autocomplete/CategoryAutocomplete.tsx 📉 -16 B (-0.10%) 15.52 kB → 15.5 kB
src/components/tags/TagRow.tsx 📉 -13 B (-0.15%) 8.39 kB → 8.38 kB
src/components/transactions/TransactionsTable.tsx 📉 -495 B (-0.53%) 90.38 kB → 89.89 kB
src/components/tags/ManageTags.tsx 📉 -88 B (-1.58%) 5.45 kB → 5.37 kB
src/hooks/useInputRefValue.ts 📉 -12 B (-1.92%) 626 B → 614 B
src/components/payees/PayeeTableRow.tsx 📉 -398 B (-3.12%) 12.46 kB → 12.07 kB
src/components/reports/reports/CalendarCard.tsx 📉 -497 B (-3.76%) 12.9 kB → 12.42 kB
src/hooks/useRefEventListener.ts 📉 -17 B (-3.79%) 449 B → 432 B
src/components/reports/reports/BalanceForecastCard.tsx 📉 -497 B (-4.30%) 11.28 kB → 10.79 kB
src/components/reports/reports/MarkdownCard.tsx 📉 -268 B (-5.12%) 5.11 kB → 4.85 kB
src/components/schedules/SchedulesTable.tsx 📉 -1.09 kB (-5.92%) 18.42 kB → 17.33 kB
src/components/tags/TagsList.tsx 📉 -106 B (-8.88%) 1.17 kB → 1.06 kB
src/components/reports/Overview.tsx 📉 -2.49 kB (-9.02%) 27.6 kB → 25.11 kB
src/components/reports/reports/SankeyCard.tsx 📉 -497 B (-9.97%) 4.87 kB → 4.38 kB
src/hooks/useCursorPosition.ts 📉 -99 B (-10.10%) 980 B → 881 B
src/components/reports/reports/CrossoverCard.tsx 📉 -1.12 kB (-10.66%) 10.47 kB → 9.36 kB
src/components/reports/reports/CashFlowCard.tsx 📉 -1.11 kB (-10.67%) 10.44 kB → 9.32 kB
src/tags/mutations.ts 📉 -487 B (-12.89%) 3.69 kB → 3.21 kB
src/components/reports/reports/AgeOfMoneyCard.tsx 📉 -1.11 kB (-13.69%) 8.13 kB → 7.02 kB
src/components/reports/reports/CustomReportListCards.tsx 📉 -1.16 kB (-13.84%) 8.37 kB → 7.21 kB
src/components/reports/reports/SpendingCard.tsx 📉 -1.13 kB (-13.95%) 8.13 kB → 7 kB
src/components/rules/RuleRow.tsx 📉 -1.41 kB (-14.06%) 10.04 kB → 8.62 kB
src/components/reports/reports/NetWorthCard.tsx 📉 -1.11 kB (-14.15%) 7.87 kB → 6.75 kB
src/components/budget/SidebarCategory.tsx 📉 -1.28 kB (-14.28%) 8.93 kB → 7.65 kB
src/components/reports/reports/BudgetAnalysisCard.tsx 📉 -1.13 kB (-16.07%) 7.05 kB → 5.92 kB
src/components/reports/reports/FormulaCard.tsx 📉 -1.06 kB (-17.36%) 6.11 kB → 5.05 kB
src/components/reports/reports/SummaryCard.tsx 📉 -1.14 kB (-17.78%) 6.39 kB → 5.26 kB
src/components/sidebar/BudgetName.tsx 📉 -1.39 kB (-20.28%) 6.88 kB → 5.48 kB
src/components/reports/reports/MissingReportCard.tsx 📉 -555 B (-39.33%) 1.38 kB → 856 B
src/components/transactions/TransactionMenu.tsx 🔥 -8.3 kB (-100%) 8.3 kB → 0 B
src/components/reports/useDashboardWidgetCopyMenu.ts 🔥 -636 B (-100%) 636 B → 0 B
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/Value.js 4.49 MB → 4.66 MB (+175.44 kB) +3.82%
static/js/index.js 1.58 MB → 1.59 MB (+1.02 kB) +0.06%
static/js/extends.js 473.99 kB → 474.13 kB (+142 B) +0.03%

Smaller

Asset File Size % Changed
static/js/ReportRouter.js 1.25 MB → 1.23 MB (-13.97 kB) -1.09%
static/js/ManageRules.js 46.47 kB → 45.06 kB (-1.41 kB) -3.04%
static/js/wide.js 298.23 kB → 296.86 kB (-1.37 kB) -0.46%
static/js/SchedulesTable.js 203.52 kB → 202.43 kB (-1.09 kB) -0.54%
static/js/TransactionEdit.js 90.63 kB → 90.61 kB (-12 B) -0.01%

Unchanged

Asset File Size % Changed
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 814.39 kB 0%
static/js/PayeeRuleCountLabel.js 7.1 kB 0%
static/js/ScheduleEditForm.js 146.51 kB 0%
static/js/TransactionList.js 82.8 kB 0%
static/js/_baseIsEqual.js 76.76 kB 0%
static/js/ca.js 185.63 kB 0%
static/js/client.js 450.92 kB 0%
static/js/da.js 100.19 kB 0%
static/js/de.js 182.38 kB 0%
static/js/en-GB.js 9.25 kB 0%
static/js/en.js 202.14 kB 0%
static/js/es.js 177.58 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 364.55 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.01 kB 0%
static/js/toString.js 638.83 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 4.86 MB → 4.86 MB (+142 B) +0.00%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/shared/platform.ts 📈 +142 B (+30.87%) 460 B → 602 B
View detailed bundle breakdown

Added

Asset File Size % Changed
kcab.worker.CY5KOmGK.js 0 B → 4.86 MB (+4.86 MB) -

Removed

Asset File Size % Changed
kcab.worker.DhLbg59B.js 4.86 MB → 0 B (-4.86 MB) -100%

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged
No assets were unchanged


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/8106 **Author:** [@alecbakholdin](https://github.com/alecbakholdin) **Created:** 6/6/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `improved-context-menu` --- ### 📝 Commits (10+) - [`8ce423d`](https://github.com/actualbudget/actual/commit/8ce423dc87af0ff222b7ea2ef2a317ded929f6c7) Context Menu is implemented - [`c30752f`](https://github.com/actualbudget/actual/commit/c30752f3f76a8982875e83f93a4e069ab6ef1aac) allow Document and Window in ref event listener hook - [`f86a862`](https://github.com/actualbudget/actual/commit/f86a862a571cba69d098e279d633dbc588d08041) did stupid examples to showcase api usage - [`2543c79`](https://github.com/actualbudget/actual/commit/2543c79f4fb5c36fd922cd7c972cf9a68ba67b16) recreated TransactionMenu using new context action - [`f42f7b3`](https://github.com/actualbudget/actual/commit/f42f7b36764b6ebc02550c43dd9ffdb5b9bfb7a9) fixed styling and removed excess calls to useContextMenuAction - [`e4f7dca`](https://github.com/actualbudget/actual/commit/e4f7dca2d3fec01922b10f57d9181e4dda0316c3) removed extra call - [`37d7042`](https://github.com/actualbudget/actual/commit/37d70428ba21cde24687c53ca9b514cdaf555ac1) extra imports - [`2d7e38e`](https://github.com/actualbudget/actual/commit/2d7e38ece3e4b6a7fc1ee7f9e975340a38fb9e3e) started converting files to useContextMenu - [`4b1c065`](https://github.com/actualbudget/actual/commit/4b1c06571cab0b697581d4f14f7f89ab52275a7e) fixed context menus in reports - [`f14b5b2`](https://github.com/actualbudget/actual/commit/f14b5b2c79769000f23950d6732eee6360883f4d) linting and formatting ### 📊 Changes **61 files changed** (+1303 additions, -1324 deletions) <details> <summary>View changed files</summary> 📝 `.oxlintrc.json` (+1 -1) 📝 `packages/component-library/src/Menu.tsx` (+1 -0) 📝 `packages/desktop-client/e2e/accounts.test.ts` (+20 -0) 📝 `packages/desktop-client/e2e/budget.test.ts` (+23 -0) 📝 `packages/desktop-client/e2e/page-models/account-page.ts` (+4 -0) 📝 `packages/desktop-client/e2e/page-models/budget-page.ts` (+15 -0) 📝 `packages/desktop-client/e2e/page-models/navigation.ts` (+10 -0) 📝 `packages/desktop-client/e2e/page-models/payees-page.ts` (+8 -0) 📝 `packages/desktop-client/e2e/page-models/reports-page.ts` (+6 -0) 📝 `packages/desktop-client/e2e/page-models/rules-page.ts` (+8 -0) 📝 `packages/desktop-client/e2e/page-models/schedules-page.ts` (+4 -0) 📝 `packages/desktop-client/e2e/payees.test.ts` (+10 -0) 📝 `packages/desktop-client/e2e/reports.test.ts` (+7 -0) 📝 `packages/desktop-client/e2e/rules.test.ts` (+8 -0) 📝 `packages/desktop-client/e2e/schedules.test.ts` (+15 -0) ➖ `packages/desktop-client/e2e/tsconfig.json` (+0 -9) 📝 `packages/desktop-client/package.json` (+1 -0) ➕ `packages/desktop-client/src/components/ContextMenu.tsx` (+81 -0) 📝 `packages/desktop-client/src/components/FinancesApp.tsx` (+2 -0) 📝 `packages/desktop-client/src/components/budget/SidebarCategory.tsx` (+21 -40) _...and 41 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://actualbudget.org/docs/contributing/#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> ## Description This PR introduces a new global `ContextMenu.tsx` component designed to dramatically reduce code duplication when implementing right-click context menus, and migrates the dashboard report cards and several major lists to utilize it. **Key Changes & Benefits:** 1. **Introduced `ContextMenu`:** Created a centralized `ContextMenu.tsx` system utilizing a `useContextMenuAction` hook, allowing nested components to synchronously register contextual actions that are rendered in a single, globally-managed popover. 2. **Support for Nested Context Menus:** The new system gracefully handles multiple overlapping contexts without requiring separate context menu definitions. For example, in the `TransactionsTable`, we can now define row-level actions while simultaneously defining cell-specific actions (like right-clicking a category cell to "Add to Filter"). 3. **Eliminated Prop Drilling:** Specific cards and components can now inject their own custom actions simply by using the hook and passing the context menu `ref`, completely removing the need to drill `menuItems` arrays down through multiple layers of components. 4. **Refactored `ReportCard`:** Updated `ReportCard.tsx` to handle standard actions (Rename, Remove, Copy) internally driven by a `widgetId` prop. This eliminated repetitive boilerplate and custom popover state management from every single child dashboard card (`NetWorthCard`, `CashFlowCard`, `SpendingCard`, etc.). 5. **Migrated Application Lists & Tables:** Upgraded various lists across the app to use the new hook for their right-click menus, streamlining their source code and standardizing the UI interaction. **Global stuff** - `packages/desktop-client/src/components/ContextMenu.tsx` (New) - `packages/desktop-client/src/components/FinancesApp.tsx` **Switched to using new hook** - `packages/desktop-client/src/components/budget/SidebarGroup.tsx` - `packages/desktop-client/src/components/payees/PayeeTableRow.tsx` - `packages/desktop-client/src/components/rules/RuleRow.tsx` - `packages/desktop-client/src/components/schedules/SchedulesTable.tsx` - `packages/desktop-client/src/components/sidebar/Account.tsx` - `packages/desktop-client/src/components/sidebar/BudgetName.tsx` - `packages/desktop-client/src/components/table.tsx` - `packages/desktop-client/src/components/tags/ManageTags.tsx` - `packages/desktop-client/src/components/tags/TagRow.tsx` - `packages/desktop-client/src/components/tags/TagsList.tsx` - `packages/desktop-client/src/components/transactions/TransactionsTable.tsx` - `packages/desktop-client/src/components/transactions/useTransactionRowContextActions.ts` **Report card refactor** - `packages/desktop-client/src/components/reports/Overview.tsx` - `packages/desktop-client/src/components/reports/ReportCard.tsx` - `packages/desktop-client/src/components/reports/reports/*` (All 14 report cards migrated) ## Related issue(s) <!-- e.g. Fixes #123, Relates to #456 --> *Refactoring / Tech Debt. Addresses code duplication around context menus, standardizes context menu functionality across the application, and enables nested context support.* I can also imagine this being useful for the table refactor. One thing that would make the table easier to work with in the future is keeping functionality as local as possible. This hook helps accomplish that by allowing someone to specify a context action as close to the source as possible. ## Testing - Navigated to the Dashboard and right-clicked on different report cards to ensure the standard actions (Rename, Remove, Copy) and any custom card actions (e.g., Markdown alignment) appear correctly. - Checked tables and lists across the app (Schedules, Rules, Payees, Tags, Transactions, and the Sidebar) to ensure their right-click context menus render and execute actions correctly. - Verified that context menu actions composite correctly without conflicting when multiple components provide actions to the same `ref`. ## Checklist - [x] Release notes added (see link above) - [x] No obvious regressions in affected areas - [x] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 37 | 13.23 MB → 13.39 MB (+158.75 kB) | +1.17% loot-core | 1 | 4.86 MB → 4.86 MB (+142 B) | +0.00% 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 | 13.23 MB → 13.39 MB (+158.75 kB) | +1.17% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `node_modules/lodash/lodash.js` | 🆕 +177.44 kB | 0 B → 177.44 kB `src/components/transactions/useTransactionRowContextActions.ts` | 🆕 +4.61 kB | 0 B → 4.61 kB `src/components/ContextMenu.tsx` | 🆕 +2.83 kB | 0 B → 2.83 kB `src/contextmenu/contextMenuSlice.ts` | 🆕 +936 B | 0 B → 936 B `home/runner/work/actual/actual/packages/loot-core/src/shared/platform.ts` | 📈 +142 B (+26.79%) | 530 B → 672 B `src/components/reports/ReportCard.tsx` | 📈 +1.48 kB (+22.29%) | 6.65 kB → 8.13 kB `src/components/budget/envelope/budgetsummary/ToBudget.tsx` | 📈 +300 B (+5.23%) | 5.6 kB → 5.9 kB `src/hooks/useContextMenu.ts` | 📈 +37 B (+4.26%) | 869 B → 906 B `src/components/budget/envelope/EnvelopeBudgetComponents.tsx` | 📈 +943 B (+3.24%) | 28.41 kB → 29.33 kB `src/components/budget/SidebarGroup.tsx` | 📈 +305 B (+3.07%) | 9.7 kB → 10 kB `src/redux/store.ts` | 📈 +22 B (+2.37%) | 929 B → 951 B `src/components/sidebar/Account.tsx` | 📈 +88 B (+0.68%) | 12.71 kB → 12.79 kB `src/components/FinancesApp.tsx` | 📈 +119 B (+0.61%) | 18.99 kB → 19.11 kB `package.json` | 📈 +45 B (+0.46%) | 9.56 kB → 9.61 kB `home/runner/work/actual/actual/packages/component-library/src/Menu.tsx` | 📈 +16 B (+0.32%) | 4.93 kB → 4.94 kB `src/components/table.tsx` | 📈 +122 B (+0.31%) | 38.37 kB → 38.49 kB `node_modules/react-hotkeys-hook/dist/index.js` | 📈 +6 B (+0.07%) | 8.52 kB → 8.53 kB `src/components/autocomplete/CategoryAutocomplete.tsx` | 📉 -16 B (-0.10%) | 15.52 kB → 15.5 kB `src/components/tags/TagRow.tsx` | 📉 -13 B (-0.15%) | 8.39 kB → 8.38 kB `src/components/transactions/TransactionsTable.tsx` | 📉 -495 B (-0.53%) | 90.38 kB → 89.89 kB `src/components/tags/ManageTags.tsx` | 📉 -88 B (-1.58%) | 5.45 kB → 5.37 kB `src/hooks/useInputRefValue.ts` | 📉 -12 B (-1.92%) | 626 B → 614 B `src/components/payees/PayeeTableRow.tsx` | 📉 -398 B (-3.12%) | 12.46 kB → 12.07 kB `src/components/reports/reports/CalendarCard.tsx` | 📉 -497 B (-3.76%) | 12.9 kB → 12.42 kB `src/hooks/useRefEventListener.ts` | 📉 -17 B (-3.79%) | 449 B → 432 B `src/components/reports/reports/BalanceForecastCard.tsx` | 📉 -497 B (-4.30%) | 11.28 kB → 10.79 kB `src/components/reports/reports/MarkdownCard.tsx` | 📉 -268 B (-5.12%) | 5.11 kB → 4.85 kB `src/components/schedules/SchedulesTable.tsx` | 📉 -1.09 kB (-5.92%) | 18.42 kB → 17.33 kB `src/components/tags/TagsList.tsx` | 📉 -106 B (-8.88%) | 1.17 kB → 1.06 kB `src/components/reports/Overview.tsx` | 📉 -2.49 kB (-9.02%) | 27.6 kB → 25.11 kB `src/components/reports/reports/SankeyCard.tsx` | 📉 -497 B (-9.97%) | 4.87 kB → 4.38 kB `src/hooks/useCursorPosition.ts` | 📉 -99 B (-10.10%) | 980 B → 881 B `src/components/reports/reports/CrossoverCard.tsx` | 📉 -1.12 kB (-10.66%) | 10.47 kB → 9.36 kB `src/components/reports/reports/CashFlowCard.tsx` | 📉 -1.11 kB (-10.67%) | 10.44 kB → 9.32 kB `src/tags/mutations.ts` | 📉 -487 B (-12.89%) | 3.69 kB → 3.21 kB `src/components/reports/reports/AgeOfMoneyCard.tsx` | 📉 -1.11 kB (-13.69%) | 8.13 kB → 7.02 kB `src/components/reports/reports/CustomReportListCards.tsx` | 📉 -1.16 kB (-13.84%) | 8.37 kB → 7.21 kB `src/components/reports/reports/SpendingCard.tsx` | 📉 -1.13 kB (-13.95%) | 8.13 kB → 7 kB `src/components/rules/RuleRow.tsx` | 📉 -1.41 kB (-14.06%) | 10.04 kB → 8.62 kB `src/components/reports/reports/NetWorthCard.tsx` | 📉 -1.11 kB (-14.15%) | 7.87 kB → 6.75 kB `src/components/budget/SidebarCategory.tsx` | 📉 -1.28 kB (-14.28%) | 8.93 kB → 7.65 kB `src/components/reports/reports/BudgetAnalysisCard.tsx` | 📉 -1.13 kB (-16.07%) | 7.05 kB → 5.92 kB `src/components/reports/reports/FormulaCard.tsx` | 📉 -1.06 kB (-17.36%) | 6.11 kB → 5.05 kB `src/components/reports/reports/SummaryCard.tsx` | 📉 -1.14 kB (-17.78%) | 6.39 kB → 5.26 kB `src/components/sidebar/BudgetName.tsx` | 📉 -1.39 kB (-20.28%) | 6.88 kB → 5.48 kB `src/components/reports/reports/MissingReportCard.tsx` | 📉 -555 B (-39.33%) | 1.38 kB → 856 B `src/components/transactions/TransactionMenu.tsx` | 🔥 -8.3 kB (-100%) | 8.3 kB → 0 B `src/components/reports/useDashboardWidgetCopyMenu.ts` | 🔥 -636 B (-100%) | 636 B → 0 B </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/Value.js | 4.49 MB → 4.66 MB (+175.44 kB) | +3.82% static/js/index.js | 1.58 MB → 1.59 MB (+1.02 kB) | +0.06% static/js/extends.js | 473.99 kB → 474.13 kB (+142 B) | +0.03% **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/ReportRouter.js | 1.25 MB → 1.23 MB (-13.97 kB) | -1.09% static/js/ManageRules.js | 46.47 kB → 45.06 kB (-1.41 kB) | -3.04% static/js/wide.js | 298.23 kB → 296.86 kB (-1.37 kB) | -0.46% static/js/SchedulesTable.js | 203.52 kB → 202.43 kB (-1.09 kB) | -0.54% static/js/TransactionEdit.js | 90.63 kB → 90.61 kB (-12 B) | -0.01% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 814.39 kB | 0% static/js/PayeeRuleCountLabel.js | 7.1 kB | 0% static/js/ScheduleEditForm.js | 146.51 kB | 0% static/js/TransactionList.js | 82.8 kB | 0% static/js/_baseIsEqual.js | 76.76 kB | 0% static/js/ca.js | 185.63 kB | 0% static/js/client.js | 450.92 kB | 0% static/js/da.js | 100.19 kB | 0% static/js/de.js | 182.38 kB | 0% static/js/en-GB.js | 9.25 kB | 0% static/js/en.js | 202.14 kB | 0% static/js/es.js | 177.58 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 | 364.55 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.01 kB | 0% static/js/toString.js | 638.83 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 | 4.86 MB → 4.86 MB (+142 B) | +0.00% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/shared/platform.ts` | 📈 +142 B (+30.87%) | 460 B → 602 B </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.CY5KOmGK.js | 0 B → 4.86 MB (+4.86 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.DhLbg59B.js | 4.86 MB → 0 B (-4.86 MB) | -100% **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** No assets were unchanged </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-17 21:10:00 -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#136411