#712 — fandom picker showed no existing fandoms: loadFandoms enumerated via /tags/autocomplete with q=' ', which the backend strips to empty → returns []. Switch to the cursor-paged /tags/directory?kind=fandom (loop all pages); drop the load-once guard so the dialog reflects fandoms created elsewhere. #711 — modal tag-chip kebab never opened: the kebab + menu were nested INSIDE the v-chip, which swallowed the click / mis-anchored the teleported menu. Un-nest it as a sibling v-btn using the standard v-menu activator slot (Vuetify wires the click and stacks the overlay above the modal natively). Removes the openTagId workaround. #700 — ESC didn't close the modal after accepting a suggested tag: the guard suppressed close while ANY .v-overlay--active existed, which includes tooltips — a lingering tooltip blocked the close. Exclude .v-tooltip from the guard so only real interactive overlays (menus/dialogs) keep ESC from closing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,10 +34,20 @@ export const useTagStore = defineStore('tags', () => {
|
||||
}
|
||||
|
||||
async function loadFandoms() {
|
||||
fandomCache.value = await api.get('/api/tags/autocomplete', {
|
||||
params: { q: ' ', kind: 'fandom', limit: 200 }
|
||||
})
|
||||
return fandomCache.value
|
||||
// List ALL fandoms via the cursor-paged tag directory. (#712: the old impl
|
||||
// abused /tags/autocomplete with q=' ', which the backend strips to empty
|
||||
// and returns [] — so the picker showed no existing fandoms.)
|
||||
const all = []
|
||||
let cursor = null
|
||||
do {
|
||||
const params = { kind: 'fandom', limit: 200 }
|
||||
if (cursor) params.cursor = cursor
|
||||
const body = await api.get('/api/tags/directory', { params })
|
||||
all.push(...(body.cards || []))
|
||||
cursor = body.next_cursor
|
||||
} while (cursor)
|
||||
fandomCache.value = all
|
||||
return all
|
||||
}
|
||||
|
||||
async function createFandom(name) {
|
||||
|
||||
Reference in New Issue
Block a user