Skip to content

Commit f93cb6f

Browse files
authored
refactor(Modal): add back/restoreBodyStyle function (#5544)
* refactor(Modal): keep body original style * chore: bumpversion 9.4.7-beta03 * refactor: 重构代码
1 parent 1381afe commit f93cb6f

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/BootstrapBlazor/Components/Modal/Modal.razor.js

+16-7
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
3434
EventHandler.on(window, 'popstate', modal.pop)
3535

3636
modal.show = () => {
37-
modal.originalStyle ??= document.body.style;
37+
backupBodyStyle(modal);
3838
const dialogs = el.querySelectorAll('.modal-dialog')
3939
if (dialogs.length === 1) {
4040
let backdrop = el.getAttribute('data-bs-backdrop') !== 'static'
@@ -63,8 +63,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
6363
modal.hide = () => {
6464
if (el.children.length === 1) {
6565
modal.modal.hide();
66-
document.body.style = modal.originalStyle;
67-
modal.originalStyle = null;
66+
restoreBodyStyle(modal);
6867
}
6968
else {
7069
modal.invoke.invokeMethodAsync(modal.closeCallback)
@@ -148,11 +147,21 @@ export function dispose(id) {
148147
dialog._hideModal();
149148
}
150149

151-
if(modal.originalStyle) {
152-
document.body.style = modal.originalStyle;
153-
modal.originalStyle = null;
154-
}
150+
restoreBodyStyle(modal);
155151
dialog.dispose()
156152
}
157153
}
158154
}
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

Comments
 (0)