diff --git a/frontend/src/components/modal/FandomPicker.vue b/frontend/src/components/modal/FandomPicker.vue index e9ed4a8..d412b6c 100644 --- a/frontend/src/components/modal/FandomPicker.vue +++ b/frontend/src/components/modal/FandomPicker.vue @@ -38,7 +38,8 @@ const store = useTagStore() const selectedId = ref(null) const newName = ref('') -onMounted(() => { if (store.fandomCache.length === 0) store.loadFandoms() }) +// Always refresh on open so the list reflects fandoms created elsewhere (#712). +onMounted(() => store.loadFandoms()) async function onCreate() { const f = await store.createFandom(newName.value.trim()) diff --git a/frontend/src/components/modal/FandomSetDialog.vue b/frontend/src/components/modal/FandomSetDialog.vue index 4706d59..07f38da 100644 --- a/frontend/src/components/modal/FandomSetDialog.vue +++ b/frontend/src/components/modal/FandomSetDialog.vue @@ -84,7 +84,8 @@ const busy = ref(false) const error = ref(null) const collision = ref(null) -onMounted(() => { if (store.fandomCache.length === 0) store.loadFandoms() }) +// Always refresh on open so the list reflects fandoms created elsewhere (#712). +onMounted(() => store.loadFandoms()) async function onCreate() { const name = newName.value.trim() diff --git a/frontend/src/components/modal/ImageViewer.vue b/frontend/src/components/modal/ImageViewer.vue index 5bf9c79..53e17be 100644 --- a/frontend/src/components/modal/ImageViewer.vue +++ b/frontend/src/components/modal/ImageViewer.vue @@ -106,7 +106,11 @@ function onKeyDown(ev) { // overlay's own Esc handling fire instead of closing the whole // modal mid-interaction. Vuetify marks open overlays with // `.v-overlay--active`. - if (document.querySelector('.v-overlay--active')) return + // EXCLUDE tooltips (`.v-tooltip`): they're also `.v-overlay--active` while + // shown, so one lingering after a hover/click (e.g. just after accepting a + // suggested tag) wrongly suppressed the close (#700). Only real interactive + // overlays (menus/dialogs) should keep ESC from closing the modal. + if (document.querySelector('.v-overlay--active:not(.v-tooltip)')) return ev.preventDefault() emit('close') } else if (ev.key === 'ArrowLeft') { diff --git a/frontend/src/components/modal/TagPanel.vue b/frontend/src/components/modal/TagPanel.vue index 319b0b9..4123c18 100644 --- a/frontend/src/components/modal/TagPanel.vue +++ b/frontend/src/components/modal/TagPanel.vue @@ -2,45 +2,43 @@