Remove assertion debug code for show/hide refactoring (#23576) (#23868)

Backport #23576 by @wxiaoguang

When doing the refactoring:

* #22950

I added some debug mode code (assertShown) to help to catch bugs, it did
catch some bugs like:

* #23074

If it has been proved that there is no more bugs, this assertion could
be removed easily and clearly.

Feel free to decide when to remove it (feel free to convert it from
Draft to Ready for Review).
pull/23875/head
Giteabot 2 years ago committed by GitHub
parent 8abfbe2165
commit 026167f854
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 26
      web_src/js/utils/dom.js

@ -1,23 +1,3 @@
function getComputedStyleProperty(el, prop) {
const cs = el ? window.getComputedStyle(el) : null;
return cs ? cs[prop] : null;
}
function isShown(el) {
return getComputedStyleProperty(el, 'display') !== 'none';
}
function assertShown(el, expectShown) {
if (window.config.runModeIsProd) return;
// to help developers to catch display bugs, this assertion can be removed after next release cycle or if it has been proved that there is no bug.
if (expectShown && !isShown(el)) {
throw new Error('element is hidden but should be shown');
} else if (!expectShown && isShown(el)) {
throw new Error('element is shown but should be hidden');
}
}
function elementsCall(el, func, ...args) { function elementsCall(el, func, ...args) {
if (typeof el === 'string' || el instanceof String) { if (typeof el === 'string' || el instanceof String) {
el = document.querySelectorAll(el); el = document.querySelectorAll(el);
@ -41,16 +21,10 @@ function elementsCall(el, func, ...args) {
function toggleShown(el, force) { function toggleShown(el, force) {
if (force === true) { if (force === true) {
el.classList.remove('gt-hidden'); el.classList.remove('gt-hidden');
assertShown(el, true);
} else if (force === false) { } else if (force === false) {
el.classList.add('gt-hidden'); el.classList.add('gt-hidden');
assertShown(el, false);
} else if (force === undefined) { } else if (force === undefined) {
const wasShown = window.config.runModeIsProd ? undefined : isShown(el);
el.classList.toggle('gt-hidden'); el.classList.toggle('gt-hidden');
if (wasShown !== undefined) {
assertShown(el, !wasShown);
}
} else { } else {
throw new Error('invalid force argument'); throw new Error('invalid force argument');
} }

Loading…
Cancel
Save