fix(input) : InputAutocomplete garde la valeur collée après sélection (MUI-48)

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) <noreply@anthropic.com>
This commit is contained in:
2026-06-25 10:37:17 +02:00
parent 37434fbfc6
commit b09a96cc53
4 changed files with 104 additions and 1 deletions
@@ -393,6 +393,11 @@ const scheduleSearch = () => {
const onInput = (event: Event) => {
const target = event.target as HTMLInputElement
// Un évènement input prouve que le champ est en cours d'édition : on resynchronise
// isFocused, qu'une sélection précédente (onSelect) a pu passer à false tout en gardant
// le focus DOM (clic option en mousedown.prevent). Sans ça, le watch ci-dessous remettrait
// inputValue à '' au collage et la valeur collée serait perdue (MUI-48).
isFocused.value = true
inputValue.value = target.value
if (!isOpen.value) isOpen.value = true
activeIndex.value = -1