Skip to content

Commit 61536c2

Browse files
committed
refactor: 重构代码
1 parent 0ecdb64 commit 61536c2

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

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

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
1212
if (modal) {
1313
modal.hide();
1414
}
15-
},
16-
originalStyle: null
15+
}
1716
}
1817
Data.set(id, modal)
1918

@@ -34,7 +33,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
3433
EventHandler.on(window, 'popstate', modal.pop)
3534

3635
modal.show = () => {
37-
modal.originalStyle ??= document.body.style;
36+
backupBodyStyle(modal);
3837
const dialogs = el.querySelectorAll('.modal-dialog')
3938
if (dialogs.length === 1) {
4039
let backdrop = el.getAttribute('data-bs-backdrop') !== 'static'
@@ -63,8 +62,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
6362
modal.hide = () => {
6463
if (el.children.length === 1) {
6564
modal.modal.hide();
66-
document.body.style = modal.originalStyle;
67-
modal.originalStyle = null;
65+
restoreBodyStyle(modal);
6866
}
6967
else {
7068
modal.invoke.invokeMethodAsync(modal.closeCallback)
@@ -148,11 +146,21 @@ export function dispose(id) {
148146
dialog._hideModal();
149147
}
150148

151-
if(modal.originalStyle) {
152-
document.body.style = modal.originalStyle;
153-
modal.originalStyle = null;
154-
}
149+
restoreBodyStyle(modal);
155150
dialog.dispose()
156151
}
157152
}
158153
}
154+
155+
const backupBodyStyle = modal => {
156+
if(modal.originalStyle === void 0) {
157+
modal.originalStyle = document.body.style.cssText;
158+
}
159+
}
160+
161+
const restoreBodyStyle = modal => {
162+
if(modal.originalStyle !== void 0) {
163+
document.body.style.cssText = modal.originalStyle;
164+
delete modal.originalStyle;
165+
}
166+
}

0 commit comments

Comments
 (0)