- {{ card.name }}
- — {{ card.fandom_name }}
+
+ {{ card.name }}
+ — {{ card.fandom_name }}
+
+
+
+
+
@@ -41,6 +49,7 @@ import { ref, watch, onMounted, onUnmounted } from 'vue'
import { useRouter } from 'vue-router'
import { useTagDirectoryStore } from '../stores/tagDirectory.js'
import TagCard from '../components/discovery/TagCard.vue'
+import MergeConfirmDialog from '../components/discovery/MergeConfirmDialog.vue'
const KINDS = ['artist', 'character', 'copyright', 'general', 'series', 'meta']
const store = useTagDirectoryStore()
@@ -49,6 +58,18 @@ const router = useRouter()
const search = ref('')
const kind = ref(null)
const sentinelEl = ref(null)
+const pendingMerge = ref(null)
+
+async function onRename({ id, name }) {
+ const res = await store.rename(id, name)
+ if (res.collision) pendingMerge.value = res.collision
+}
+
+async function confirmMerge() {
+ const c = pendingMerge.value
+ pendingMerge.value = null
+ if (c) await store.merge(c.sourceId, c.target.id)
+}
let debounce = null
watch(search, (v) => {