diff options
author | RaindropsSys <raindrops@equestria.dev> | 2023-11-17 23:25:16 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2023-11-17 23:25:16 +0100 |
commit | 4bd815753eae7a1ddcc0fcdc152f0005531c8450 (patch) | |
tree | fd967a7b6aa9162bc608acd6fca637bb330c191b | |
parent | ea4c46cf14cd24873379332da57d2b4600e8d3e6 (diff) | |
download | chatroom-4bd815753eae7a1ddcc0fcdc152f0005531c8450.tar.gz chatroom-4bd815753eae7a1ddcc0fcdc152f0005531c8450.tar.bz2 chatroom-4bd815753eae7a1ddcc0fcdc152f0005531c8450.zip |
Updated 2 files and added client/icons/dismiss.svg (automated)
-rw-r--r-- | client/icons/dismiss.svg | 1 | ||||
-rw-r--r-- | client/index.html | 43 | ||||
-rwxr-xr-x | client/main.js | 8 |
3 files changed, 35 insertions, 17 deletions
diff --git a/client/icons/dismiss.svg b/client/icons/dismiss.svg new file mode 100644 index 0000000..c4b81e1 --- /dev/null +++ b/client/icons/dismiss.svg @@ -0,0 +1 @@ +<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094-.083.094Z" fill="#000000"/></svg>
\ No newline at end of file diff --git a/client/index.html b/client/index.html index 3a9e3a0..d156d3b 100644 --- a/client/index.html +++ b/client/index.html @@ -54,9 +54,19 @@ window.activeTab = -1; function refreshTabBar() { + let id = window.activeTab; + + if (id > -1) { + Array.from(document.getElementById("windows").children).map((i) => { + i.classList.remove("open"); + }); + + tabs[id].webview.classList.add("open"); + } + document.getElementById("tabs").innerHTML = window.tabs.map((i, j) => ` <li class="nav-item"> - <a class="nav-link ${j === window.activeTab ? 'active' : ''}" aria-current="page" href="#" onclick="switchToTab(${j});"><img style="width: 24px; height: 24px;" alt="" src="${i.icon}"><span style="vertical-align: middle; margin-left: 5px; width: 171px; display: inline-block; white-space: nowrap; overflow: hidden !important; text-overflow: ellipsis">${i.name}</span></a> + <a class="nav-link ${j === window.activeTab ? 'active' : ''}" aria-current="page" href="#" onclick="switchToTab(${j});"><img style="width: 24px; height: 24px;" alt="" src="${i.icon}"><span style="vertical-align: middle; margin-left: 5px; width: 171px; display: inline-block; white-space: nowrap; overflow: hidden !important; text-overflow: ellipsis">${i.name}</span><span style="display: inline-block;" onclick="event.preventDefault(); closeTab(${j});"><img alt="" src="./icons/dismiss.svg"></span></a> </li> `).join("") + `<li class="nav-item"> <a class="nav-link" aria-current="page" href="#" onclick="openHome();"><img alt="" src="./icons/new.svg"></a> @@ -78,11 +88,12 @@ icon: "./icons/placeholder.svg", name: "Unnamed tab", url, - webview + webview, + id: crypto.randomUUID() } webview.src = url; - webview.id = "wv-item-" + tabs.length; + webview.id = "wv-item-" + tab.id; webview.addEventListener('page-title-updated', (e) => { if (webview.getURL().startsWith("https://school.equestria.dev/")) { tab.name = "Chat"; @@ -115,11 +126,6 @@ } function switchToTab(id) { - Array.from(document.getElementById("windows").children).map((i) => { - i.classList.remove("open"); - }); - - tabs[id].webview.classList.add("open"); window.activeTab = id; refreshTabBar(); } @@ -128,6 +134,20 @@ openTab("file:///" + __dirname + "/apps/home.html"); } + function closeTab(id) { + if (id === window.activeTab) { + closeCurrentTab(); + return; + } else if (window.activeTab > id) { + window.activeTab--; + } + + document.getElementById("wv-item-" + tabs[id].id).outerHTML = ""; + window.tabs = tabs.filter((i, j) => j !== id); + + refreshTabBar(); + } + function closeCurrentTab() { let oldActiveTab = window.activeTab; @@ -138,15 +158,10 @@ window.activeTab--; } - document.getElementById("wv-item-" + oldActiveTab).outerHTML = ""; + document.getElementById("wv-item-" + tabs[oldActiveTab].id).outerHTML = ""; window.tabs = tabs.filter((i, j) => j !== oldActiveTab); - for (let wv of Array.from(document.getElementsByTagName("webview"))) { - wv.id = "wv-item-" + (parseInt(wv.id.split("-")[2]) - 1); - } - console.log(window.activeTab); - switchToTab(window.activeTab); } diff --git a/client/main.js b/client/main.js index a886fd5..076674c 100755 --- a/client/main.js +++ b/client/main.js @@ -62,9 +62,11 @@ const createWindow = () => { }
let menu = Menu.buildFromTemplate([
- {
- role: "appMenu",
- },
+ ...(process.platform === "darwin" ? [
+ {
+ role: "appMenu",
+ }
+ ] : []),
{
type: "submenu",
label: "File",
|