diff options
Diffstat (limited to 'src/js/utils')
-rw-r--r-- | src/js/utils/animation.js | 16 | ||||
-rw-r--r-- | src/js/utils/elements.js | 11 | ||||
-rw-r--r-- | src/js/utils/i18n.js | 4 | ||||
-rw-r--r-- | src/js/utils/loadSprite.js | 1 | ||||
-rw-r--r-- | src/js/utils/style.js | 11 |
5 files changed, 19 insertions, 24 deletions
diff --git a/src/js/utils/animation.js b/src/js/utils/animation.js index 6b950b61..3f721b5a 100644 --- a/src/js/utils/animation.js +++ b/src/js/utils/animation.js @@ -2,7 +2,6 @@ // Animation utils // ========================================================================== -import { toggleHidden } from './elements'; import is from './is'; export const transitionEndEvent = (() => { @@ -21,14 +20,19 @@ export const transitionEndEvent = (() => { })(); // Force repaint of element -export function repaint(element) { +export function repaint(element, delay) { setTimeout(() => { try { - toggleHidden(element, true); - element.offsetHeight; // eslint-disable-line - toggleHidden(element, false); + // eslint-disable-next-line no-param-reassign + element.hidden = true; + + // eslint-disable-next-line no-unused-expressions + element.offsetHeight; + + // eslint-disable-next-line no-param-reassign + element.hidden = false; } catch (e) { // Do nothing } - }, 0); + }, delay); } diff --git a/src/js/utils/elements.js b/src/js/utils/elements.js index 94744771..4f10938e 100644 --- a/src/js/utils/elements.js +++ b/src/js/utils/elements.js @@ -192,11 +192,8 @@ export function toggleHidden(element, hidden) { hide = !element.hidden; } - if (hide) { - element.setAttribute('hidden', ''); - } else { - element.removeAttribute('hidden'); - } + // eslint-disable-next-line no-param-reassign + element.hidden = hide; } // Mirror Element.classList.toggle, with IE compatibility for "force" argument @@ -231,14 +228,14 @@ export function matches(element, selector) { return Array.from(document.querySelectorAll(selector)).includes(this); } - const matches = + const method = prototype.matches || prototype.webkitMatchesSelector || prototype.mozMatchesSelector || prototype.msMatchesSelector || match; - return matches.call(element, selector); + return method.call(element, selector); } // Find all elements diff --git a/src/js/utils/i18n.js b/src/js/utils/i18n.js index 758ed695..5eee5829 100644 --- a/src/js/utils/i18n.js +++ b/src/js/utils/i18n.js @@ -36,8 +36,8 @@ const i18n = { '{title}': config.title, }; - Object.entries(replace).forEach(([key, value]) => { - string = replaceAll(string, key, value); + Object.entries(replace).forEach(([k, v]) => { + string = replaceAll(string, k, v); }); return string; diff --git a/src/js/utils/loadSprite.js b/src/js/utils/loadSprite.js index 092f9986..fe4add00 100644 --- a/src/js/utils/loadSprite.js +++ b/src/js/utils/loadSprite.js @@ -18,6 +18,7 @@ export default function loadSprite(url, id) { const exists = () => document.getElementById(id) !== null; const update = (container, data) => { + // eslint-disable-next-line no-param-reassign container.innerHTML = data; // Check again incase of race condition diff --git a/src/js/utils/style.js b/src/js/utils/style.js index 6f3069c9..941db8f2 100644 --- a/src/js/utils/style.js +++ b/src/js/utils/style.js @@ -27,15 +27,8 @@ export function reduceAspectRatio(ratio) { } export function getAspectRatio(input) { - const parse = ratio => { - if (!validateRatio(ratio)) { - return null; - } - - return ratio.split(':').map(Number); - }; - - // Provided ratio + const parse = ratio => (validateRatio(ratio) ? ratio.split(':').map(Number) : null); + // Try provided ratio let ratio = parse(input); // Get from config |