-
{{ .strings.invites }}
-
{{ .strings.accounts }}
-
{{ .strings.activity }}
-
{{ .strings.settings }}
+
+
+
+
+
diff --git a/ts/admin.ts b/ts/admin.ts
index 22a65fd..9226417 100644
--- a/ts/admin.ts
+++ b/ts/admin.ts
@@ -101,6 +101,34 @@ window.availableProfiles = window.availableProfiles || [];
}
})();
+// Make the navbar horizontally scrollable by dragging (with mouse)
+// doesn't work incredibly well so disabled.
+/*[...document.getElementsByClassName("horizontally-scrollable")].forEach((c: HTMLElement) => {
+ c.classList.add("cursor-pointer");
+ let down = false;
+ let startX: number, scrollLeft: number;
+ c.addEventListener("mousedown", (ev: MouseEvent) => {
+ console.log("down");
+ down = true;
+ c.classList.add("active");
+ startX = ev.pageX - c.offsetLeft;
+ scrollLeft = c.scrollLeft;
+ });
+ const leave = () => {
+ console.log("up");
+ down = false;
+ c.classList.remove("active");
+ };
+ c.addEventListener("mouseleave", leave);
+ c.addEventListener("mouseup", leave);
+ c.addEventListener("mousemove", (ev: MouseEvent) => {
+ if (!down) return;
+ const x = ev.pageX - c.offsetLeft;
+ const walk = x - startX;
+ c.scrollLeft = scrollLeft - walk;
+ });
+});*/
+
var inviteCreator = new createInvite();
var accounts = new accountsList();
diff --git a/ts/modules/tabs.ts b/ts/modules/tabs.ts
index 130c064..d688d4b 100644
--- a/ts/modules/tabs.ts
+++ b/ts/modules/tabs.ts
@@ -33,13 +33,20 @@ export class Tabs implements Tabs {
let tab: Tab = {
page: null,
tabEl: document.getElementById("tab-" + tabID) as HTMLDivElement,
- buttonEl: document.getElementById("button-tab-" + tabID) as HTMLSpanElement,
+ buttonEl: document.getElementById("button-tab-" + tabID) as HTMLButtonElement,
preFunc: preFunc,
postFunc: postFunc,
};
if (this._baseOffset == -1) {
this._baseOffset = tab.buttonEl.offsetLeft;
}
+ const order = Array.from(this.tabs.keys());
+ let scrollTo: () => number = (): number => tab.buttonEl.offsetLeft - this._baseOffset;
+ if (order.length > 0) {
+ scrollTo = (): number =>
+ tab.buttonEl.offsetLeft - (tab.buttonEl.parentElement.offsetWidth - tab.buttonEl.offsetWidth) / 2;
+ }
+
tab.page = {
name: tabID,
title: document.title /*FIXME: Get actual names from translations*/,
@@ -47,7 +54,11 @@ export class Tabs implements Tabs {
show: () => {
tab.buttonEl.classList.add("active", "~urge");
tab.tabEl.classList.remove("unfocused");
- tab.buttonEl.parentElement.scrollTo(tab.buttonEl.offsetLeft - this._baseOffset, 0);
+ tab.buttonEl.parentElement.scrollTo({
+ left: scrollTo(),
+ top: 0,
+ behavior: "auto",
+ });
document.dispatchEvent(new CustomEvent("tab-change", { detail: tabID }));
return true;
},