init
This commit is contained in:
74
calendar/desktop/DesktopToolbar.js
Normal file
74
calendar/desktop/DesktopToolbar.js
Normal file
@@ -0,0 +1,74 @@
|
||||
class DesktopToolbar extends Shadow {
|
||||
constructor(currentDate, actions) {
|
||||
super()
|
||||
this.currentDate = currentDate
|
||||
this.actions = actions
|
||||
}
|
||||
|
||||
render() {
|
||||
const { goToPrevious, goToCurrent, goToNext } = this.actions
|
||||
|
||||
HStack(() => {
|
||||
h2(this.currentDate.toLocaleDateString(undefined, { month: "long", year: "numeric" }))
|
||||
.margin(0)
|
||||
.fontWeight("700")
|
||||
.fontSize(1.25, em)
|
||||
.color("var(--headertext)")
|
||||
|
||||
HStack(() => {
|
||||
button("+ New Event")
|
||||
.paddingVertical(0.52, em)
|
||||
.paddingRight(1, em)
|
||||
.paddingLeft(0.8, em)
|
||||
.marginHorizontal(0.4, em)
|
||||
.background("transparent")
|
||||
.color("var(--headertext)")
|
||||
.border("1px solid var(--divider)")
|
||||
.borderRadius(0.5, em)
|
||||
.fontSize(0.83, em)
|
||||
.fontWeight("600")
|
||||
.cursor("pointer")
|
||||
.onHover(function(hovering) {
|
||||
this.style.background = hovering ? "var(--divider)" : "transparent";
|
||||
})
|
||||
.onClick((done) => { if (done) this.actions.onNewEvent() })
|
||||
|
||||
this.navBtn("‹", goToPrevious)
|
||||
this.navBtn("Today", goToCurrent)
|
||||
this.navBtn("›", goToNext)
|
||||
})
|
||||
.gap(0.4, em)
|
||||
.alignItems("center")
|
||||
})
|
||||
.paddingHorizontal(1.5, em)
|
||||
.paddingVertical(0.85, em)
|
||||
.alignItems("center")
|
||||
.justifyContent("space-between")
|
||||
.borderBottom("1px solid var(--divider)")
|
||||
.width(100, pct)
|
||||
.boxSizing("border-box")
|
||||
.flexShrink(0)
|
||||
}
|
||||
|
||||
navBtn(label, handler) {
|
||||
return button(label)
|
||||
.onClick((done) => {
|
||||
if(done) {
|
||||
handler()
|
||||
}
|
||||
})
|
||||
.paddingVertical(0.38, em)
|
||||
.paddingHorizontal(label === "Today" ? 0.9 : 0.72, em)
|
||||
.border("1px solid var(--divider)")
|
||||
.borderRadius(0.45, em)
|
||||
.background("transparent")
|
||||
.color("var(--headertext)")
|
||||
.cursor("pointer")
|
||||
.fontSize(0.83, em)
|
||||
.onHover(function(hovering) {
|
||||
this.style.background = hovering ? "var(--divider)" : "transparent";
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
register(DesktopToolbar)
|
||||
Reference in New Issue
Block a user