FC-6 series authoring + backup/NFS hardening + UX fixes #83
@@ -19,7 +19,7 @@
|
|||||||
:item-title="(f) => f.name"
|
:item-title="(f) => f.name"
|
||||||
:item-value="(f) => f.id"
|
:item-value="(f) => f.id"
|
||||||
label="Fandom" clearable density="compact"
|
label="Fandom" clearable density="compact"
|
||||||
@keydown.enter="onSearchEnter"
|
@keydown.enter.capture="onSearchEnter"
|
||||||
@keydown.tab="onSearchTab"
|
@keydown.tab="onSearchTab"
|
||||||
/>
|
/>
|
||||||
<v-divider class="my-3" />
|
<v-divider class="my-3" />
|
||||||
@@ -92,12 +92,20 @@ function onConfirm () {
|
|||||||
if (f) emit('confirm', f)
|
if (f) emit('confirm', f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enter on the search field. When the menu is open Vuetify is picking the
|
// Enter on the search field — bound in the CAPTURE phase so this runs BEFORE
|
||||||
// highlighted item (it sets selectedId + closes the menu) — don't also accept
|
// Vuetify's own input keydown handler (which opens the menu on Enter). When the
|
||||||
// on that keystroke. With the menu closed and a value chosen, Enter accepts.
|
// menu is open, let Vuetify pick the highlighted item (it sets selectedId +
|
||||||
function onSearchEnter () {
|
// closes the menu). When it's closed and a fandom is already chosen, accept it
|
||||||
|
// and stop the event so Vuetify never (re)opens the menu — that re-open was the
|
||||||
|
// bug: Enter popped the dropdown instead of submitting (operator-flagged
|
||||||
|
// 2026-06-07).
|
||||||
|
function onSearchEnter (e) {
|
||||||
if (menuOpen.value) return
|
if (menuOpen.value) return
|
||||||
if (selectedId.value != null) onConfirm()
|
if (selectedId.value != null) {
|
||||||
|
e.preventDefault()
|
||||||
|
e.stopPropagation()
|
||||||
|
onConfirm()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tab from the search field goes to the "new fandom" text field (operator-
|
// Tab from the search field goes to the "new fandom" text field (operator-
|
||||||
|
|||||||
Reference in New Issue
Block a user