diff options
Diffstat (limited to 'app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue')
-rw-r--r-- | app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue b/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue new file mode 100644 index 00000000000..255f029bd27 --- /dev/null +++ b/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue @@ -0,0 +1,27 @@ +<script> +export default { + props: { + modified: { + type: Boolean, + required: false, + default: false, + }, + }, + created() { + window.addEventListener('beforeunload', this.requestConfirmation); + }, + destroyed() { + window.removeEventListener('beforeunload', this.requestConfirmation); + }, + methods: { + requestConfirmation(e) { + if (this.modified) { + e.preventDefault(); + // eslint-disable-next-line no-param-reassign + e.returnValue = ''; + } + }, + }, + render: () => null, +}; +</script> |