From 1519c3470ceb06329cbd1a53815d4c8adeb51bfb Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Thu, 8 Nov 2018 10:42:11 +0000
Subject: Stop multiple discussion requests

With multiple discussion requests we loose the reactivity of the
previously stored discussions state.
This means that certain features, toggling line discussions for example,
are no longer reactive.
---
 app/assets/javascripts/notes/components/notes_app.vue | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'app/assets/javascripts/notes/components/notes_app.vue')

diff --git a/app/assets/javascripts/notes/components/notes_app.vue b/app/assets/javascripts/notes/components/notes_app.vue
index ed5ac112dc0..e555279a6ac 100644
--- a/app/assets/javascripts/notes/components/notes_app.vue
+++ b/app/assets/javascripts/notes/components/notes_app.vue
@@ -50,6 +50,7 @@ export default {
   },
   data() {
     return {
+      isFetching: false,
       currentFilter: null,
     };
   },
@@ -141,6 +142,10 @@ export default {
       return discussion.individual_note ? { note: discussion.notes[0] } : { discussion };
     },
     fetchNotes() {
+      if (this.isFetching) return null;
+
+      this.isFetching = true;
+
       return this.fetchDiscussions({ path: this.getNotesDataByProp('discussionsPath') })
         .then(() => {
           this.initPolling();
@@ -149,6 +154,7 @@ export default {
           this.setLoadingState(false);
           this.setNotesFetchedState(true);
           eventHub.$emit('fetchedNotesData');
+          this.isFetching = false;
         })
         .then(() => this.$nextTick())
         .then(() => this.checkLocationHash())
-- 
cgit v1.2.1

