custom app rendering

This commit is contained in:
metacryst
2026-03-24 04:16:00 -05:00
parent 881c9408b6
commit c5b71add07
5 changed files with 68 additions and 31 deletions

View File

@@ -3,35 +3,33 @@ import util from "../util.js"
class AppMenu extends Shadow {
selected = ""
apps = global.currentNetwork.apps
darkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
images = {
"Dashboard": {src: ["home-src", "home-selected-src"]},
"People": {src: ["people-src", "people-selected-src"]},
"Settings": {src: ["settings-src", "settings-selected-src"]},
"Events": {src: ["events-src", "events-selected-src"]},
"Jobs": {src: ["jobs-src", "jobs-selected-src"]}
getImageURL(appName) {
let imgUrl = `${util.HOST}/db/apps/${appName}/icons/${appName}`
if(this.darkMode) {
imgUrl += "light"
}
imgUrl += ".svg"
imgUrl = imgUrl.toLowerCase()
return imgUrl
}
onNewSelection() {
this.$$("img").forEach((image) => {
image.style.borderBottom = "1px solid transparent"
const app = image.attributes.app.value
if (app === global.currentApp()) {
const appName = image.attributes.app.value
if (appName === global.currentApp()) {
image.style.borderBottom = "1px solid var(--text)"
image.src = util.cssVariable(this.images[app].src[1])
} else {
image.src = util.cssVariable(this.images[app].src[0])
}
image.src = this.getImageURL(appName)
})
}
render() {
// let apps = global.currentNetwork.apps
let apps = [
"Dashboard", "Jobs", "Events", "People"
]
let appCount = apps.filter(a => a !== "Settings").length
let apps = this.apps
let appCount = apps.filter(app => app !== "Settings").length
let horizontalMargin = {
1: 50,
2: 10,
@@ -45,7 +43,8 @@ class AppMenu extends Shadow {
for(let i = 0; i < apps.length; i++) {
let app = apps[i]
if (app === "Settings") continue;
img(util.cssVariable(global.currentApp() === app ? this.images[app].src[1] : this.images[app].src[0]), "1.3em")
img(this.getImageURL(app), "1.3em")
.attr({app: app})
.padding(0.5, em)
.borderBottom(global.currentApp() === app ? "1px solid var(--text)" : "1px solid transparent")
@@ -59,7 +58,7 @@ class AppMenu extends Shadow {
}
})
.display("grid")
.gridTemplateColumns(`repeat(${apps.filter(a => a !== "Settings").length}, 1fr)`)
.gridTemplateColumns(`repeat(${apps.filter(app => app !== "Settings").length}, 1fr)`)
.placeItems("center")
.borderTop("0.5px solid var(--divider)")
.height("auto")