only store changes as revisions

This commit is contained in:
Craig Kochis
2023-03-31 19:38:08 -04:00
parent 2ff3d08bb0
commit 8a1a5ac42b
+11 -2
View File
@@ -1,3 +1,5 @@
import {diff} from '@mapbox/mapbox-gl-style-spec'
export class RevisionStore { export class RevisionStore {
constructor(initialRevisions=[]) { constructor(initialRevisions=[]) {
this.revisions = initialRevisions this.revisions = initialRevisions
@@ -13,11 +15,18 @@ export class RevisionStore {
} }
addRevision(revision) { addRevision(revision) {
//TODO: compare new revision style id with old ones // only store revision if has changes
//and ensure that it is always the same id const changes = diff(revision, this.current);
if (changes.length > 0) {
// clear any "redo" revisions once a change is made
// and ensure current index is at end of list
this.revisions = this.revisions.slice(0, this.currentIdx + 1);
this.revisions.push(revision) this.revisions.push(revision)
this.currentIdx++ this.currentIdx++
} }
}
undo() { undo() {
if(this.currentIdx > 0) { if(this.currentIdx > 0) {