From 31339de887a84041e6e13c5291fcdd990e7f409f Mon Sep 17 00:00:00 2001 From: axolotle Date: Tue, 29 Jun 2021 16:54:20 +0200 Subject: [PATCH] update tagsOptions depending on current nodes --- src/store/modules/library.js | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/store/modules/library.js b/src/store/modules/library.js index 2d1e611..31ceec7 100644 --- a/src/store/modules/library.js +++ b/src/store/modules/library.js @@ -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