Adding tasks and forum
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
css(`
|
css(`
|
||||||
messages- {
|
forum- {
|
||||||
font-family: 'Bona';
|
font-family: 'Bona';
|
||||||
}
|
}
|
||||||
|
|
||||||
messages- input::placeholder {
|
forum- input::placeholder {
|
||||||
font-family: 'Bona Nova';
|
font-family: 'Bona Nova';
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
@@ -22,7 +22,7 @@ css(`
|
|||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
class Messages extends Shadow {
|
class Forum extends Shadow {
|
||||||
friends = []
|
friends = []
|
||||||
conversations = []
|
conversations = []
|
||||||
|
|
||||||
@@ -49,27 +49,6 @@ class Messages extends Shadow {
|
|||||||
.paddingTop(2, em)
|
.paddingTop(2, em)
|
||||||
.gap(0, em)
|
.gap(0, em)
|
||||||
.borderRight("1px solid var(--accent2)")
|
.borderRight("1px solid var(--accent2)")
|
||||||
|
|
||||||
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(--accent2)")
|
|
||||||
})
|
})
|
||||||
.width(100, "%")
|
.width(100, "%")
|
||||||
.x(0).y(13, vh)
|
.x(0).y(13, vh)
|
||||||
@@ -175,4 +154,4 @@ class Messages extends Shadow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
register(Messages)
|
register(Forum)
|
||||||
@@ -22,7 +22,8 @@ class MarketGrid extends Shadow {
|
|||||||
.marginTop(0.1, em)
|
.marginTop(0.1, em)
|
||||||
.marginBottom(1, em)
|
.marginBottom(1, em)
|
||||||
.marginLeft(0.4, em)
|
.marginLeft(0.4, em)
|
||||||
.color("var(--accent2)")
|
.color("var(--accent)")
|
||||||
|
.opacity(0.7)
|
||||||
|
|
||||||
if (this.listings.length > 0) {
|
if (this.listings.length > 0) {
|
||||||
ZStack(() => {
|
ZStack(() => {
|
||||||
@@ -98,7 +99,6 @@ class MarketGrid extends Shadow {
|
|||||||
.height(100, vh)
|
.height(100, vh)
|
||||||
.paddingLeft(2, em)
|
.paddingLeft(2, em)
|
||||||
.paddingRight(2, em)
|
.paddingRight(2, em)
|
||||||
.paddingTop(2, em)
|
|
||||||
.gap(0, em)
|
.gap(0, em)
|
||||||
.width(100, "%")
|
.width(100, "%")
|
||||||
}
|
}
|
||||||
|
|||||||
153
ui/site/apps/Tasks/Tasks.js
Normal file
153
ui/site/apps/Tasks/Tasks.js
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
css(`
|
||||||
|
tasks- {
|
||||||
|
font-family: 'Bona';
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks- 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 Tasks extends Shadow {
|
||||||
|
projects = [
|
||||||
|
{
|
||||||
|
"title": "Blockcatcher",
|
||||||
|
"tasks": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
columns = [
|
||||||
|
{
|
||||||
|
"title": "backlog",
|
||||||
|
"tasks": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
render() {
|
||||||
|
ZStack(() => {
|
||||||
|
HStack(() => {
|
||||||
|
VStack(() => {
|
||||||
|
h3("Projects")
|
||||||
|
.marginTop(0)
|
||||||
|
.marginBottom(1, em)
|
||||||
|
.marginLeft(0.4, em)
|
||||||
|
|
||||||
|
if (this.projects.length >= 1) {
|
||||||
|
for(let i = 0; i < this.projects.length; i++) {
|
||||||
|
p(this.projects[i].title)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p("No Projects!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.height(100, vh)
|
||||||
|
.paddingLeft(2, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
.paddingTop(2, em)
|
||||||
|
.gap(0, em)
|
||||||
|
.borderRight("0.5px solid var(--accent2)")
|
||||||
|
|
||||||
|
HStack(() => {
|
||||||
|
if (this.columns.length >= 1) {
|
||||||
|
for(let i = 0; i < this.columns.length; i++) {
|
||||||
|
p(this.columns[i].name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p("No Conversations!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.height(100, vh)
|
||||||
|
.paddingLeft(2, em)
|
||||||
|
.paddingRight(2, em)
|
||||||
|
.paddingTop(2, em)
|
||||||
|
.gap(0, em)
|
||||||
|
.borderRight("0.5px solid var(--accent2)")
|
||||||
|
})
|
||||||
|
.width(100, "%")
|
||||||
|
.x(0).y(13, vh)
|
||||||
|
.borderTop("0.5px solid var(--accent2)")
|
||||||
|
|
||||||
|
p("0 Items")
|
||||||
|
.position("absolute")
|
||||||
|
.x(50, vw).y(50, vh)
|
||||||
|
.transform("translate(-50%, -50%)")
|
||||||
|
|
||||||
|
HStack(() => {
|
||||||
|
input("Search tasks...", "45vw")
|
||||||
|
.attr({
|
||||||
|
"type": "text"
|
||||||
|
})
|
||||||
|
.fontSize(1.1, em)
|
||||||
|
.paddingLeft(1.3, em)
|
||||||
|
.background("transparent")
|
||||||
|
.border("0.5px solid var(--accent2)")
|
||||||
|
.outline("none")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.borderRadius(10, px)
|
||||||
|
|
||||||
|
button("Search")
|
||||||
|
.marginLeft(2, em)
|
||||||
|
.borderRadius(10, px)
|
||||||
|
.background("transparent")
|
||||||
|
.border("0.5px solid var(--accent2)")
|
||||||
|
.color("var(--accent)")
|
||||||
|
.fontFamily("Bona Nova")
|
||||||
|
.onHover(function (hovering) {
|
||||||
|
if(hovering) {
|
||||||
|
this.style.background = "var(--green)"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.style.background = "transparent"
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
button("+ New Task")
|
||||||
|
.width(9, em)
|
||||||
|
.marginLeft(1, em)
|
||||||
|
.borderRadius(10, px)
|
||||||
|
.background("transparent")
|
||||||
|
.border("0.5px solid var(--accent2)")
|
||||||
|
.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(Tasks)
|
||||||
@@ -16,8 +16,9 @@ css(`
|
|||||||
padding-bottom: 4em;
|
padding-bottom: 4em;
|
||||||
bottom: 1em;
|
bottom: 1em;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
|
background-color: var(--main);
|
||||||
}
|
}
|
||||||
|
|
||||||
app-menu p {
|
app-menu p {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
transition: transform .3s, text-decoration .3s;
|
transition: transform .3s, text-decoration .3s;
|
||||||
@@ -56,6 +57,8 @@ class AppMenu extends Shadow {
|
|||||||
render() {
|
render() {
|
||||||
VStack(() => {
|
VStack(() => {
|
||||||
HStack(() => {
|
HStack(() => {
|
||||||
|
p("Forum")
|
||||||
|
p("Tasks")
|
||||||
p("Messages")
|
p("Messages")
|
||||||
p("Market")
|
p("Market")
|
||||||
p("Jobs")
|
p("Jobs")
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import "../apps/Jobs/Jobs.js"
|
import "../apps/Forum/Forum.js"
|
||||||
|
import "../apps/Tasks/Tasks.js"
|
||||||
import "../apps/Messages/Messages.js"
|
import "../apps/Messages/Messages.js"
|
||||||
import "../apps/Market/Market.js"
|
import "../apps/Market/Market.js"
|
||||||
|
import "../apps/Jobs/Jobs.js"
|
||||||
|
|
||||||
class AppWindow extends Shadow {
|
class AppWindow extends Shadow {
|
||||||
app;
|
app;
|
||||||
@@ -13,8 +15,11 @@ class AppWindow extends Shadow {
|
|||||||
render() {
|
render() {
|
||||||
ZStack(() => {
|
ZStack(() => {
|
||||||
switch(this.app) {
|
switch(this.app) {
|
||||||
case "Jobs":
|
case "Forum":
|
||||||
Jobs()
|
Forum()
|
||||||
|
break;
|
||||||
|
case "Tasks":
|
||||||
|
Tasks()
|
||||||
break;
|
break;
|
||||||
case "Messages":
|
case "Messages":
|
||||||
Messages()
|
Messages()
|
||||||
@@ -22,6 +27,9 @@ class AppWindow extends Shadow {
|
|||||||
case "Market":
|
case "Market":
|
||||||
Market()
|
Market()
|
||||||
break;
|
break;
|
||||||
|
case "Jobs":
|
||||||
|
Jobs()
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.display(this.app ? '' : 'none')
|
.display(this.app ? '' : 'none')
|
||||||
|
|||||||
@@ -43,6 +43,16 @@ class Home extends Shadow {
|
|||||||
AppWindow("Market")
|
AppWindow("Market")
|
||||||
AppMenu("Market")
|
AppMenu("Market")
|
||||||
break;
|
break;
|
||||||
|
case "/app/tasks":
|
||||||
|
AppWindow("Tasks")
|
||||||
|
AppMenu("Tasks")
|
||||||
|
break;
|
||||||
|
case "/app/forum":
|
||||||
|
AppWindow("Forum")
|
||||||
|
AppMenu("Forum")
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Error("Unknown route!")
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileButton()
|
ProfileButton()
|
||||||
|
|||||||
Reference in New Issue
Block a user