From ade982c605b1a79221c492df05057aabdb0bd261 Mon Sep 17 00:00:00 2001
From: Adam Procter <adamprocter@researchnot.es>
Date: Fri, 2 Oct 2020 10:55:35 +0100
Subject: [PATCH] changed myNodes

myNodes now is not reactive which fixed the major sync bug !! YES !
---
 .DS_Store                         | Bin 10244 -> 10244 bytes
 CHANGELOG.md                      |   8 ++++++++
 app/package.json                  |   2 +-
 app/src/components/NodesLayer.vue |  17 ++++++++++++++---
 app/src/views/List.vue            |   6 ++++--
 5 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/.DS_Store b/.DS_Store
index 168e6ef6134c828e8a261816e920c3331eeec3ee..109c2ae889d0ec12ec3cae3d563a2b76b53bdc04 100644
GIT binary patch
delta 19
acmZn(XbISGMu5%IQb)niWb-8fBXIyl4F)^_

delta 19
acmZn(XbISGMu5%SQb)niZ1W`nBXIyl0|q<*

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ba994f6..c992f6f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# 0.1.25
+
+_2nd October 2020_
+
+### Fixed
+
+- Major sync bug when multiplayer is now fixed!
+
 # 0.1.24
 
 _23rd September 2020_
diff --git a/app/package.json b/app/package.json
index 6673c7a..3c52320 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nodenogg.in",
-  "version": "0.1.24",
+  "version": "0.1.25",
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
diff --git a/app/src/components/NodesLayer.vue b/app/src/components/NodesLayer.vue
index 8f2c932..4048a9d 100644
--- a/app/src/components/NodesLayer.vue
+++ b/app/src/components/NodesLayer.vue
@@ -18,11 +18,12 @@
         >
           <form>
             <div v-if="value.read_mode == false">
-              <div v-for="value in myNodes" v-bind:key="value.node_id">
+              <div v-for="value in $options.myArray" v-bind:key="value.node_id">
                 <textarea
                   v-if="nodeid == value.node_id"
                   @focus="editTrue(true)"
                   @blur="editTrue(false)"
+                  v-model="value.node_text"
                   autofocus
                   @input="editNode"
                   :id="nodeid"
@@ -102,18 +103,20 @@
         >
           <form>
             <div v-if="value.read_mode == false">
-              <div v-for="value in myNodes" v-bind:key="value.node_id">
+              <div v-for="value in $options.myArray" v-bind:key="value.node_id">
                 <div v-if="nodeid == value.node_id">
                   <textarea
                     @focus="editTrue(true)"
                     @blur="editTrue(false)"
                     autofocus
+                    v-model="value.node_text"
                     @input="editNode"
                     :id="nodeid"
                     class="drag-cancel"
                     ref="nodetext"
                     placeholder="Idea goes here! (auto saved every keystroke)"
-                  ></textarea>
+                  >
+                  </textarea>
                 </div>
               </div>
             </div>
@@ -188,6 +191,7 @@ export default {
       pickupz: 1,
       localreadmode: false,
       mode: '',
+      // firstload: true,
     }
   },
 
@@ -216,6 +220,12 @@ export default {
     configEmoji: (state) => state.configEmoji,
     toolmode: (state) => state.ui.mode,
   }),
+  myArray: null,
+  created() {
+    //access the custom option using $options
+    this.$options.myArray = this.myNodes
+  },
+
   methods: {
     onActivated() {
       var i
@@ -302,6 +312,7 @@ export default {
 
     editTrue(e) {
       this.$emit('editTrue', e)
+      // this.firstload = false
       //  // console.log(e)
     },
 
diff --git a/app/src/views/List.vue b/app/src/views/List.vue
index b20cef1..d90b3de 100644
--- a/app/src/views/List.vue
+++ b/app/src/views/List.vue
@@ -27,6 +27,7 @@
               @focus="editTrue(true)"
               @blur="editTrue(false)"
               autofocus
+              v-model="value.node_text"
               @input="editNode"
               :id="nodeid"
               ref="nodetext"
@@ -109,6 +110,7 @@ import ModeToolbar from '@/experimental/ModeToolbar'
 import { mapState } from 'vuex'
 import marked from 'marked'
 import { shortcutsMixin } from '@/components/mixins/shortcutsMixin.js'
+import lodash from 'lodash'
 
 export default {
   name: 'List',
@@ -201,11 +203,11 @@ export default {
       this.$store.dispatch('shortcutState', e)
     },
 
-    editNode(e) {
+    editNode: lodash.debounce(function (e) {
       var nodeid = e.target.id
       var nodetext = e.target.value
       this.$store.dispatch('editNode', { nodeid, nodetext })
-    },
+    }, 2000),
   },
 }
 </script>
-- 
GitLab