View Issue Details

IDProjectCategoryView StatusLast Update
0012041Talerlibeufin-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 
Summary0012041: Bank (admin): 'New conversion rate class' does not focus the name, and its form would focus the description
DescriptionWhat happens:
NewConversionRateClass never passes `focus` to ConversionRateClassForm, so nothing is focused (measured: BODY). Passing it would not have been enough: the form puts `ref={focus ? doAutoFocus : undefined}` on both the Name and the Description input. Both 100 ms timers fire and the later one, Description, wins.

Expected:
'Name' (the first, required field) focused.

Where:
  - packages/libeufin-bank-webui/src/pages/NewConversionRateClass.tsx:100
  - packages/libeufin-bank-webui/src/pages/admin/ConversionRateClassForm.tsx:218

Measured in headless Chromium (document.activeElement):
  before: BODY
  after: INPUT#class-name

Proposed fix:
NewConversionRateClass passes `focus`, and the duplicate doAutoFocus ref on Description is removed.

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 screenshot
TagsNo tags attached.
Attached Files
bank--conversion-class-new.diff (1,653 bytes)   
diff --git a/packages/libeufin-bank-webui/src/pages/NewConversionRateClass.tsx b/packages/libeufin-bank-webui/src/pages/NewConversionRateClass.tsx
index 46bf70b3b..e56b830cc 100644
--- a/packages/libeufin-bank-webui/src/pages/NewConversionRateClass.tsx
+++ b/packages/libeufin-bank-webui/src/pages/NewConversionRateClass.tsx
@@ -97,7 +97,7 @@ export function NewConversionRateClass({
           </i18n.Translate>
         </p>
 
-        <ConversionRateClassForm onChange={setSubmitData}>
+        <ConversionRateClassForm focus onChange={setSubmitData}>
           <div class="border-t border-onBackground/10 bg-background/60 px-5 py-4 sm:px-8">
             <OperationError class="mb-4" />
             <div class="flex items-center justify-between gap-x-6">
diff --git a/packages/libeufin-bank-webui/src/pages/admin/ConversionRateClassForm.tsx b/packages/libeufin-bank-webui/src/pages/admin/ConversionRateClassForm.tsx
index 92b26e412..eab51128a 100644
--- a/packages/libeufin-bank-webui/src/pages/admin/ConversionRateClassForm.tsx
+++ b/packages/libeufin-bank-webui/src/pages/admin/ConversionRateClassForm.tsx
@@ -249,7 +249,6 @@ export function ConversionRateClassForm(
             </label>
             <div class="mt-2">
               <input
-                ref={focus ? doAutoFocus : undefined}
                 type="text"
                 class="block w-full disabled:bg-gray-100 rounded-md border-0 py-1.5 text-onBackground shadow-sm ring-1 ring-inset ring-gray-300 data-[error=true]:ring-red-500 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary sm:text-sm sm:leading-6"
                 name="class-description"

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--conversion-class-new.diff
2026-11-10 23:43bot-cgFile Added: bank--conversion-class-new--before.png
2026-11-10 23:43bot-cgFile Added: bank--conversion-class-new--after.png