update tagsOptions depending on current nodes

This commit is contained in:
axolotle
2021-06-29 16:54:20 +02:00
parent c536c37ec2
commit 31339de887
+8 -15
View File
@@ -2,9 +2,6 @@ import Vue from 'vue'
import router from '@/router'
import api from '@/api'
import {
AllTags
} from '@/api/queries'
import {
parseNodesQueryParams,
getUniqueNodesIds,
@@ -71,7 +68,8 @@ export default {
// │ │├─╯ │ │ │ ││││╰─╮
// ╰─╯╵ ╵ ╶┴╴╰─╯╵╰╯╶─╯
'SET_TAGS_OPTIONS' (state, tags) {
'SET_TAGS_OPTIONS' (state, nodes) {
const tags = nodes.reduce((tags, node) => tags.concat(node.tags || []), [])
state.tagsOptions = Array.from(new Set(tags.map(tag => tag.name)))
},
@@ -104,7 +102,6 @@ export default {
async 'INIT_LIBRARY' ({ state, commit, dispatch, rootState }) {
const departIds = await dispatch('GET_ALL_NODES_IDS', 'depart')
await dispatch('GET_NODES', { ids: departIds, dataLevel: 'initial' })
dispatch('GET_ALL_TAGS')
if (state.nodebook && state.nodebook.length) {
commit('UPDATE_OPTIONS_VISIBILITY', false)
}
@@ -122,12 +119,16 @@ export default {
const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' })
const relatedIds = getRelatedNodesIds(departNodes, ids)
const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' })
return [...departNodes, ...relatedNodes]
const nodes = [...departNodes, ...relatedNodes]
commit('SET_TAGS_OPTIONS', nodes)
return nodes
},
async 'INIT_LIBRARY_LIST' ({ state, commit, dispatch }) {
const departIds = await dispatch('INIT_LIBRARY')
return dispatch('GET_NODES', { ids: departIds, dataLevel: 'partial' })
const nodes = await dispatch('GET_NODES', { ids: departIds, dataLevel: 'partial' })
commit('SET_TAGS_OPTIONS', nodes)
return nodes
},
async 'UPDATE_NODEBOOK' ({ state, commit, dispatch }, query) {
@@ -171,14 +172,6 @@ export default {
// │ │├─╯ │ │ │ ││││╰─╮
// ╰─╯╵ ╵ ╶┴╴╰─╯╵╰╯╶─╯
'GET_ALL_TAGS' ({ state, commit }) {
if (state.tagsOptions.length) return state.tagsOptions
return api.query(AllTags).then(data => {
commit('SET_TAGS_OPTIONS', data.tags)
return state.tagsOptions
})
},
async 'SET_NODE_DEPART_ID' ({ state, rootState, commit, dispatch, getters }, id) {
if (state.nodeDepartId === id) return