/* global browser, window, document, localStorage */ const CONTAINER_HIDE_SRC = '/img/container-hide.svg'; const CONTAINER_UNHIDE_SRC = '/img/container-unhide.svg'; function hideContainerTabs(userContextId) { const tabIdsToRemove = []; const tabUrlsToSave = []; const hideorshowIcon = document.querySelector(`#uci-${userContextId}-hideorshow-icon`); browser.runtime.sendMessage({ method: 'queryTabs', userContextId: userContextId }).then(tabs=> { tabs.forEach(tab=> { tabIdsToRemove.push(tab.id); tabUrlsToSave.push(tab.url); }); browser.runtime.sendMessage({ method: 'hideTabs', userContextId: userContextId, tabUrlsToSave: tabUrlsToSave }).then(()=> { return browser.runtime.sendMessage({ method: 'removeTabs', tabIds: tabIdsToRemove }); }).then(() => { hideorshowIcon.src = CONTAINER_UNHIDE_SRC; }); }); } function showContainerTabs(userContextId) { const hideorshowIcon = document.querySelector(`#uci-${userContextId}-hideorshow-icon`); browser.runtime.sendMessage({ method: 'showTabs', userContextId: userContextId }).then(hiddenTabUrls=> { hiddenTabUrls.forEach(url=> { browser.runtime.sendMessage({ method: 'openTab', userContextId: userContextId, url: url }); }); }).then(() => { hideorshowIcon.src = CONTAINER_HIDE_SRC; }); } if (localStorage.getItem('onboarded2')) { for (const element of document.querySelectorAll('.onboarding')) { element.classList.add('hide'); } document.querySelector('#container-panel').classList.remove('hide'); } else if (localStorage.getItem('onboarded1')) { document.querySelector('.onboarding-panel-1').classList.add('hide'); document.querySelector('#container-panel').classList.add('hide'); } else { document.querySelector('.onboarding-panel-2').classList.add('hide'); document.querySelector('#container-panel').classList.add('hide'); } document.querySelector('#onboarding-next-button').addEventListener('click', ()=> { localStorage.setItem('onboarded1', true); document.querySelector('.onboarding-panel-2').classList.remove('hide'); document.querySelector('.onboarding-panel-1').classList.add('hide'); document.querySelector('#container-panel').classList.add('hide'); }); document.querySelector('#onboarding-done-button').addEventListener('click', ()=> { localStorage.setItem('onboarded2', true); document.querySelector('.onboarding-panel-1').classList.add('hide'); document.querySelector('.onboarding-panel-2').classList.add('hide'); document.querySelector('#container-panel').classList.remove('hide'); }); browser.runtime.sendMessage({method: 'queryIdentities'}).then(identities=> { const identitiesListElement = document.querySelector('.identities-list'); identities.forEach(identity=> { let hideOrShowIconSrc = CONTAINER_HIDE_SRC; if (identity.hiddenTabUrls.length) { hideOrShowIconSrc = CONTAINER_UNHIDE_SRC; } const identityRow = `
${identity.name} > `; identitiesListElement.innerHTML += identityRow; }); const rows = identitiesListElement.querySelectorAll('tr'); rows.forEach(row=> { row.addEventListener('click', e=> { const userContextId = e.target.parentElement.parentElement.dataset.identityCookieStoreId; if (e.target.matches('.hideorshow-icon')) { browser.runtime.sendMessage({method: 'getIdentitiesState'}).then(identitiesState=> { if (identitiesState[userContextId].hiddenTabUrls.length) { showContainerTabs(userContextId); } else { hideContainerTabs(userContextId); } }); } else if (e.target.matches('.newtab-icon')) { browser.runtime.sendMessage({ method: 'openTab', userContextId: userContextId}) .then(() => { window.close(); }); } }); }); }); document.querySelector('#edit-containers-link').addEventListener('click', ()=> { browser.runtime.sendMessage({ method: 'openTab', url: "about:preferences#containers" }).then(()=> { window.close(); }); }); function moveTabs(sortedTabsArray) { let positionIndex = 0; sortedTabsArray.forEach(tabID=> { browser.tabs.move(tabID, {index: positionIndex}); positionIndex++; }); } document.querySelector('#sort-containers-link').addEventListener('click', ()=> { browser.runtime.sendMessage({ method: 'queryIdentities' }).then(identities=> { identities.unshift({userContextId: 0}); browser.runtime.sendMessage({method: 'queryTabs'}).then(tabsArray=> { const sortedTabsArray = []; identities.forEach(identity=> { tabsArray.forEach(tab=> { if (tab.userContextId === identity.userContextId) { sortedTabsArray.push(tab.id); } }); }); moveTabs(sortedTabsArray); }); }); });