From e2e6c2abe7bb398d0877beae249fb1dd8dba71c7 Mon Sep 17 00:00:00 2001 From: TheGoddessInari Date: Mon, 5 Aug 2019 13:05:01 -0700 Subject: [PATCH] Fix Slack Icon Loading. --- app/util/IconLoader.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/app/util/IconLoader.js b/app/util/IconLoader.js index 46566c28..10986b35 100644 --- a/app/util/IconLoader.js +++ b/app/util/IconLoader.js @@ -18,16 +18,33 @@ Ext.define('Hamsket.util.IconLoader', { this.loadServiceIconUrl = function (service, webview) { switch (service.type) { case 'slack': - webview.executeJavaScript( - "(()=>{let a=document.querySelector('.team_icon');if(!a){const d=document.querySelector('#team_menu');d&&(d.click(),a=document.querySelector('.team_icon'))}if(!a)return!1;const{style:{backgroundImage:b}}=a,c=document.createEvent('MouseEvents');return c.initEvent('mousedown',!0,!0),document.querySelector('.client_channels_list_container').dispatchEvent(c),b.slice(5,-2)})();", - false, - function (backgroundImage) { + setTimeout( () => + webview.executeJavaScript( + `(() => { + let icon = document.querySelector('.c-team_icon'); + if (!icon) { + const doc = document.querySelector('#team-menu-trigger'); + if (doc) { + doc.click(); + icon = document.querySelector('.c-team_icon'); + doc.click(); + } + } + if (!icon) return false; + const { + style: { + backgroundImage: bg + } + } = icon; + return bg.slice(5, -2); + })();`).then(function (backgroundImage) { if (backgroundImage) { - service.setTitle(''+service.title); + service.setTitle(''+service.title); service.fireEvent('iconchange', service, backgroundImage, service.icon); } + return true; } - ); + ).finally({}), 1000); break; default: break;