From 43d38010b20ca15c1aa909a578afeb5edd8c8bd3 Mon Sep 17 00:00:00 2001 From: RblSb Date: Wed, 11 Mar 2020 07:18:33 +0300 Subject: Emotes lazy load --- src/client/Buttons.hx | 12 +++++++++--- src/client/Main.hx | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/client/Buttons.hx b/src/client/Buttons.hx index b8e4a16..b5656e1 100644 --- a/src/client/Buttons.hx +++ b/src/client/Buttons.hx @@ -1,5 +1,6 @@ package client; +import js.html.ImageElement; import haxe.Timer; import js.html.KeyboardEvent; import js.html.InputElement; @@ -30,11 +31,16 @@ class Buttons { final smilesBtn = ge("#smilesbtn"); smilesBtn.onclick = e -> { - smilesBtn.classList.toggle("active"); final smilesWrap = ge("#smileswrap"); - if (smilesBtn.classList.contains("active")) - smilesWrap.style.display = "block"; + if (smilesWrap.children.length == 0) return; + final isActive = smilesBtn.classList.toggle("active"); + if (isActive) smilesWrap.style.display = "block"; else smilesWrap.style.display = "none"; + if (smilesWrap.firstElementChild.dataset.src == null) return; + for (child in smilesWrap.children) { + (cast child : ImageElement).src = child.dataset.src; + child.removeAttribute("data-src"); + } } ge("#clearchatbtn").onclick = e -> { diff --git a/src/client/Main.hx b/src/client/Main.hx index 0db93a8..cee749b 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -454,7 +454,7 @@ class Main { for (emote in config.emotes) { final img = document.createImageElement(); img.className = "smile-preview"; - img.src = emote.image; + img.dataset.src = emote.image; img.title = emote.name; smilesWrap.appendChild(img); } -- cgit v1.2.3