From a9786e13e323c711dec8357d5a19d6ea93b4295f Mon Sep 17 00:00:00 2001
From: Alexandros Georgantas <alexgeorg86@gmail.com>
Date: Wed, 22 Feb 2017 11:56:35 +0200
Subject: [PATCH] Live update functionality of track changes fixed

---
 .../elements/track_change/TrackChangeComponent.js   | 13 +++++++++++--
 .../elements/track_change/TrackChangesProvider.js   |  6 ------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
index f8d023a..30215e3 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
@@ -1,6 +1,11 @@
 import { AnnotationComponent } from 'substance'
 
 class TrackChangeComponent extends AnnotationComponent {
+
+  didMount () {
+    this.context.editorSession.onUpdate('document', this.onTrackChangesUpdated, this)
+  }
+
   render ($$) {
     const { id, status, user } = this.props.node
     const canAct = this.canAct()
@@ -64,7 +69,6 @@ class TrackChangeComponent extends AnnotationComponent {
   resolve (action) {
     const annotation = this.props.node
     const provider = this.getProvider()
-    console.log('provider', provider)
 
     provider.resolve(annotation, action)
   }
@@ -88,7 +92,6 @@ class TrackChangeComponent extends AnnotationComponent {
     const annotation = this.props.node
     const annotationSelection = annotation.getSelection()
 
-    console.log('context', this.context)
     const surface = this.context.surface
 
     const selection = surface.editorSession.getSelection()
@@ -101,6 +104,12 @@ class TrackChangeComponent extends AnnotationComponent {
     if (overlaps && !contains) return true
     return false
   }
+
+  onTrackChangesUpdated (change) {
+    const trackChangesProvider = this.getProvider()
+    trackChangesProvider.handleDocumentChange(change)
+    this.rerender()
+  }
 }
 
 export default TrackChangeComponent
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
index 900b498..e890b09 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
@@ -25,9 +25,6 @@ class TrackChangesProvider extends TOCProvider {
   constructor (document, config) {
     super(document, config)
     // config.documentSession.on('didUpdate', this.handleUndoRedo, this)
-    console.log('this track provider', this)
-    // HACK -- use TOCProvider's event to capture new / deleted changes
-    this.on('toc:updated', this.reComputeEntries, this)
 
     // handle button actions
     const editor = this.config.controller
@@ -553,8 +550,6 @@ class TrackChangesProvider extends TOCProvider {
     const selection = annotation.getSelection()
     const status = annotation.status
 
-    console.log('resolve', this)
-
     this.removeTrackAnnotation(annotation)
 
     if (
@@ -576,7 +571,6 @@ class TrackChangesProvider extends TOCProvider {
     })
 
     const entries = this.sortNodes(changes)
-    console.log('entries', entries)
     return entries
   }
 
-- 
GitLab