Remove assertion debug code for show/hide refactoring (#23576)
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). cc: @silverwind
This commit is contained in:
parent
c9d7c83e30
commit
fcb9ef8788
|
@ -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…
Reference in New Issue