From 54b6fd44857ca4cf1707b3030a8850214dd7e42b Mon Sep 17 00:00:00 2001 From: Sebastian Knackstedt Date: Wed, 30 Jan 2019 22:50:16 +0100 Subject: [PATCH 1/4] Add ability to add not closeable tabs --- index.html | 19 ++++++++++++++++++- js/chrome-tabs.js | 18 +++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 1fa0de5..3744b9d 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,6 @@
Google
-
@@ -70,8 +69,10 @@
+ +
@@ -108,9 +109,25 @@ }) }) + document.querySelector('button[data-add-not-closeable-tab]').addEventListener('click', _ => { + chromeTabs.addTab({ + title: 'New Tab', + favicon: false + }, { + closeable: false + }) + }) + document.querySelector('button[data-remove-tab]').addEventListener('click', _ => { chromeTabs.removeTab(chromeTabs.activeTabEl) }) + + + document.querySelector('button[data-remove-all]').addEventListener('click', _ => { + chromeTabs.tabEls.forEach(element => { + chromeTabs.removeTab(element) + }); + }) document.querySelector('button[data-theme-toggle]').addEventListener('click', _ => { if (el.classList.contains('chrome-tabs-dark-theme')) { diff --git a/js/chrome-tabs.js b/js/chrome-tabs.js index 34ab771..87c02f7 100644 --- a/js/chrome-tabs.js +++ b/js/chrome-tabs.js @@ -40,7 +40,6 @@
-
` @@ -179,14 +178,19 @@ this.styleEl.innerHTML = styleHTML } - createNewTabEl() { + createNewTabEl(closeable) { const div = document.createElement('div') div.innerHTML = tabTemplate + if(closeable){ + const closeDiv = document.createElement('div') + closeDiv.classList.add('chrome-tab-close') + div.querySelector('.chrome-tab-content').appendChild(closeDiv) + } return div.firstElementChild } - addTab(tabProperties, { animate = true, background = false } = {}) { - const tabEl = this.createNewTabEl() + addTab(tabProperties, { animate = true, background = false, closeable = true } = {}) { + const tabEl = this.createNewTabEl(closeable) if (animate) { tabEl.classList.add('chrome-tab-was-just-added') @@ -202,10 +206,14 @@ this.cleanUpPreviouslyDraggedTabs() this.layoutTabs() this.setupDraggabilly() + return tabEl } setTabCloseEventListener(tabEl) { - tabEl.querySelector('.chrome-tab-close').addEventListener('click', _ => this.removeTab(tabEl)) + const tab = tabEl.querySelector('.chrome-tab-close') + if(tab !== null){ + tab.addEventListener('click', _ => this.removeTab(tabEl)) + } } get activeTabEl() { From 51f38774cda841cdf4a450bc48b3f57e0d44db6a Mon Sep 17 00:00:00 2001 From: Sebastian Knackstedt Date: Wed, 30 Jan 2019 22:53:33 +0100 Subject: [PATCH 2/4] Fix demo --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 3744b9d..ae468b5 100644 --- a/index.html +++ b/index.html @@ -33,6 +33,7 @@
Google
+
From 87ef3f171f80ddaecc6602728006911ed044b5a6 Mon Sep 17 00:00:00 2001 From: Sebastian Knackstedt Date: Wed, 30 Jan 2019 22:54:56 +0100 Subject: [PATCH 3/4] Don't use tabs --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index ae468b5..e1ded24 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,7 @@
Google
-
+
From 58f03269301491d5dcb48325474fa85314ab7b24 Mon Sep 17 00:00:00 2001 From: Sebastian Knackstedt Date: Fri, 12 Apr 2019 22:59:26 +0200 Subject: [PATCH 4/4] Minor changes --- js/chrome-tabs.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/js/chrome-tabs.js b/js/chrome-tabs.js index 87c02f7..cab5792 100644 --- a/js/chrome-tabs.js +++ b/js/chrome-tabs.js @@ -40,6 +40,7 @@
+
` @@ -181,10 +182,8 @@ createNewTabEl(closeable) { const div = document.createElement('div') div.innerHTML = tabTemplate - if(closeable){ - const closeDiv = document.createElement('div') - closeDiv.classList.add('chrome-tab-close') - div.querySelector('.chrome-tab-content').appendChild(closeDiv) + if(!closeable) { + div.querySelector('.chrome-tab-content').removeChild(div.querySelector('.chrome-tab-close')) } return div.firstElementChild }