Improving the 3 apps
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -7,4 +7,5 @@ db/*
|
|||||||
server/db/users.json
|
server/db/users.json
|
||||||
server/.env
|
server/.env
|
||||||
abetaccredited.html
|
abetaccredited.html
|
||||||
qrCodes/qr_codes
|
qrCodes/qr_codes
|
||||||
|
.env
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
Sam Russell
|
Sam Russell
|
||||||
Captured Sun
|
Captured Sun
|
||||||
|
11.7.25 - changed registerShadow() to register(), changed onClick() to be like onHover()
|
||||||
11.6.25 - adding default value for "button()" "children" parameter
|
11.6.25 - adding default value for "button()" "children" parameter
|
||||||
10.29.25 - adding "gap()" and "label()" functions
|
10.29.25 - adding "gap()" and "label()" functions
|
||||||
*/
|
*/
|
||||||
@@ -186,7 +187,7 @@ window.Shadow = class extends HTMLElement {
|
|||||||
super()
|
super()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.registerShadow = (el, tagname) => {
|
window.register = (el, tagname) => {
|
||||||
if (typeof el.prototype.render !== 'function') {
|
if (typeof el.prototype.render !== 'function') {
|
||||||
throw new Error("Element must have a render: " + el.prototype.constructor.name)
|
throw new Error("Element must have a render: " + el.prototype.constructor.name)
|
||||||
}
|
}
|
||||||
@@ -713,7 +714,10 @@ HTMLElement.prototype.onAppear = function(func) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
HTMLElement.prototype.onClick = function(func) {
|
HTMLElement.prototype.onClick = function(func) {
|
||||||
this._storeListener("click", func);
|
const onMouseDown = () => func.call(this, true);
|
||||||
|
const onMouseUp = () => func.call(this, false);
|
||||||
|
this._storeListener("mousedown", onMouseDown);
|
||||||
|
this._storeListener("mouseup", onMouseUp);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
css(`
|
|
||||||
forum- input::placeholder {
|
|
||||||
font-size: 0.9em;
|
|
||||||
color: var(--accent);
|
|
||||||
}
|
|
||||||
`)
|
|
||||||
|
|
||||||
class Forum extends Shadow {
|
|
||||||
|
|
||||||
render() {
|
|
||||||
ZStack(() => {
|
|
||||||
p("Coming Soon!")
|
|
||||||
.position("absolute")
|
|
||||||
.x(50, vw).y(50, vh)
|
|
||||||
.transform("translate(-50%, -50%)")
|
|
||||||
|
|
||||||
HStack(() => {
|
|
||||||
input("Search...", "50vw")
|
|
||||||
.attr({
|
|
||||||
"type": "text"
|
|
||||||
})
|
|
||||||
.fontSize(1.1, em)
|
|
||||||
.paddingLeft(1.3, em)
|
|
||||||
.background("transparent")
|
|
||||||
.border("1px solid var(--accent)")
|
|
||||||
.outline("none")
|
|
||||||
.color("var(--accent)")
|
|
||||||
.borderRadius(10, px)
|
|
||||||
button("Search")
|
|
||||||
.marginLeft(2, em)
|
|
||||||
.borderRadius(10, px)
|
|
||||||
.background("transparent")
|
|
||||||
.border("1px solid var(--accent)")
|
|
||||||
.color("var(--accent)")
|
|
||||||
})
|
|
||||||
.x(50, vw).y(5, vh)
|
|
||||||
.position("absolute")
|
|
||||||
.transform("translateX(-50%)")
|
|
||||||
})
|
|
||||||
.width(100, "%")
|
|
||||||
.height(100, "%")
|
|
||||||
}
|
|
||||||
|
|
||||||
connectedCallback() {
|
|
||||||
// Optional additional logic
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
registerShadow(Forum)
|
|
||||||
116
ui/site/apps/Jobs/Jobs.js
Normal file
116
ui/site/apps/Jobs/Jobs.js
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
import "./JobsSidebar.js"
|
||||||
|
import "./JobsGrid.js"
|
||||||
|
|
||||||
|
css(`
|
||||||
|
jobs- {
|
||||||
|
font-family: 'Bona';
|
||||||
|
}
|
||||||
|
|
||||||
|
jobs- input::placeholder {
|
||||||
|
font-family: 'Bona Nova';
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
appearance: none; /* remove default style */
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
border: 1px solid var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"]:checked {
|
||||||
|
background-color: var(--red);
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
class Jobs extends Shadow {
|
||||||
|
jobs = [
|
||||||
|
{
|
||||||
|
title: "Austin Chapter Lead",
|
||||||
|
salary: "1% of Local Tax Revenue",
|
||||||
|
location: "Austin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "San Marcos Chapter Lead",
|
||||||
|
salary: "1% of Local Tax Revenue"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
render() {
|
||||||
|
ZStack(() => {
|
||||||
|
HStack(() => {
|
||||||
|
JobsSidebar()
|
||||||
|
|
||||||
|
JobsGrid(this.jobs)
|
||||||
|
})
|
||||||
|
.width(100, "%")
|
||||||
|
.x(0).y(13, vh)
|
||||||
|
|
||||||
|
HStack(() => {
|
||||||
|
input("Search jobs...", "45vw")
|
||||||
|
.attr({
|
||||||
|
"type": "text"
|
||||||
|
})
|
||||||
|
.fontSize(1.1, em)
|
||||||
|
.paddingLeft(1.3, em)
|
||||||
|
.background("transparent")
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.outline("none")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.borderRadius(10, px)
|
||||||
|
|
||||||
|
button("Search")
|
||||||
|
.marginLeft(2, em)
|
||||||
|
.borderRadius(10, px)
|
||||||
|
.background("transparent")
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
button("+ Add Job")
|
||||||
|
.width(7, em)
|
||||||
|
.marginLeft(1, em)
|
||||||
|
.borderRadius(10, px)
|
||||||
|
.background("transparent")
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.onClick((clicking) => {
|
||||||
|
console.log(this, "clicked")
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
.x(55, vw).y(4, vh)
|
||||||
|
.position("absolute")
|
||||||
|
.transform("translateX(-50%)")
|
||||||
|
})
|
||||||
|
.width(100, "%")
|
||||||
|
.height(100, "%")
|
||||||
|
}
|
||||||
|
|
||||||
|
connectedCallback() {
|
||||||
|
// Optional additional logic
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
register(Jobs)
|
||||||
43
ui/site/apps/Jobs/JobsGrid.js
Normal file
43
ui/site/apps/Jobs/JobsGrid.js
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
class JobsGrid extends Shadow {
|
||||||
|
jobs;
|
||||||
|
|
||||||
|
constructor(jobs) {
|
||||||
|
super()
|
||||||
|
this.jobs = jobs
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
VStack(() => {
|
||||||
|
h3("Results")
|
||||||
|
.marginTop(0)
|
||||||
|
.marginBottom(1, em)
|
||||||
|
.marginLeft(0.4, em)
|
||||||
|
.color("var(--periwinkle)")
|
||||||
|
|
||||||
|
if (this.jobs.length > 0) {
|
||||||
|
ZStack(() => {
|
||||||
|
for (let i = 0; i < this.jobs.length; i++) {
|
||||||
|
p(this.jobs[i].title)
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.padding(1, em)
|
||||||
|
.borderRadius(5, "px")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.display("grid")
|
||||||
|
.gridTemplateColumns("repeat(auto-fill, minmax(200px, 1fr))")
|
||||||
|
.gap(1, em)
|
||||||
|
} else {
|
||||||
|
p("No Jobs!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.height(100, vh)
|
||||||
|
.paddingLeft(2, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
.paddingTop(2, em)
|
||||||
|
.gap(0, em)
|
||||||
|
.width(100, "%")
|
||||||
|
.borderTop("1px solid var(--periwinkle)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
register(JobsGrid)
|
||||||
17
ui/site/apps/Jobs/JobsSidebar.js
Normal file
17
ui/site/apps/Jobs/JobsSidebar.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
class JobsSidebar extends Shadow {
|
||||||
|
render() {
|
||||||
|
VStack(() => {
|
||||||
|
h3("Location")
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
.paddingTop(1, em)
|
||||||
|
.paddingLeft(3, em)
|
||||||
|
.paddingRight(3, em)
|
||||||
|
.gap(1, em)
|
||||||
|
.borderRight("1px solid var(--periwinkle)")
|
||||||
|
.minWidth(10, vw)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
register(JobsSidebar)
|
||||||
@@ -100,7 +100,7 @@ class Market extends Shadow {
|
|||||||
.fontSize(1.1, em)
|
.fontSize(1.1, em)
|
||||||
.paddingLeft(1.3, em)
|
.paddingLeft(1.3, em)
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border("1px solid var(--accent)")
|
.border("1px solid var(--periwinkle)")
|
||||||
.outline("none")
|
.outline("none")
|
||||||
.color("var(--accent)")
|
.color("var(--accent)")
|
||||||
.borderRadius(10, px)
|
.borderRadius(10, px)
|
||||||
@@ -109,21 +109,42 @@ class Market extends Shadow {
|
|||||||
.marginLeft(2, em)
|
.marginLeft(2, em)
|
||||||
.borderRadius(10, px)
|
.borderRadius(10, px)
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border("1px solid var(--accent)")
|
.border("1px solid var(--periwinkle)")
|
||||||
.color("var(--accent)")
|
.color("var(--accent)")
|
||||||
.fontFamily("Bona Nova")
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
button("+ Add Item")
|
button("+ Add Item")
|
||||||
.width(7, em)
|
.width(7, em)
|
||||||
.marginLeft(1, em)
|
.marginLeft(1, em)
|
||||||
.borderRadius(10, px)
|
.borderRadius(10, px)
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border("1px solid var(--accent)")
|
.border("1px solid var(--periwinkle)")
|
||||||
.color("var(--accent)")
|
.color("var(--accent)")
|
||||||
.fontFamily("Bona Nova")
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.onClick((clicking) => {
|
||||||
|
console.log(this, "clicked")
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
.x(55, vw).y(5, vh)
|
.x(55, vw).y(4, vh)
|
||||||
.position("absolute")
|
.position("absolute")
|
||||||
.transform("translateX(-50%)")
|
.transform("translateX(-50%)")
|
||||||
})
|
})
|
||||||
@@ -136,4 +157,4 @@ class Market extends Shadow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(Market)
|
register(Market)
|
||||||
|
|||||||
@@ -1,39 +1,138 @@
|
|||||||
css(`
|
css(`
|
||||||
|
messages- {
|
||||||
|
font-family: 'Bona';
|
||||||
|
}
|
||||||
|
|
||||||
messages- input::placeholder {
|
messages- input::placeholder {
|
||||||
|
font-family: 'Bona Nova';
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
appearance: none; /* remove default style */
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
border: 1px solid var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"]:checked {
|
||||||
|
background-color: var(--red);
|
||||||
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
class Messages extends Shadow {
|
class Messages extends Shadow {
|
||||||
|
friends = []
|
||||||
|
conversations = []
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
ZStack(() => {
|
ZStack(() => {
|
||||||
p("Coming Soon!")
|
HStack(() => {
|
||||||
|
VStack(() => {
|
||||||
|
h3("Friends")
|
||||||
|
.marginTop(0)
|
||||||
|
.marginBottom(1, em)
|
||||||
|
.marginLeft(0.4, em)
|
||||||
|
|
||||||
|
if (this.friends.length > 1) {
|
||||||
|
for(let i = 0; i < this.friends.length; i++) {
|
||||||
|
p(this.friends[i].name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p("No Friends!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.height(100, vh)
|
||||||
|
.paddingLeft(2, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
.paddingTop(2, em)
|
||||||
|
.gap(0, em)
|
||||||
|
.borderRight("1px solid var(--periwinkle)")
|
||||||
|
|
||||||
|
VStack(() => {
|
||||||
|
h3("Conversations")
|
||||||
|
.marginTop(0)
|
||||||
|
.marginBottom(1, em)
|
||||||
|
.marginLeft(0.4, em)
|
||||||
|
|
||||||
|
if (this.conversations.length > 1) {
|
||||||
|
for(let i = 0; i < this.conversations.length; i++) {
|
||||||
|
p(this.conversations[i].name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p("No Conversations!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.height(100, vh)
|
||||||
|
.paddingLeft(2, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
.paddingTop(2, em)
|
||||||
|
.gap(0, em)
|
||||||
|
.borderRight("1px solid var(--periwinkle)")
|
||||||
|
})
|
||||||
|
.width(100, "%")
|
||||||
|
.x(0).y(13, vh)
|
||||||
|
.borderTop("1px solid var(--periwinkle)")
|
||||||
|
|
||||||
|
p("0 Items")
|
||||||
.position("absolute")
|
.position("absolute")
|
||||||
.x(50, vw).y(50, vh)
|
.x(50, vw).y(50, vh)
|
||||||
.transform("translate(-50%, -50%)")
|
.transform("translate(-50%, -50%)")
|
||||||
|
|
||||||
HStack(() => {
|
HStack(() => {
|
||||||
input("Search...", "50vw")
|
input("Search messages...", "45vw")
|
||||||
.attr({
|
.attr({
|
||||||
"type": "text"
|
"type": "text"
|
||||||
})
|
})
|
||||||
.fontSize(1.1, em)
|
.fontSize(1.1, em)
|
||||||
.paddingLeft(1.3, em)
|
.paddingLeft(1.3, em)
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border("1px solid var(--accent)")
|
.border("1px solid var(--periwinkle)")
|
||||||
.outline("none")
|
.outline("none")
|
||||||
.color("var(--accent)")
|
.color("var(--accent)")
|
||||||
.borderRadius(10, px)
|
.borderRadius(10, px)
|
||||||
|
|
||||||
button("Search")
|
button("Search")
|
||||||
.marginLeft(2, em)
|
.marginLeft(2, em)
|
||||||
.borderRadius(10, px)
|
.borderRadius(10, px)
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border("1px solid var(--accent)")
|
.border("1px solid var(--periwinkle)")
|
||||||
.color("var(--accent)")
|
.color("var(--accent)")
|
||||||
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
button("+ New Message")
|
||||||
|
.width(15, em)
|
||||||
|
.marginLeft(1, em)
|
||||||
|
.borderRadius(10, px)
|
||||||
|
.background("transparent")
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.onClick((clicking) => {
|
||||||
|
console.log(this, "clicked")
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
.x(50, vw).y(5, vh)
|
.x(55, vw).y(4, vh)
|
||||||
.position("absolute")
|
.position("absolute")
|
||||||
.transform("translateX(-50%)")
|
.transform("translateX(-50%)")
|
||||||
})
|
})
|
||||||
@@ -41,9 +140,39 @@ class Messages extends Shadow {
|
|||||||
.height(100, "%")
|
.height(100, "%")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SidebarName(name) {
|
||||||
|
let firstLetter = name[0]
|
||||||
|
|
||||||
|
HStack(() => {
|
||||||
|
div(firstLetter)
|
||||||
|
.display("flex")
|
||||||
|
.justifyContent("center")
|
||||||
|
.alignItems("center")
|
||||||
|
.width(1.5, em)
|
||||||
|
.height(1.5, em)
|
||||||
|
.border("1px solid var(--periwinkle)")
|
||||||
|
.borderRadius(100, "%")
|
||||||
|
p(name)
|
||||||
|
.marginLeft(1, em)
|
||||||
|
})
|
||||||
|
.alignItems("center")
|
||||||
|
.padding(5, px)
|
||||||
|
.borderRadius(0.5, em)
|
||||||
|
.cursor("default")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
connectedCallback() {
|
connectedCallback() {
|
||||||
// Optional additional logic
|
// Optional additional logic
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(Messages)
|
register(Messages)
|
||||||
@@ -43,7 +43,7 @@ css(`
|
|||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
registerShadow(
|
register(
|
||||||
|
|
||||||
class AppMenu extends Shadow {
|
class AppMenu extends Shadow {
|
||||||
selected;
|
selected;
|
||||||
@@ -56,12 +56,13 @@ class AppMenu extends Shadow {
|
|||||||
render() {
|
render() {
|
||||||
VStack(() => {
|
VStack(() => {
|
||||||
HStack(() => {
|
HStack(() => {
|
||||||
p("Forum")
|
|
||||||
p("Messages")
|
p("Messages")
|
||||||
p("Market")
|
p("Market")
|
||||||
|
p("Jobs")
|
||||||
})
|
})
|
||||||
.justifyContent("center")
|
.justifyContent("center")
|
||||||
.gap(1.5, em)
|
.gap(1.5, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
|
||||||
img("_/images/divider.svg", "40vw")
|
img("_/images/divider.svg", "40vw")
|
||||||
.attr({
|
.attr({
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import "../apps/Forum.js"
|
import "../apps/Jobs/Jobs.js"
|
||||||
import "../apps/Messages.js"
|
import "../apps/Messages.js"
|
||||||
import "../apps/Market.js"
|
import "../apps/Market.js"
|
||||||
|
|
||||||
@@ -13,8 +13,8 @@ class AppWindow extends Shadow {
|
|||||||
render() {
|
render() {
|
||||||
ZStack(() => {
|
ZStack(() => {
|
||||||
switch(this.app) {
|
switch(this.app) {
|
||||||
case "Forum":
|
case "Jobs":
|
||||||
Forum()
|
Jobs()
|
||||||
break;
|
break;
|
||||||
case "Messages":
|
case "Messages":
|
||||||
Messages()
|
Messages()
|
||||||
@@ -44,4 +44,4 @@ class AppWindow extends Shadow {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(AppWindow, "app-window")
|
register(AppWindow, "app-window")
|
||||||
@@ -8,10 +8,10 @@ class Home extends Shadow {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
ZStack(() => {
|
ZStack(() => {
|
||||||
img("_/icons/logo.svg", "3.5em")
|
img("_/icons/logo.svg", "2.5em")
|
||||||
.position("fixed")
|
.position("fixed")
|
||||||
.left("3em")
|
.left("3em")
|
||||||
.top("2em")
|
.top("3vh")
|
||||||
.zIndex(3)
|
.zIndex(3)
|
||||||
// .onClick(() => {
|
// .onClick(() => {
|
||||||
// window.navigateTo("/")
|
// window.navigateTo("/")
|
||||||
@@ -32,9 +32,9 @@ class Home extends Shadow {
|
|||||||
AppWindow()
|
AppWindow()
|
||||||
AppMenu()
|
AppMenu()
|
||||||
break
|
break
|
||||||
case "/app/forum":
|
case "/app/jobs":
|
||||||
AppWindow("Forum")
|
AppWindow("Jobs")
|
||||||
AppMenu("Forum")
|
AppMenu("Jobs")
|
||||||
break;
|
break;
|
||||||
case "/app/messages":
|
case "/app/messages":
|
||||||
AppWindow("Messages")
|
AppWindow("Messages")
|
||||||
@@ -55,20 +55,17 @@ class Home extends Shadow {
|
|||||||
|
|
||||||
a("/signout", "Sign Out")
|
a("/signout", "Sign Out")
|
||||||
.position("fixed")
|
.position("fixed")
|
||||||
.top("3em")
|
.top("5vh")
|
||||||
.right("2em")
|
.right("2em")
|
||||||
.background("transparent")
|
.background("transparent")
|
||||||
.border(window.location.pathname === "/" ? "1px solid var(--tan)" : "1px solid var(--accent)")
|
.border(window.location.pathname === "/" ? "1px solid var(--tan)" : "1px solid var(--periwinkle)")
|
||||||
.color(window.location.pathname === "/" ? "var(--tan)" : "var(--accent)")
|
.color(window.location.pathname === "/" ? "var(--tan)" : "var(--accent)")
|
||||||
.borderRadius(5, px)
|
.borderRadius(5, px)
|
||||||
.onHover(function (hovering) {
|
.onHover(function (hovering) {
|
||||||
console.log('hovering', hovering, this)
|
|
||||||
if(hovering) {
|
if(hovering) {
|
||||||
this.style.background = "var(--tan)"
|
this.style.background = "var(--green)"
|
||||||
this.style.color = "black"
|
|
||||||
} else {
|
} else {
|
||||||
this.style.background = ""
|
this.style.background = ""
|
||||||
this.style.color = window.location.pathname === "/" ? "var(--tan)" : "var(--accent)"
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.onNavigate(function () {
|
.onNavigate(function () {
|
||||||
@@ -77,7 +74,7 @@ class Home extends Shadow {
|
|||||||
this.style.border = "1px solid var(--tan)"
|
this.style.border = "1px solid var(--tan)"
|
||||||
this.style.color = "var(--tan)"
|
this.style.color = "var(--tan)"
|
||||||
} else {
|
} else {
|
||||||
this.style.border = "1px solid var(--accent)"
|
this.style.border = "1px solid var(--periwinkle)"
|
||||||
this.style.color = "var(--accent)"
|
this.style.color = "var(--accent)"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -85,4 +82,4 @@ class Home extends Shadow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(Home)
|
register(Home)
|
||||||
@@ -40,4 +40,4 @@ class ProfileButton extends Shadow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(ProfileButton)
|
register(ProfileButton)
|
||||||
@@ -49,4 +49,4 @@ class ProfileMenu extends Shadow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerShadow(ProfileMenu, "profile-menu")
|
register(ProfileMenu, "profile-menu")
|
||||||
Reference in New Issue
Block a user