fix(ui): close native date picker after selection on WebKitGTK #189
No reviewers
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#189
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-177-date-picker-blur-workaround"
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?
Fixes #177
Diagnostic
libwebkit2gtk-4.1-02.50.4-0ubuntu0.24.04.1.<input type="date">ferme son popup natif apres selection d'une date.Fix
e.currentTarget.blur()ajoute en fin deonChangedu<input type="date">desrc/pages/SnapshotEditPage.tsx. Force le champ a perdre le focus apres selection, ce qui dismisse le popup sur WebKitGTK. No-op sur les WebViews ou le popup se ferme deja (Edge Chromium, WKWebView), donc pas de regression cross-platform.Scope
Volontairement limite au fichier in-scope de l'issue (
SnapshotEditPage.tsx). Les 7 autres<input type="date">du codebase (TransactionFilterBar x2, AdjustmentForm, LinkTransfersModal x2, PeriodSelector x2) souffrent du meme bug et necessiteront le meme workaround : suivi dans #188.BalancePage.tsxmentionne dans le body de #177 : verification faite, pas de<input type="date">(que des boutons de plage 3M/6M/1A/3A) — out of scope par construction.Tests
npm test: 3720 / 3720 vert.tsc --noEmit: OK.@testing-library/reactnijsdomconfigure (convention documentee dans 4*.test.tsxexistants). Le workaround est une primitive DOM (blur()), pas de logique a unit-tester.npm run tauri dev/balance/snapshot(creer un compte au prealable si profil neuf)Limite Windows
Pas de verification effectuee sur Windows depuis ce dev box Linux. Le risque est minimal :
blur()est une API DOM standard, comportement identique cross-WebView ; sur WebView2 le popup se ferme deja avant queblur()soit interprete, donc l'appel est sans effet observable.Files
src/pages/SnapshotEditPage.tsx: +4 lignes (commentaire +blur())CHANGELOG.md+CHANGELOG.fr.md: entree sousFixed/Corrige/pr-review
Verdict : APPROVE
Resume : fix chirurgical et correct du popup natif
<input type="date">qui ne se ferme pas sur WebKitGTK. Scope volontairement limite avec suivi propre des 7 autres call-sites dans #188.Securite
Aucun secret, aucune injection possible.
blur()est une primitive DOM standard.Correctness
blur()apres commit de la valeur).e.currentTargetest valide dans le handler synchrone d'onChange(pas de souci de pooling React).blur()ne fait rien d'observable.Tests
npm test3720 / 3720 vert (mentionne dans le PR body).tsc --noEmitOK.blur(): justification recevable (primitive DOM, pas de logique metier, projet sans setup DOM testing). Smoke test manuel documente.Quality
#177.fix(ui): ...).Fixed/Corrige.Data
Aucune migration, aucun schema touche.
Suggestion non-bloquante
Quand #188 sera traite, extraire le pattern dans un util reutilisable :
Pour eviter de repeter le commentaire WebKitGTK 7 fois. Pas requis maintenant — le fix actuel est ship-ready.