From 2723ed1da4f0bce916c574910f070939aba0067f Mon Sep 17 00:00:00 2001
From: Adam Procter <adamprocter@researchnot.es>
Date: Fri, 20 Aug 2021 12:46:25 +0100
Subject: [PATCH] staying connected

ADDED
added a leave button to clear localStorage refs

FIXED:
adding nodes reloads nodes & support for dev changes means you stay connected
---
 src/components/MyNodes.vue   | 38 ++++++++++++++----------------------
 src/components/ToolBar.vue   | 10 ++++++++++
 src/store/modules/mynodes.js |  5 +----
 src/store/modules/setup.js   |  3 ---
 src/views/Collect.vue        |  8 +++++++-
 5 files changed, 33 insertions(+), 31 deletions(-)

diff --git a/src/components/MyNodes.vue b/src/components/MyNodes.vue
index 429687a..385e08b 100644
--- a/src/components/MyNodes.vue
+++ b/src/components/MyNodes.vue
@@ -1,5 +1,5 @@
 <template>
-  <div v-for="(nodes, index) in myArray" v-bind:key="index">
+  <div v-for="(nodes, index) in myArray" :key="index">
     <form class="nodes">
       <template v-if="nodes.node_readmode == false">
         <textarea
@@ -55,35 +55,27 @@ export default {
   },
 
   mounted() {
+    //console.log('mounted')
     setTimeout(this.loadData, 500)
-    //console.log(this.microcosmName.microcosmName)
-    // NOT SURE THIS IS DOING ANYTHING ???
-    // const unwatch = this.$watch('nodesFiltered', (value) => {
-    //   this.$options.myArray = this.nodesFiltered
-    //   this.$forceUpdate()
-    //   // ignore falsy values
-    //   if (!value) return
-    //   // stop watching when nodesFiltered[] is not empty
-    //   if (value && value.length) unwatch()
-    //   // process value here
-    // })
-  },
 
-  watch: {
-    added: {
-      deep: true,
-      handler() {
-        setTimeout(this.loadData, 500)
-      },
-    },
+    if (localStorage.nogg_name && localStorage.nogg_microcosm) {
+      var devicename = localStorage.nogg_name
+      var microcosm = localStorage.nogg_microcosm
+      this.$store.dispatch('setMicrocosm', { devicename, microcosm })
+    } else {
+      console.log('no')
+      // go home
+    }
   },
 
   methods: {
     loadData() {
       // console.log('loading data')
-      this.myArray = this.nodesFiltered
-      // console.log(this.myArray)
-      // this.$forceUpdate()
+      var nodesFiltered = this.myNodes.myNodes.filter(
+        (nodes) => nodes.node_deleted == false
+      )
+      this.$store.dispatch('getMynodes')
+      this.myArray = nodesFiltered.reverse()
     },
 
     editNode(e) {
diff --git a/src/components/ToolBar.vue b/src/components/ToolBar.vue
index fda9b36..3e0b432 100644
--- a/src/components/ToolBar.vue
+++ b/src/components/ToolBar.vue
@@ -4,6 +4,7 @@
     <button>Select Node</button>
     <button>Make Connections</button>
     <UploadMedia />
+    <button @click="exitMicrocosm()">Exit</button>
   </div>
 </template>
 
@@ -37,6 +38,15 @@ export default {
       this.$emit('added-node')
       this.$store.dispatch('addNode')
     },
+    exitMicrocosm() {
+    
+      localStorage.removeItem('nogg_microcosm')
+      localStorage.removeItem('nogg_name')
+
+      location.assign(
+        process.env.VUE_APP_HTTP + '://' + process.env.VUE_APP_URL + '/'
+      )
+    },
   },
 }
 </script>
diff --git a/src/store/modules/mynodes.js b/src/store/modules/mynodes.js
index 5ae758b..9997cfe 100644
--- a/src/store/modules/mynodes.js
+++ b/src/store/modules/mynodes.js
@@ -6,8 +6,6 @@ var deviceName
 export const state = {
   myNodes: [],
   activeNode: {},
-  lastMicrocosm: '',
-  lastdeviceName: '',
 }
 
 export const mutations = {
@@ -81,7 +79,7 @@ export const mutations = {
       })
   },
   GET_MY_NODES() {
-    // console.log('called ' + deviceName)
+    console.log('called ' + deviceName)
     pouchdb
       .get(deviceName)
       .then(function (doc) {
@@ -108,7 +106,6 @@ export const mutations = {
       .get(deviceName)
       .then(function (doc) {
         // put the store into pouchdb
-
         return pouchdb.bulkDocs([
           {
             _id: deviceName,
diff --git a/src/store/modules/setup.js b/src/store/modules/setup.js
index c934ada..065fedf 100644
--- a/src/store/modules/setup.js
+++ b/src/store/modules/setup.js
@@ -14,9 +14,6 @@ export const mutations = {
   SET_MICROCOSM(state, e) {
     state.deviceName = e.devicename
     state.microcosmName = e.microcosm
-    // if (state.microcosmName == '') {
-    //   console.log('empty')
-    // }
 
     pouchdb = new PouchDB(state.microcosmName)
     state.pouchdb = pouchdb
diff --git a/src/views/Collect.vue b/src/views/Collect.vue
index 98d210c..a071729 100644
--- a/src/views/Collect.vue
+++ b/src/views/Collect.vue
@@ -1,6 +1,6 @@
 <template>
   <ToolBar @added-node="addedNode" />
-  <MyNodes :added="added" />
+  <MyNodes :added="added" :key="componentKey" />
 </template>
 
 <script>
@@ -21,6 +21,7 @@ export default {
 
   data() {
     return {
+      componentKey: 0,
       added: true,
     }
   },
@@ -29,6 +30,11 @@ export default {
     addedNode() {
       //console.log('I hear you!')
       this.added = !this.added
+      this.forceRender()
+    },
+    forceRender() {
+      // reloads the data after adding a node
+      this.componentKey += 1
     },
   },
 }
-- 
GitLab