View Issue Details

IDProjectCategoryView StatusLast Update
0012033Talerauditor-webuipublic2026-11-10 23:42
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
PrioritynormalSeveritytweakReproducibilityhave not tried
Status newResolutionopen 
Summary0012033: Auditor: 'Development settings' page does not focus the Auditor base URL field
DescriptionWhat happens:
#/dev (linked from the sidebar) is a page whose only purpose is editing one field, the auditor base URL override. Nothing is focused when it opens. Measured with the real Application at #/dev: BODY.

Expected:
The 'Auditor base URL' input is focused.

Where:
  - packages/taler-auditor-webui/src/paths/developer/index.tsx:39

Measured in headless Chromium (document.activeElement):
  before: BODY
  after: INPUT#auditor-base-url

Proposed fix:
DeveloperSettings focuses the input from a mount-only effect (useRef + useEffect([])).

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 --noEmit ok; eslint + prettier clean; real Application rendered in Chromium at #/dev, before and after
TagsNo tags attached.
Attached Files
auditor--developer-settings.diff (1,510 bytes)   
diff --git a/packages/taler-auditor-webui/src/paths/developer/index.tsx b/packages/taler-auditor-webui/src/paths/developer/index.tsx
index b014380c7..b2dc4c64a 100644
--- a/packages/taler-auditor-webui/src/paths/developer/index.tsx
+++ b/packages/taler-auditor-webui/src/paths/developer/index.tsx
@@ -9,7 +9,7 @@
 
 import { useTranslationContext } from "@gnu-taler/web-util/browser";
 import { Fragment, h, VNode } from "preact";
-import { useState } from "preact/hooks";
+import { useEffect, useRef, useState } from "preact/hooks";
 import { NotConnectedAppMenu } from "../../components/menu/index.js";
 import { useBackendContext } from "../../context/backend.js";
 import {
@@ -36,6 +36,11 @@ export function DeveloperSettings({
   const { i18n } = useTranslationContext();
   const [baseUrl, setBaseUrl] = useState(initialOverride ?? "");
   const [error, setError] = useState<string>();
+  const baseUrlInput = useRef<HTMLInputElement>(null);
+  useEffect(() => {
+    // Editing this one field is the only purpose of the page.
+    baseUrlInput.current?.focus();
+  }, []);
 
   function apply(): void {
     const requestedUrl = baseUrl.trim();
@@ -83,6 +88,7 @@ export function DeveloperSettings({
                 <i18n.Translate>Auditor base URL</i18n.Translate>
               </label>
               <input
+                ref={baseUrlInput}
                 id="auditor-base-url"
                 name="auditor-base-url"
                 class={`auditor-input ${error ? "border-red-500" : ""}`}

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:42bot-cgFile Added: auditor--developer-settings.diff
2026-11-10 23:42bot-cgFile Added: auditor--developer-settings--before.png
2026-11-10 23:42bot-cgFile Added: auditor--developer-settings--after.png