diff --git a/frontend/src/components/modal/FandomPicker.vue b/frontend/src/components/modal/FandomPicker.vue index 31189ab..e9ed4a8 100644 --- a/frontend/src/components/modal/FandomPicker.vue +++ b/frontend/src/components/modal/FandomPicker.vue @@ -17,6 +17,10 @@ + + No fandom Cancel Use this fandom @@ -45,4 +49,9 @@ function onConfirm() { const f = store.fandomCache.find(x => x.id === selectedId.value) if (f) emit('confirm', f) } +// Create the character with no fandom. Emits null so the caller knows this +// was a deliberate "unassigned", not a cancel. +function onNoFandom() { + emit('confirm', null) +} diff --git a/frontend/src/components/modal/TagAutocomplete.vue b/frontend/src/components/modal/TagAutocomplete.vue index 9767af2..5131688 100644 --- a/frontend/src/components/modal/TagAutocomplete.vue +++ b/frontend/src/components/modal/TagAutocomplete.vue @@ -147,10 +147,14 @@ function onCreate () { reset() } +// fandom is null when the user picked "No fandom" — characters don't all +// belong to a fandom. The backend already accepts fandom_id: null for the +// character kind (tag.kind check + nullable fandom_id), and a fandom can be +// assigned later from the chip kebab's "Set fandom…". function onFandomChosen (fandom) { fandomDialog.value = false emit('pick-new', { - name: pendingNewName, kind: 'character', fandom_id: fandom.id, + name: pendingNewName, kind: 'character', fandom_id: fandom ? fandom.id : null, }) pendingNewName = null reset()