[PR #6514] Fix mobile picker requiring double-tap to close after selection #6577

Closed
opened 2026-02-28 21:30:15 -06:00 by GiteaMirror · 0 comments
Owner

Original Pull Request: https://github.com/actualbudget/actual/pull/6514

State: closed
Merged: No


Fix mobile picker requiring double-tap to close after selection

Problem

On mobile web (Chrome/Android), category/account/payee pickers require two taps: first tap selects but doesn't close the modal, second tap closes it. Issue started in v25.11.0.

Update: Initial fix worked for account and payee pickers, but category picker still requires double-tap.

Root Cause

The role="button" attribute added to autocomplete items (to bypass WebKit's 250ms touch delay) interferes with Downshift's touch event handling. The modal's automatic close-on-select fails to trigger properly.

Solution

  1. Explicitly dispatch popModal() in the onSelect callbacks for all pickers (category, account, payee)
  2. New: Explicitly set closeOnSelect: true for the category picker to ensure it has the same close behavior as account/payee pickers

Changes Made

  • Import popModal action from modalsSlice in TransactionEdit.tsx
  • Add dispatch(popModal()) call in the onSelect callbacks for category, account, and payee pickers
  • New: Pass closeOnSelect: true explicitly when opening the category modal

Testing & Validation

  • All mobile transaction E2E tests pass (5/5 tests)
  • Type checking passed
  • Linting passed
Original prompt

This section details on the original issue you should resolve

<issue_title>[Bug]: v25.11.0 - In the web app, after selecting category or account, the picker doesn't go away,</issue_title>
<issue_description>### Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

This has started to happen since updating to v25.11.0. It happens in the web app only and happens every time I enter a new transaction. When I select a category, or account, the category becomes selected on the first tap. But the picker does not go away. I have to tap the selection again at which point the picker goes away and the category (or account) is selected.

How can we reproduce the issue?

Open the actual Actual webapp on Android using chrome. Add a new transaction and select the category or account.

Attached image is what happens once you click the category.

Actual is selfhosted in docker via Unraid Community App

Image

Where are you hosting Actual?

Docker

What browsers are you seeing the problem on?

Chrome

Operating System

Mobile Device</issue_description>

Comments on the Issue (you are @copilot in this section)


Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

**Original Pull Request:** https://github.com/actualbudget/actual/pull/6514 **State:** closed **Merged:** No --- ## Fix mobile picker requiring double-tap to close after selection ### Problem On mobile web (Chrome/Android), category/account/payee pickers require two taps: first tap selects but doesn't close the modal, second tap closes it. Issue started in v25.11.0. **Update**: Initial fix worked for account and payee pickers, but category picker still requires double-tap. ### Root Cause The `role="button"` attribute added to autocomplete items (to bypass WebKit's 250ms touch delay) interferes with Downshift's touch event handling. The modal's automatic close-on-select fails to trigger properly. ### Solution 1. Explicitly dispatch `popModal()` in the `onSelect` callbacks for all pickers (category, account, payee) 2. **New**: Explicitly set `closeOnSelect: true` for the category picker to ensure it has the same close behavior as account/payee pickers ### Changes Made - Import `popModal` action from modalsSlice in TransactionEdit.tsx - Add `dispatch(popModal())` call in the `onSelect` callbacks for category, account, and payee pickers - **New**: Pass `closeOnSelect: true` explicitly when opening the category modal ### Testing & Validation - ✅ All mobile transaction E2E tests pass (5/5 tests) - ✅ Type checking passed - ✅ Linting passed <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>[Bug]: v25.11.0 - In the web app, after selecting category or account, the picker doesn't go away,</issue_title> > <issue_description>### Verified issue does not already exist? > > - [x] I have searched and found no existing issue > > ### What happened? > > This has started to happen since updating to v25.11.0. It happens in the web app only and happens every time I enter a new transaction. When I select a category, or account, the category becomes selected on the first tap. But the picker does not go away. I have to tap the selection again at which point the picker goes away and the category (or account) is selected. > > ### How can we reproduce the issue? > > Open the actual Actual webapp on Android using chrome. Add a new transaction and select the category or account. > > Attached image is what happens once you click the category. > > Actual is selfhosted in docker via Unraid Community App > > ![Image](https://github.com/user-attachments/assets/fc703c48-9785-4b87-9757-5f37bcc650b6) > > ### Where are you hosting Actual? > > Docker > > ### What browsers are you seeing the problem on? > > Chrome > > ### Operating System > > Mobile Device</issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > </comments> > </details> <!-- START COPILOT CODING AGENT SUFFIX --> - Fixes actualbudget/actual#6083 <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/actualbudget/actual/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.
GiteaMirror added the pull-request label 2026-02-28 21:30:15 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#6577