From b09a96cc5352adfb57503ce823b7df9588fe97c7 Mon Sep 17 00:00:00 2001
From: tristan
Date: Thu, 25 Jun 2026 10:37:17 +0200
Subject: [PATCH] =?UTF-8?q?fix(input)=20:=20InputAutocomplete=20garde=20la?=
=?UTF-8?q?=20valeur=20coll=C3=A9e=20apr=C3=A8s=20s=C3=A9lection=20(MUI-48?=
=?UTF-8?q?)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Après avoir sélectionné une suggestion dans la liste, un collage qui
remplace tout (Ctrl+A puis Ctrl+V, sans re-cliquer dans le champ) vidait
le champ au lieu de prendre la valeur collée.
Cause : onSelect repassait isFocused à false alors que l'input gardait le
focus DOM (option cliquée en mousedown.prevent). Au collage, onInput émet
update:modelValue(null) et le watch de synchronisation, protégé par le seul
isFocused, remettait inputValue à ''. onInput resynchronise désormais
isFocused (un évènement input prouve l'édition).
- test de non-régression colocalisé (séquence sélection → Ctrl+A/Ctrl+V)
- page playground : section allowCreate + BAN dédiée au test
- CHANGELOG : entrée Fixed MUI-48
Co-Authored-By: Claude Opus 4.8 (1M context)
---
.../composant/input/inputAutocomplete.vue | 61 +++++++++++++++++++
CHANGELOG.md | 1 +
.../malio/input/InputAutocomplete.test.ts | 38 +++++++++++-
.../malio/input/InputAutocomplete.vue | 5 ++
4 files changed, 104 insertions(+), 1 deletion(-)
diff --git a/.playground/pages/composant/input/inputAutocomplete.vue b/.playground/pages/composant/input/inputAutocomplete.vue
index dfac49b..89a2119 100644
--- a/.playground/pages/composant/input/inputAutocomplete.vue
+++ b/.playground/pages/composant/input/inputAutocomplete.vue
@@ -47,6 +47,31 @@
+
+
allowCreate + BAN (test MUI-48)
+
+ Tapez au moins 3 caractères → suggestions de la Base Adresse Nationale.
+ Repro : sélectionnez une adresse dans la liste, puis
+ Ctrl+A et Ctrl+V pour coller une autre valeur
+ par-dessus. La valeur collée doit rester (le champ ne doit ni se vider, ni faire redescendre le label).
+
+
+
+ v-model : {{ banValue ?? 'null' }}
+
+
+