mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-09 03:32:54 -05:00
[Bug]: Overspending / Transfer Funds pop-up gets covered with second pop-up. #2099
Closed
opened 2026-02-28 20:03:23 -06:00 by GiteaMirror
·
5 comments
No Branch/Tag Specified
master
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
matiss/7155
claude/fix-simplefin-batch-sync-O8LcD
ai/custom-theme-dual-prefs
matiss/fix-6804
add-claude-github-actions-1772738270730
claude/analyze-internal-errors-4k6O2
react-query-rules
react-query-useSchedules
matiss/separate-lint-format
dependabot/npm_and_yarn/ajv-6.14.0
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#2099
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @gitchap on GitHub (May 5, 2025).
Verified issue does not already exist?
What happened?
When clicking on category balance to cover overspending / move money, the pop-up dialog gets covered by a second pop-up when there is a template / goal, and you stay hovered on the amount for a second or so.
This can be avoided by clicking and immediately moving the pointer off the total amount, or by waiting 1+ second to let the template / goal pop-up happen before you click. But this is not ideal.
If the transfer / overspending pop-up is already up, the template / goal pop-up should either not show, or show up behind the first.
How can we reproduce the issue?
Click on a category balance that has a template or a goal immediately after moving your pointer over it. Then pause for a second without moving the pointer and see the new pop-up cover the first.
Where are you hosting Actual?
Docker
What browsers are you seeing the problem on?
Chrome
Operating System
Windows 11
@gitchap commented on GitHub (May 5, 2025):
Thinking about it some more, I wouldn't mind if the information from both pop-ups were combined, and only showed on click.
@youngcw commented on GitHub (May 6, 2025):
Combining the popups would be a good way to do it since that is how it works on mobile already
@dangrous commented on GitHub (May 21, 2025):
I'm hoping to have time to take a stab at this one this weekend! Combining makes sense to me
@Johnn27 commented on GitHub (May 24, 2025):
I've taken a look, and the visual overlap between the tooltip and the popover menu does create a confusing experience.
I believe the most direct way to solve this for the desktop UI is to explicitly disable the tooltip when its related context menu (the Popover) is active. This could be done by:
tooltipDisabled, to theBalanceWithCarryovercomponent.ExpenseCategoryMonth, we would passtrueto thistooltipDisabledprop for theBalanceWithCarryoverinstance, effectively hiding the tooltip.This targeted approach directly fixes the "double popup" issue.
An alternative might be to refactor the content currently displayed in the tooltip (
GoalStatusDisplay) into a new, separate, reusable component. This new component could then be used by both theTooltipinBalanceWithCarryoverand potentially within theBalanceMovementMenuPopover. While this could promote reusability, it would involve more significant changes:* Extracting the
GoalStatusDisplaylogic and JSX into a new component file.* Modifying
BalanceWithCarryoverto use this new component.* Fetching the necessary data (balance, goal, budget values etc.) in
ExpenseCategoryMonthand passing it down toBalanceMovementMenu, which would then pass it to the new shared component.* Adjusting
BalanceMovementMenuto incorporate and display this new component.This refactoring would be a larger undertaking with more touchpoints across the codebase. Given that the primary issue here is the UI conflict and considering the mobile UI has different patterns (often using modals where this specific overlap isn't an issue), the simpler prop-based solution seems more pragmatic and proportionate for this specific bug.
I'll focus on implementing the
tooltipDisabledprop solution for the PR.@Johnn27 commented on GitHub (May 24, 2025):
@dangrous The above PR only hides the extra-pop up so if we want to combine the pop-ups that option is still good and you can keep having a stab at it. In fact it would work well with my change as we still need to hide the 2nd pop-up.