diff --git a/index.js b/index.js index 1a95d15..a524bbd 100644 --- a/index.js +++ b/index.js @@ -56,8 +56,7 @@ window.addEventListener('keydown', (event) => { // add model to store import modelData from './models/circle_error.d3sketch'; import JSONToSketchData from './src/shape/JSONToSketchData.js'; -const { data, appVersion } = JSON.parse(modelData); -JSONToSketchData({ data }, appVersion).then(sketch => { +JSONToSketchData(JSON.parse(modelData)).then(sketch => { store.dispatch(actions.openSketch(sketch)); }); diff --git a/src/components/App.js b/src/components/App.js index 85418ac..357fa63 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -99,8 +99,8 @@ class App extends React.Component { case 'D3SKETCH': case 'JSON': const url = URL.createObjectURL(file); - const { data, appVersion } = await fetch(url).then(result => result.json()); - const sketchData = await JSONToSketchData(data, appVersion); + const data = await fetch(url).then(result => result.json()); + const sketchData = await JSONToSketchData(data); openSketch(sketchData); break; case 'JPG': diff --git a/src/components/DoodlePreview.js b/src/components/DoodlePreview.js index acc4a6f..d18b504 100644 --- a/src/components/DoodlePreview.js +++ b/src/components/DoodlePreview.js @@ -48,7 +48,7 @@ class DoodlePreview extends React.Component { async componentDidMount() { let { docData, sketchData } = this.props; - if (docData) sketchData = await JSONToSketchData(docData.data, docData.appVersion); + if (docData) sketchData = await JSONToSketchData(docData); const { canvas } = this.refs; diff --git a/src/shape/JSONToSketchData.js b/src/shape/JSONToSketchData.js index 3f047be..1756365 100644 --- a/src/shape/JSONToSketchData.js +++ b/src/shape/JSONToSketchData.js @@ -68,12 +68,12 @@ function revive(appVersion, key, value) { return value; } -export default async function JSONToSketchData(data, appVersion) { +export default async function JSONToSketchData({ data, appVersion }) { let sketchData; if (semver.gt(appVersion, '0.17.4')) { sketchData = reviveObject(data, (key, value) => revive(appVersion, key, value)); } else { - sketchData = JSON.parse(data.data, (key, value) => revive(appVersion, key, value)); + sketchData = JSON.parse(data, (key, value) => revive(appVersion, key, value)); } sketchData = await recursivePromiseApply(sketchData); diff --git a/src/shape/docToFile.js b/src/shape/docToFile.js index 786c4a0..c38553e 100644 --- a/src/shape/docToFile.js +++ b/src/shape/docToFile.js @@ -9,8 +9,7 @@ export default async function docToFile(db, doc, { image = false, sketch = false author: doc.author, id: doc._id, createdOn: doc.createdOn, - updatedOn: doc.updatedOn, - appVersion: doc.appVersion + updatedOn: doc.updatedOn }; if (doc.class) response.class = doc.class; @@ -28,7 +27,7 @@ export default async function docToFile(db, doc, { image = false, sketch = false } const data = await blobToJSON(doc._attachments.sketch.data); - response.data = await JSONToSketchData(data, appVersion); + response.data = await JSONToSketchData(data); } else { const data = { data: doc.data, appVersion }; response.data = await JSONToSketchData(data); diff --git a/src/shape/sketchDataToJSON.js b/src/shape/sketchDataToJSON.js index 2599a80..10fb9db 100644 --- a/src/shape/sketchDataToJSON.js +++ b/src/shape/sketchDataToJSON.js @@ -1,4 +1,5 @@ import { vectorArrayToBase64, imageToBase64 } from '../utils/binaryUtils.js'; +import { VERSION } from '../constants/general.js'; function createShapeData(shape) { shape = { ...shape }; @@ -59,5 +60,5 @@ export default function sketchDataToJSON({ objectsById, spaces }) { } } - return data; + return { data, appVersion: VERSION }; }