@@ -34,7 +34,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
34
34
EventHandler . on ( window , 'popstate' , modal . pop )
35
35
36
36
modal . show = ( ) => {
37
- modal . originalStyle ??= document . body . style ;
37
+ backupBodyStyle ( modal ) ;
38
38
const dialogs = el . querySelectorAll ( '.modal-dialog' )
39
39
if ( dialogs . length === 1 ) {
40
40
let backdrop = el . getAttribute ( 'data-bs-backdrop' ) !== 'static'
@@ -63,8 +63,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
63
63
modal . hide = ( ) => {
64
64
if ( el . children . length === 1 ) {
65
65
modal . modal . hide ( ) ;
66
- document . body . style = modal . originalStyle ;
67
- modal . originalStyle = null ;
66
+ restoreBodyStyle ( modal ) ;
68
67
}
69
68
else {
70
69
modal . invoke . invokeMethodAsync ( modal . closeCallback )
@@ -148,11 +147,21 @@ export function dispose(id) {
148
147
dialog . _hideModal ( ) ;
149
148
}
150
149
151
- if ( modal . originalStyle ) {
152
- document . body . style = modal . originalStyle ;
153
- modal . originalStyle = null ;
154
- }
150
+ restoreBodyStyle ( modal ) ;
155
151
dialog . dispose ( )
156
152
}
157
153
}
158
154
}
155
+
156
+ const backupBodyStyle = modal => {
157
+ if ( modal . originalStyle === void 0 ) {
158
+ modal . originalStyle = document . body . style . cssText ;
159
+ }
160
+ }
161
+
162
+ const restoreBodyStyle = modal => {
163
+ if ( modal . originalStyle !== void 0 ) {
164
+ document . body . style . cssText = modal . originalStyle ;
165
+ delete modal . originalStyle ;
166
+ }
167
+ }
0 commit comments