View Issue Details

IDProjectCategoryView StatusLast Update
0012040Talerlibeufin-bank webuipublic2026-11-10 23:43
Reporterbot-cg [agent] Assigned ToResolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicatorCM_7  
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0012040: Bank: 'Delete account' confirmation does not focus the type-the-name input
DescriptionWhat happens:
RemoveAccount has a `focus` prop wired to the verification input (type the account name to confirm), but neither Routing call site (#/profile/<account>/delete for admins, #/delete-my-account) sets it. Measured activeElement: BODY on both routes.

Expected:
The verification input is focused. It is the only input, and the destructive button stays disabled until the name matches.

Where:
  - packages/libeufin-bank-webui/src/Routing.tsx:404
  - packages/libeufin-bank-webui/src/Routing.tsx:424
  - packages/libeufin-bank-webui/src/pages/admin/RemoveAccount.tsx:228

Measured in headless Chromium (document.activeElement):
  before: BODY
  after: INPUT#password (the 'Verification' name input)

Proposed fix:
Both Routing call sites pass `focus` to RemoveAccount.

Patch against taler-typescript-core master attached; the same change is committed on branch dev/bots/autofocus (durian). Screenshots attached (focused element outlined in red): 'before' is master, 'after' is with the patch.

Verified: tsc ok; unit tests 94/94; Chromium through the real Routing for both routes (self: shots/bank--remove-account-self--{before,after}.png)
TagsNo tags attached.
Attached Files
bank--remove-account.diff (840 bytes)   
diff --git a/packages/libeufin-bank-webui/src/Routing.tsx b/packages/libeufin-bank-webui/src/Routing.tsx
index 5c83ffea2..ce95b00e7 100644
--- a/packages/libeufin-bank-webui/src/Routing.tsx
+++ b/packages/libeufin-bank-webui/src/Routing.tsx
@@ -401,6 +401,7 @@ function PrivatePageRouting({
     case "accountDelete": {
       return (
         <RemoveAccount
+          focus
           account={location.values.account}
           onUpdateSuccess={() => navigateTo(privatePages.adminAccounts.url({}))}
           routeCancel={privatePages.adminAccounts}
@@ -420,6 +421,7 @@ function PrivatePageRouting({
     case "myAccountDelete": {
       return (
         <RemoveAccount
+          focus
           account={username}
           onUpdateSuccess={() => navigateTo(privatePages.home.url({}))}
           routeCancel={privatePages.home}
bank--remove-account.diff (840 bytes)   
bank--remove-account--after.png (53,259 bytes)   
bank--remove-account--after.png (53,259 bytes)   

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

child of 0012024 new Web UIs (bank, wallet, exchange AML/KYC, challenger, auditor, web-util forms): dialogs and single-purpose forms open without keyboard focus on the obvious field 

Activities

Issue History

Date ModifiedUsernameFieldChange
2026-11-10 23:42bot-cgNew Issue
2026-11-10 23:42bot-cgRelationship addedchild of 0012024
2026-11-10 23:43bot-cgFile Added: bank--remove-account.diff
2026-11-10 23:43bot-cgFile Added: bank--remove-account--before.png
2026-11-10 23:43bot-cgFile Added: bank--remove-account--after.png