aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-03-11 07:18:33 +0300
committerRblSb <msrblsb@gmail.com>2020-03-11 07:18:33 +0300
commit43d38010b20ca15c1aa909a578afeb5edd8c8bd3 (patch)
tree6e2c944cd3a94cf15f55e560ff664bd0860db1b0
parent1fb3e2de251f5f1d33a43cd13bc4ca6d3ae23c26 (diff)
Emotes lazy load
-rw-r--r--res/client.js24
-rw-r--r--src/client/Buttons.hx12
-rw-r--r--src/client/Main.hx2
3 files changed, 29 insertions, 9 deletions
diff --git a/res/client.js b/res/client.js
index 55b2328..3716025 100644
--- a/res/client.js
+++ b/res/client.js
@@ -430,13 +430,27 @@ client_Buttons.init = function(main) {
};
var smilesBtn = window.document.querySelector("#smilesbtn");
smilesBtn.onclick = function(e1) {
- smilesBtn.classList.toggle("active");
var smilesWrap = window.document.querySelector("#smileswrap");
- if(smilesBtn.classList.contains("active")) {
- return smilesWrap.style.display = "block";
+ if(smilesWrap.children.length == 0) {
+ return;
+ }
+ if(smilesBtn.classList.toggle("active")) {
+ smilesWrap.style.display = "block";
} else {
- return smilesWrap.style.display = "none";
+ smilesWrap.style.display = "none";
+ }
+ if(smilesWrap.firstElementChild.dataset.src == null) {
+ return;
+ }
+ var _g = 0;
+ var _g1 = smilesWrap.children;
+ while(_g < _g1.length) {
+ var child = _g1[_g];
+ ++_g;
+ child.src = child.dataset.src;
+ child.removeAttribute("data-src");
}
+ return;
};
window.document.querySelector("#clearchatbtn").onclick = function(e2) {
if((main.personal.group & 4) != 0) {
@@ -1215,7 +1229,7 @@ client_Main.prototype = {
++_g4;
var img = window.document.createElement("img");
img.className = "smile-preview";
- img.src = emote1.image;
+ img.dataset.src = emote1.image;
img.title = emote1.name;
smilesWrap.appendChild(img);
}
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);
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage