diff --git a/controls.js b/controls.js index 2ff203e..c9ff031 100644 --- a/controls.js +++ b/controls.js @@ -1,15 +1,15 @@ -function muteBtnHTML(id) { - return ` - 🔇 - Заглушить - ` -} +{ + function muteBtnHTML(id) { + return ` + 🔇 + Заглушить + ` + } -function addControls() { - if (event.target.className == 'im-mess--check fl_l') { - var message = event.target.parentElement; - - var actionsArea = message.getElementsByClassName("im-mess--actions")[0]; + function addControls(event, msg) { + let message = msg || event.target.parentElement; + + let actionsArea = message.getElementsByClassName("im-mess--actions")[0]; if (actionsArea && actionsArea.lastChild.className != "mute_message") { var sender_id = message.parentElement.parentElement.parentElement["dataset"].peer @@ -41,55 +41,26 @@ function addControls() { }); } } -} -var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + let chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; -chatBody.addEventListener('DOMNodeInserted', addControls); + chatBody.addEventListener('DOMNodeInserted', function(event) { + if (event.target.className == 'im-mess--check fl_l') { + addControls(event); + } + }); -// Try to add controls until successful. Needed for page refresh. -var controlsInterval = setInterval(function () { - var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + // Try to add controls until successful. Needed for page refresh. + let controlsInterval = setInterval(function () { + chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; - for (var item of chatBody.children) { - if (item.className.includes('im-mess-stack _im_mess_stack')) { - var messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); - for (var message of messages) { - var actionsArea = message.getElementsByClassName("im-mess--actions")[0]; - - if (actionsArea && actionsArea.lastChild.className != "mute_message") { - var sender_id = message.parentElement.parentElement.parentElement.dataset.peer; - - actionsArea.style['margin-right'] = "-30px"; - actionsArea.innerHTML += muteBtnHTML(sender_id); - var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; - muteBtn.style.display = "none"; - - actionsArea.parentElement.addEventListener("mouseenter", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = "inline-block"; - }); - - actionsArea.parentElement.addEventListener("mouseleave", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = "none"; - }); - - muteBtn.addEventListener("click", function(event) { - var clicked_id = event.target.id.substr(4); // get id of sender from element id - - chrome.storage.sync.set({idToHide: clicked_id}, function() { - for (var item of chatBody.children) { - if (item.dataset.peer == clicked_id) { - item.style.display = "none"; - } - } - - console.log('idToHide: ' + clicked_id); - }); - }); - } else if (actionsArea.lastChild.className == "mute_message") { - clearInterval(controlsInterval); + for (let item of chatBody.children) { + if (item.className.includes('im-mess-stack _im_mess_stack')) { + let messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); + for (let message of messages) { + addControls(null, message); } } } - } -}, 200); + }, 200); +} diff --git a/hide_element.js b/hide_element.js index 43f8dd6..be29970 100644 --- a/hide_element.js +++ b/hide_element.js @@ -1,37 +1,39 @@ -var idToHide; +{ + let idToHide; -var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + 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 ') { - chrome.storage.sync.get('idToHide', function(data) { - idToHide = data.idToHide; - }); + chatBody.addEventListener('DOMNodeInserted', function(event) { + if (event.target.className == 'im-mess-stack _im_mess_stack ') { + chrome.storage.sync.get('idToHide', function(data) { + idToHide = data.idToHide; + }); - chrome.storage.sync.get('isExtensionOn', function(data) { - if (data.isExtensionOn) { - if (event.target.dataset.peer == idToHide) { - event.target.style.display = "none"; + chrome.storage.sync.get('isExtensionOn', function(data) { + if (data.isExtensionOn) { + if (event.target.dataset.peer == idToHide) { + event.target.style.display = "none"; + } + } + }); + } + }); + + chrome.storage.sync.get('idToHide', function(data) { + idToHide = data.idToHide; + }); + + // Try to hide until successful. Needed for page refresh. + let hideInterval = setInterval(function () { + chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + for (let item of chatBody.children) { + if (item.dataset.peer == idToHide) { + if (item.style.display != "none") { + item.style.display = "none"; + } else { + clearInterval(hideInterval); } } - }); - } -}); - -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); - } } - } -}, 200); + }, 200); +}