@@ -30,12 +30,12 @@ import CkEditor from '../ckeditor/ckeditor'
30
30
import SnippetBrowser from " ../components/snippet-browser/SnippetBrowser.vue"
31
31
import MediaBrowser from ' ../components/media-browser/MediaBrowser.vue'
32
32
import HasUUID from " ../components/mixins/hasUUID"
33
- import {DependentFormField , HandlesValidationErrors } from ' laravel-nova'
33
+ import {DependentFormField , HandlesValidationErrors , PreventsFormAbandonment } from ' laravel-nova'
34
34
import debounce from ' lodash/debounce'
35
35
import RegexParser from ' regex-parser'
36
36
37
37
export default {
38
- mixins: [DependentFormField, HandlesValidationErrors, HasUUID],
38
+ mixins: [DependentFormField, HandlesValidationErrors, PreventsFormAbandonment, HasUUID],
39
39
props: [' resourceName' , ' resourceId' , ' field' , ' toolbar' , ' formUniqueId' ],
40
40
components: {SnippetBrowser, MediaBrowser},
41
41
data () {
@@ -117,6 +117,10 @@ export default {
117
117
118
118
model .document .on (' change:data' , () => {
119
119
this .fieldHasChanged = true
120
+
121
+ if (this .currentField .alertBeforeUnsavedChanges ) {
122
+ this .preventLeavingForm ()
123
+ }
120
124
})
121
125
122
126
editor .editing .view .change ((writer ) => {
@@ -289,8 +293,6 @@ export default {
289
293
290
294
fill (formData ) {
291
295
if (this .currentlyIsVisible ) {
292
- this .fieldHasChanged = false
293
-
294
296
formData .append (this .currentField .attribute , this .value || ' ' )
295
297
}
296
298
},
@@ -331,16 +333,6 @@ export default {
331
333
resizeObserver .observe (innerEditor[0 ])
332
334
}
333
335
},
334
-
335
- alertOnUnchangedSaves () {
336
- if (this .currentField .alertBeforeUnsavedChanges ) {
337
- window .addEventListener (' beforeunload' , (event ) => {
338
- if (this .fieldHasChanged ) {
339
- event .preventDefault ()
340
- }
341
- })
342
- }
343
- }
344
336
},
345
337
created () {
346
338
this .$options [this .editorUUID ] = this .uuid ()
@@ -353,8 +345,6 @@ export default {
353
345
}
354
346
355
347
this .mounted = true
356
-
357
- this .alertOnUnchangedSaves ()
358
348
},
359
349
beforeUnmount () {
360
350
this .destroyCkEditor ()
0 commit comments