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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user