42 lines
898 B
TypeScript
Raw Normal View History

2018-04-02 07:34:16 +02:00
import TouchController from "./TouchController"
import Diff from "./Diff"
2017-10-02 02:02:07 +02:00
2018-04-02 07:34:16 +02:00
export default class SideBar {
2017-10-02 02:02:07 +02:00
element: HTMLElement
touchController: TouchController
constructor(element) {
this.element = element
2019-04-22 18:06:50 +09:00
document.body.addEventListener("click", _ => {
2019-04-19 22:12:33 +09:00
if(document.activeElement && document.activeElement.id === "search") {
return
}
2017-10-02 02:02:07 +02:00
this.hide()
})
this.touchController = new TouchController()
this.touchController.leftSwipe = () => this.hide()
this.touchController.rightSwipe = () => this.show()
}
show() {
2018-03-29 11:36:54 +02:00
Diff.mutations.queue(() => this.element.classList.add("sidebar-visible"))
2017-10-02 02:02:07 +02:00
}
hide() {
2018-03-29 11:36:54 +02:00
Diff.mutations.queue(() => this.element.classList.remove("sidebar-visible"))
2017-10-02 02:02:07 +02:00
}
2018-03-07 14:52:56 +01:00
toggle() {
2019-11-17 18:25:14 +09:00
const visible = this.element.style.display !== "none"
2018-03-07 14:52:56 +01:00
if(visible) {
this.element.style.display = "none"
} else {
this.element.style.display = "flex"
}
}
2019-11-17 18:44:30 +09:00
}