FC-6 series authoring + backup/NFS hardening + UX fixes #83

Merged
bvandeusen merged 10 commits from dev into main 2026-06-07 19:31:05 -04:00
Showing only changes of commit 677317244e - Show all commits
+14 -6
View File
@@ -19,7 +19,7 @@
:item-title="(f) => f.name"
:item-value="(f) => f.id"
label="Fandom" clearable density="compact"
@keydown.enter="onSearchEnter"
@keydown.enter.capture="onSearchEnter"
@keydown.tab="onSearchTab"
/>
<v-divider class="my-3" />
@@ -92,12 +92,20 @@ function onConfirm () {
if (f) emit('confirm', f)
}
// Enter on the search field. When the menu is open Vuetify is picking the
// highlighted item (it sets selectedId + closes the menu) — don't also accept
// on that keystroke. With the menu closed and a value chosen, Enter accepts.
function onSearchEnter () {
// Enter on the search field — bound in the CAPTURE phase so this runs BEFORE
// Vuetify's own input keydown handler (which opens the menu on Enter). When the
// menu is open, let Vuetify pick the highlighted item (it sets selectedId +
// 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 (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-