Fixed domnodeinserted listener and moved buttons

This commit is contained in:
2020-04-17 19:33:10 +03:00
parent 708cb72028
commit a1f1a71b7d
3 changed files with 32 additions and 22 deletions

View File

@@ -47,3 +47,7 @@
background-repeat: no-repeat;
padding: 6px;
}
.im-mess--actions {
margin-right: -30px !important;
}

4
controls.js vendored
View File

@@ -19,15 +19,13 @@ function muteBtnHTML(id) {
* @param chatBody {HTMLElement}
* @return {function(...[*]=)}
*/
function addControls(chatBody) {
return function (event) {
function addControls(event) {
console.log(event);
if (event.target.className === 'im-mess--check fl_l') {
const message = event.target.parentElement;
addControlButton(message)
}
}
}
/**
* Create mute button and inset it to the actionArea

View File

@@ -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 {
const chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0];
if (hideElements(chatBody)) {
clearInterval(hideInterval);
}
}
}
}, 200);