diff --git a/src/App.vue b/src/App.vue
index ec6b6a8..8df30b8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -5,18 +5,22 @@
+
+
+
+
diff --git a/src/store/modules/library.js b/src/store/modules/library.js
index e45f2e7..597eeaa 100644
--- a/src/store/modules/library.js
+++ b/src/store/modules/library.js
@@ -134,8 +134,10 @@ export default {
async 'UPDATE_NODEBOOK' ({ state, commit, dispatch }, query) {
const { mode = 'tree', nodebook } = parseNodesQueryParams(query)
commit('SET_MODE', mode)
- await dispatch('GET_NODES', { ids: [].concat(...nodebook), dataLevel: 'full' })
+ const ids = [].concat(...nodebook)
+ await dispatch('GET_NODES', { ids, dataLevel: 'full' })
commit('SET_NODEBOOK', nodebook)
+ commit('ADD_HISTORY_ENTRIES', ids)
},
// ╭╮╷╭─╮┌─╮┌─╴╭─╴
@@ -157,6 +159,7 @@ export default {
const stack = state.nodebook.find(stack => stack[0] === parentId)
commit('ADD_NODEBOOK_NODE', [stack, parentId, childId])
dispatch('UPDATE_QUERY_NODES')
+ commit('ADD_HISTORY_ENTRIES', [childId || parentId])
},
'CLOSE_NODE' ({ state, commit, dispatch }, { parentId, childId }) {
diff --git a/src/store/nodes.js b/src/store/nodes.js
index 1880ce5..5da5495 100644
--- a/src/store/nodes.js
+++ b/src/store/nodes.js
@@ -84,6 +84,14 @@ export default {
}
},
+ 'ADD_HISTORY_ENTRIES' (state, ids) {
+ for (const id of ids) {
+ if (!state.history.includes(id)) {
+ state.history.push(id)
+ }
+ }
+ },
+
'UPDATE_OPTIONS_VISIBILITY' (state, visible) {
state.optionsVisible = visible
}
@@ -144,6 +152,7 @@ export default {
// Args getters
nodes: state => ids => ids.map(id => state.nodes[id]),
node: state => id => state.nodes[id],
- optionsVisible: state => state.optionsVisible
+ optionsVisible: state => state.optionsVisible,
+ history: state => state.history.map(id => state.nodes[id])
}
}