Browse Source

update node opening/closing

axolotle 3 years ago
parent
commit
5ab6e19cde

+ 9 - 4
src/components/layouts/NodeBook.vue

@@ -12,15 +12,20 @@
         :class="{ active: i === nodes.length - 1 }"
         :style="`--nth: ${i}`"
       >
-        <node-view-child-list :children="parent.children" :parent-id="parent.id" smartphone />
+        <node-view-child-list
+          :children="parent.children"
+          :parent-id="parent.id"
+          smartphone
+          @open-child="$emit('open-node', { parentId: parent.id, ...$event })"
+        />
 
         <node-view
           :node="parent"
           type="ref"
           mode="view"
           @open-node="$emit('open-node', $event)"
-          @open-child="$emit('open-node', parent.id, $event)"
-          @close-node="$emit('close-node', $event)"
+          @open-child="$emit('open-node', { parentId: parent.id, ...$event })"
+          @close-node="$emit('close-node', { parentId: $event })"
         />
 
         <section
@@ -39,7 +44,7 @@
               mode="view"
               type="prod"
               @open-node="$emit('open-node', $event)"
-              @close-node="$emit('close-node', parent.id, $event)"
+              @close-node="$emit('close-node', { parentId: parent.id, childId: $event })"
             />
           </div>
         </section>

+ 1 - 1
src/components/nodes/NodeViewChildList.vue

@@ -41,7 +41,7 @@ export default {
 
   methods: {
     onOpen (childId) {
-      this.$emit('open-child', childId)
+      this.$emit('open-child', { childId })
     }
   },
 

+ 2 - 2
src/components/nodes/NodeViewFooter.vue

@@ -71,8 +71,8 @@ export default {
   methods: {
     toCommaList,
 
-    onOpen (siblingId) {
-      this.$parent.$emit('open-node', siblingId)
+    onOpen (parentId) {
+      this.$parent.$emit('open-node', { parentId })
     }
   }
 }

+ 4 - 4
src/pages/Library.vue

@@ -74,12 +74,12 @@ export default {
       }
     },
 
-    openNode (parentId, childId) {
-      this.$store.dispatch('OPEN_NODE', [parentId, childId])
+    openNode (ids) {
+      this.$store.dispatch('OPEN_NODE', ids)
     },
 
-    closeNode (parentId, childId) {
-      this.$store.dispatch('CLOSE_NODE', [parentId, childId])
+    closeNode (ids) {
+      this.$store.dispatch('CLOSE_NODE', ids)
     }
   },
 

+ 5 - 2
src/pages/library/LibraryMap.vue

@@ -58,8 +58,11 @@ export default {
 
   methods: {
     onOpen (node) {
-      // FIXME ALSO CHECK IF PARENT
-      this.$emit('open-node', node.id)
+      if (node.parents) {
+        this.$emit('open-node', { parentId: node.parents[0].id, childId: node.id })
+      } else {
+        this.$emit('open-node', { parentId: node.id })
+      }
     }
   },
 

+ 9 - 1
src/pages/library/LibraryTree.vue

@@ -106,7 +106,15 @@ export default {
 
   methods: {
     toCommaList,
-    trim
+    trim,
+
+    onNodeClick (node) {
+      if (node.parents) {
+        this.$emit('open-node', { parentId: node.parents[0].id, childId: node.id })
+      } else {
+        this.$emit('open-node', { parentId: node.id })
+      }
+    }
   },
 
   created () {

+ 2 - 2
src/store/modules/library.js

@@ -132,14 +132,14 @@ export default {
       router.push({ query })
     },
 
-    async 'OPEN_NODE' ({ state, commit, dispatch }, [parentId, childId]) {
+    async 'OPEN_NODE' ({ state, commit, dispatch }, { parentId, childId }) {
       const stack = state.nodebook.find(stack => stack[0] === parentId)
       if (stack && (childId === undefined || stack.includes(childId))) return
       commit('ADD_NODEBOOK_NODE', [stack, parentId, childId])
       dispatch('UPDATE_QUERY_NODES')
     },
 
-    'CLOSE_NODE' ({ state, commit, dispatch }, [parentId, childId]) {
+    'CLOSE_NODE' ({ state, commit, dispatch }, { parentId, childId }) {
       const stack = state.nodebook.find(stack => stack.includes(parentId) && (childId ? stack.includes(childId) : true))
       commit('REMOVE_NODEBOOK_NODE', [stack, childId || parentId])
       dispatch('UPDATE_QUERY_NODES')