From a1f1a71b7d338c8f924e7da4a8d050d258faf89a Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Fri, 17 Apr 2020 19:33:10 +0300 Subject: [PATCH] Fixed domnodeinserted listener and moved buttons --- controls.css | 4 ++++ controls.js | 12 +++++------- hide_element.js | 38 +++++++++++++++++++++++--------------- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/controls.css b/controls.css index 699d601..94c2687 100644 --- a/controls.css +++ b/controls.css @@ -46,4 +46,8 @@ /*background: url('chrome-extension://__MSG_@@extension_id__/mute.png') !important;*/ background-repeat: no-repeat; padding: 6px; +} + +.im-mess--actions { + margin-right: -30px !important; } \ No newline at end of file diff --git a/controls.js b/controls.js index adebe8a..6790b4c 100644 --- a/controls.js +++ b/controls.js @@ -19,13 +19,11 @@ function muteBtnHTML(id) { * @param chatBody {HTMLElement} * @return {function(...[*]=)} */ -function addControls(chatBody) { - return function (event) { - console.log(event); - if (event.target.className === 'im-mess--check fl_l') { - const message = event.target.parentElement; - addControlButton(message) - } +function addControls(event) { + console.log(event); + if (event.target.className === 'im-mess--check fl_l') { + const message = event.target.parentElement; + addControlButton(message) } } diff --git a/hide_element.js b/hide_element.js index 45c249d..319defe 100644 --- a/hide_element.js +++ b/hide_element.js @@ -1,9 +1,27 @@ -var idToHide; +// Returns false if there was an element not hidden +function hideElements(chatBody) { + let idToHide; + chrome.storage.sync.get('idToHide', function(data) { + idToHide = data.idToHide; + }); -var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + let r = true; + for (var item of chatBody.children) { + if (item.dataset.peer === idToHide) { + if (item.style.display !== "none") { + item.style.display = "none"; + r = false; + } + } + } + return r; +} + +let chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; chatBody.addEventListener('DOMNodeInserted', function(event) { if (event.target.className === 'im-mess-stack _im_mess_stack ') { + let idToHide; chrome.storage.sync.get('idToHide', function(data) { idToHide = data.idToHide; }); @@ -18,20 +36,10 @@ chatBody.addEventListener('DOMNodeInserted', function(event) { } }); -chrome.storage.sync.get('idToHide', function(data) { - idToHide = data.idToHide; -}); - // Try to hide until successful. Needed for page refresh. var hideInterval = setInterval(function () { - var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; - for (var item of chatBody.children) { - if (item.dataset.peer === idToHide) { - if (item.style.display !== "none") { - item.style.display = "none"; - } else { - clearInterval(hideInterval); - } - } + const chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + if (hideElements(chatBody)) { + clearInterval(hideInterval); } }, 200);