Skip to content

Commit

Permalink
refactor(Modal): add back/restoreBodyStyle function (#5544)
Browse files Browse the repository at this point in the history
* refactor(Modal): keep body original style

* chore: bumpversion 9.4.7-beta03

* refactor: 重构代码
  • Loading branch information
ArgoZhang authored Mar 6, 2025
1 parent 1381afe commit f93cb6f
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions src/BootstrapBlazor/Components/Modal/Modal.razor.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
EventHandler.on(window, 'popstate', modal.pop)

modal.show = () => {
modal.originalStyle ??= document.body.style;
backupBodyStyle(modal);
const dialogs = el.querySelectorAll('.modal-dialog')
if (dialogs.length === 1) {
let backdrop = el.getAttribute('data-bs-backdrop') !== 'static'
Expand Down Expand Up @@ -63,8 +63,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
modal.hide = () => {
if (el.children.length === 1) {
modal.modal.hide();
document.body.style = modal.originalStyle;
modal.originalStyle = null;
restoreBodyStyle(modal);
}
else {
modal.invoke.invokeMethodAsync(modal.closeCallback)
Expand Down Expand Up @@ -148,11 +147,21 @@ export function dispose(id) {
dialog._hideModal();
}

if(modal.originalStyle) {
document.body.style = modal.originalStyle;
modal.originalStyle = null;
}
restoreBodyStyle(modal);
dialog.dispose()
}
}
}

const backupBodyStyle = modal => {
if(modal.originalStyle === void 0) {
modal.originalStyle = document.body.style.cssText;
}
}

const restoreBodyStyle = modal => {
if(modal.originalStyle !== void 0) {
document.body.style.cssText = modal.originalStyle;
delete modal.originalStyle;
}
}

0 comments on commit f93cb6f

Please sign in to comment.