File tree Expand file tree Collapse file tree 1 file changed +20
-7
lines changed
src/unfold/static/unfold/js Expand file tree Collapse file tree 1 file changed +20
-7
lines changed Original file line number Diff line number Diff line change @@ -17,14 +17,27 @@ window.addEventListener("load", (e) => {
1717 *************************************************************/
1818const warnWithoutSaving = ( ) => {
1919 let formChanged = false ;
20+ const form = document . querySelector ( "form.warn-unsaved-form" ) ;
2021
21- Array . from (
22- document . querySelectorAll (
23- "form.warn-unsaved-form input, form.warn-unsaved-form select"
24- )
25- ) . forEach ( ( field ) => {
26- field . addEventListener ( "change" , ( e ) => ( formChanged = true ) ) ;
27- } ) ;
22+ const checkFormChanged = ( ) => {
23+ const elements = document . querySelectorAll (
24+ "form.warn-unsaved-form input, form.warn-unsaved-form select, form.warn-unsaved-form textarea"
25+ ) ;
26+
27+ Array . from ( elements ) . forEach ( ( field ) => {
28+ field . addEventListener ( "input" , ( e ) => ( formChanged = true ) ) ;
29+ } ) ;
30+ } ;
31+
32+ if ( ! form ) {
33+ return ;
34+ }
35+
36+ new MutationObserver ( ( mutationsList , observer ) => {
37+ checkFormChanged ( ) ;
38+ } ) . observe ( form , { attributes : true , childList : true , subtree : true } ) ;
39+
40+ checkFormChanged ( ) ;
2841
2942 window . addEventListener ( "beforeunload" , ( e ) => {
3043 if ( formChanged ) {
You can’t perform that action at this time.
0 commit comments