Skip to content

Commit db0dba6

Browse files
dynamically added close image icon in the title column
1 parent 8af4c36 commit db0dba6

3 files changed

Lines changed: 37 additions & 17 deletions

File tree

src/css/popup.css

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,11 @@ span ~ .panel-header-text {
653653

654654
/* Container info list */
655655
.container-info-tab-title {
656-
flex: 1;
656+
display: flex;
657+
}
658+
659+
.container-info-tab-row:hover .container-info-tab-title .truncate-text {
660+
inline-size: 184px;
657661
}
658662

659663
#container-info-hideorshow {
@@ -671,16 +675,18 @@ span ~ .panel-header-text {
671675
}
672676

673677
.container-close-tab {
674-
inline-size: 50%;
675-
opacity: 0;
678+
transform: scale(0.7);
679+
visibility: collapse;
676680
}
677681

678682
.container-info-tab-row:hover .container-close-tab {
679683
opacity: 0.5;
684+
visibility: visible;
680685
}
681686

682687
.container-info-tab-row .container-close-tab:hover {
683688
opacity: 1;
689+
visibility: visible;
684690
}
685691

686692
.container-info-has-tabs,

src/img/container-close-tab.svg

Lines changed: 1 addition & 1 deletion
Loading

src/js/popup.js

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -777,28 +777,42 @@ Logic.registerPanel(P_CONTAINER_INFO, {
777777
tr.classList.add("container-info-tab-row");
778778
tr.innerHTML = escaped`
779779
<td></td>
780-
<td class="container-info-tab-title truncate-text" title="${tab.url}" >${tab.title}</td>
781-
<td><img src="/img/container-close-tab.svg" id="${tab.id}" class="container-close-tab" /></td>`;
780+
<td class="container-info-tab-title truncate-text" title="${tab.url}" ><div class="container-tab-title">${tab.title}</div></td>`;
782781
tr.querySelector("td").appendChild(Utils.createFavIconElement(tab.favIconUrl));
783-
784782
document.getElementById("container-info-table").appendChild(fragment);
785-
786-
const closeTab = document.getElementById(tab.id);
787-
if(tab.hiddenState) {
788-
closeTab.remove();
789-
}
790-
783+
791784
// On click, we activate this tab. But only if this tab is active.
792785
if (!tab.hiddenState) {
786+
const closeImage = document.createElement("img");
787+
closeImage.src="/img/container-close-tab.svg";
788+
closeImage.className = "container-close-tab";
789+
closeImage.title="Close tab";
790+
closeImage.id = tab.id;
791+
tr.querySelector(".container-info-tab-title").appendChild(closeImage);
792+
793+
// On hover, we add truncate-text class to add close-tab-image after tab title truncates
794+
tr.addEventListener("mouseover", () => {
795+
tr.querySelector(".container-info-tab-title").classList.remove("truncate-text");
796+
tr.querySelector(".container-tab-title").classList.add("truncate-text");
797+
});
798+
tr.addEventListener("mouseout", () => {
799+
tr.querySelector(".container-info-tab-title").classList.add("truncate-text");
800+
tr.querySelector(".container-tab-title").classList.remove("truncate-text");
801+
});
802+
793803
tr.classList.add("clickable");
794804
Logic.addEnterHandler(tr, async function () {
795805
await browser.tabs.update(tab.id, {active: true});
796806
window.close();
797807
});
798-
Logic.addEnterHandler(closeTab, async function(e) {
799-
await browser.tabs.remove(Number(e.target.id));
800-
window.close();
801-
});
808+
809+
const closeTab = document.getElementById(tab.id);
810+
if (closeTab) {
811+
Logic.addEnterHandler(closeTab, async function(e) {
812+
await browser.tabs.remove(Number(e.target.id));
813+
window.close();
814+
});
815+
}
802816
}
803817
}
804818
},

0 commit comments

Comments
 (0)