Skip to content

Commit

Permalink
fix(Pages.Editor.Main): import JSZip chunk as default, closes #85
Browse files Browse the repository at this point in the history
  • Loading branch information
tbash committed Feb 20, 2019
1 parent 4dc534b commit 3217ead
Showing 1 changed file with 63 additions and 58 deletions.
121 changes: 63 additions & 58 deletions assets/src/Pages/Editor/Main.js
Original file line number Diff line number Diff line change
@@ -1,74 +1,79 @@
export default {
flags(current) {
const recovery = localStorage.getItem('Pages.Editor.recovery')
const user = localStorage.getItem('Pages.Editor.user')
const recovery = localStorage.getItem("Pages.Editor.recovery");
const user = localStorage.getItem("Pages.Editor.user");
return Object.assign({}, current, {
recovery: recovery ? JSON.parse(recovery) : null,
user: user ? JSON.parse(user) : null,
latestTerms: window.ellieConfig.latestTerms
})
});
},
start(app) {
window.addEventListener('online', () => app.ports.inbound.send(['NetworkStatus', true]))
window.addEventListener('offline', () => app.ports.inbound.send(['NetworkStatus', false]))
window.addEventListener("online", () =>
app.ports.inbound.send(["NetworkStatus", true])
);
window.addEventListener("offline", () =>
app.ports.inbound.send(["NetworkStatus", false])
);

let acknowledgedReload = false
const preventNavigation = (e) => {
e.returnValue = 'You have unsaved work. Are you sure you want to go?'
acknowledgedReload = true
}
let acknowledgedReload = false;
const preventNavigation = e => {
e.returnValue = "You have unsaved work. Are you sure you want to go?";
acknowledgedReload = true;
};

window.addEventListener("unload", () => {
if (acknowledgedReload) localStorage.removeItem("Pages.Editor.recovery");
});

window.addEventListener('unload', () => {
if (acknowledgedReload) localStorage.removeItem('Pages.Editor.recovery')
})

app.ports.outbound.subscribe(([tag, contents]) => {
switch (tag) {
case 'OpenInNewTab':
const [url] = contents
window.open(url, '_blank')
break

case 'UpdateUser':
const [user] = contents
localStorage.setItem('Pages.Editor.user', JSON.stringify(user))
break

case 'UpdateRecoveryRevision':
const [data] = contents
localStorage.setItem('Pages.Editor.recovery', JSON.stringify(data))
if (data !== null) window.addEventListener('beforeunload', preventNavigation)
else window.removeEventListener('beforeunload', preventNavigation)
break

case 'DownloadZip':
const [project, elm, html] = contents
import('jszip').then(JSZip => {
const zip = new JSZip()
zip.file('Main.elm', elm)
zip.file('index.html', html)
zip.file('elm.json', project)
zip.generateAsync({ type: 'blob' }).then(blob => {
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = 'ellie.zip'
a.click()
URL.revokeObjectURL(url)
})
})
break
case "OpenInNewTab":
const [url] = contents;
window.open(url, "_blank");
break;

case "UpdateUser":
const [user] = contents;
localStorage.setItem("Pages.Editor.user", JSON.stringify(user));
break;

case "UpdateRecoveryRevision":
const [data] = contents;
localStorage.setItem("Pages.Editor.recovery", JSON.stringify(data));
if (data !== null)
window.addEventListener("beforeunload", preventNavigation);
else window.removeEventListener("beforeunload", preventNavigation);
break;

case "DownloadZip":
const [project, elm, html] = contents;
import("jszip").then(({ default: JSZip }) => {
const zip = new JSZip();
zip.file("Main.elm", elm);
zip.file("index.html", html);
zip.file("elm.json", project);
zip.generateAsync({ type: "blob" }).then(blob => {
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "ellie.zip";
a.click();
URL.revokeObjectURL(url);
});
});
break;

case "MoveElmCursor":
const editor = document.getElementById("elm");
if (!editor) break;
const [line, column] = contents;
editor.moveCursor(line, column);
break;

case 'MoveElmCursor':
const editor = document.getElementById('elm')
if (!editor) break
const [line, column] = contents
editor.moveCursor(line, column)
break

default:
break
break;
}
})
});
}
}
};

0 comments on commit 3217ead

Please sign in to comment.