diff --git a/client/components/editor.vue b/client/components/editor.vue index 124813dc..5ba575ac 100644 --- a/client/components/editor.vue +++ b/client/components/editor.vue @@ -118,6 +118,7 @@ export default { dialogProgress: false, dialogEditorSelector: false, dialogUnsaved: false, + exitConfirmed: false, initContentParsed: '' } }, @@ -161,6 +162,14 @@ export default { } else { this.currentEditor = `editor${_.startCase(this.initEditor || 'markdown')}` } + + window.onbeforeunload = () => { + if (!this.exitConfirmed && this.initContentParsed !== this.$store.get('editor/content')) { + return 'You have unsaved edits. Are you sure you want to leave the editor?' + } else { + return undefined + } + } }, methods: { openPropsModal(name) { @@ -263,6 +272,7 @@ export default { exitGo() { this.$store.commit(`loadingStart`, 'editor-close') this.currentEditor = '' + this.exitConfirmed = true _.delay(() => { if (this.$store.get('editor/mode') === 'create') { window.location.assign(`/`)