import TouchController from "./TouchController"
import Diff from "./Diff"

export default class SideBar {
	element: HTMLElement
	touchController: TouchController

	constructor(element) {
		this.element = element

		document.body.addEventListener("click", _ => {
			if(document.activeElement && document.activeElement.id === "search") {
				return
			}

			this.hide()
		})

		this.touchController = new TouchController()
		this.touchController.leftSwipe = () => this.hide()
		this.touchController.rightSwipe = () => this.show()
	}

	show() {
		Diff.mutations.queue(() => this.element.classList.add("sidebar-visible"))
	}

	hide() {
		Diff.mutations.queue(() => this.element.classList.remove("sidebar-visible"))
	}

	toggle() {
		const visible = this.element.style.display !== "none"

		if(visible) {
			this.element.style.display = "none"
		} else {
			this.element.style.display = "flex"
		}
	}
}