diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index f63bb207b2e..a53e555c293 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.4.7-beta02 + 9.4.7-beta03 diff --git a/src/BootstrapBlazor/Components/Modal/Modal.razor.js b/src/BootstrapBlazor/Components/Modal/Modal.razor.js index 5773fff818d..1137ccfe2e1 100644 --- a/src/BootstrapBlazor/Components/Modal/Modal.razor.js +++ b/src/BootstrapBlazor/Components/Modal/Modal.razor.js @@ -12,7 +12,8 @@ export function init(id, invoke, shownCallback, closeCallback) { if (modal) { modal.hide(); } - } + }, + originalStyle: null } Data.set(id, modal) @@ -33,6 +34,7 @@ export function init(id, invoke, shownCallback, closeCallback) { EventHandler.on(window, 'popstate', modal.pop) modal.show = () => { + modal.originalStyle ??= document.body.style; const dialogs = el.querySelectorAll('.modal-dialog') if (dialogs.length === 1) { let backdrop = el.getAttribute('data-bs-backdrop') !== 'static' @@ -61,6 +63,8 @@ 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; } else { modal.invoke.invokeMethodAsync(modal.closeCallback) @@ -143,6 +147,11 @@ export function dispose(id) { dialog._backdrop._config.isAnimated = false; dialog._hideModal(); } + + if(modal.originalStyle) { + document.body.style = modal.originalStyle; + modal.originalStyle = null; + } dialog.dispose() } }