From b30b7df9f4b4e1ae7ec55750bca7577bf88abd0b Mon Sep 17 00:00:00 2001 From: silverwind Date: Fri, 3 May 2024 03:48:24 +0200 Subject: [PATCH] Fix body margin shifting with modals, fix error on project column edit (#30831) Fixes: https://github.com/go-gitea/gitea/issues/30816, regression from https://github.com/go-gitea/gitea/pull/30723. Fixes: https://github.com/go-gitea/gitea/pull/30815, regression from https://github.com/go-gitea/gitea/pull/30723. Fomantic [expects a callback](https://github.com/fomantic/Fomantic-UI/blob/59d9b409879ad9413ea0a3efa4ab2e51017ad9b9/src/definitions/modules/modal.js#L530-L534) to be called during `hide` which we did not do, so it could never remove the margin it added to `body`. I do observe the body content shifting to right by 1px when modal opens, but this is a bug that existed on v1.21 as well, so not a regression. --------- Co-authored-by: wxiaoguang --- web_src/js/modules/fomantic/dimmer.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web_src/js/modules/fomantic/dimmer.js b/web_src/js/modules/fomantic/dimmer.js index f434e1ca59b..e027838d4a5 100644 --- a/web_src/js/modules/fomantic/dimmer.js +++ b/web_src/js/modules/fomantic/dimmer.js @@ -3,11 +3,12 @@ import {queryElemChildren} from '../../utils/dom.js'; export function initFomanticDimmer() { // stand-in for removed dimmer module - $.fn.dimmer = function (arg0, $el) { + $.fn.dimmer = function (arg0, arg1) { if (arg0 === 'add content') { + const $el = arg1; const existingDimmer = document.querySelector('body > .ui.dimmer'); if (existingDimmer) { - queryElemChildren(existingDimmer, '*', (el) => el.remove()); + queryElemChildren(existingDimmer, '*', (el) => el.classList.add('hidden')); this._dimmer = existingDimmer; } else { this._dimmer = document.createElement('div'); @@ -21,8 +22,10 @@ export function initFomanticDimmer() { this._dimmer.classList.add('active'); document.body.classList.add('tw-overflow-hidden'); } else if (arg0 === 'hide') { + const cb = arg1; this._dimmer.classList.remove('active'); document.body.classList.remove('tw-overflow-hidden'); + cb(); } return this; };