Files
Claper/assets/js/manager.js
2022-07-23 01:44:03 +02:00

78 lines
1.8 KiB
JavaScript

import { tns } from "tiny-slider"
export class Manager {
constructor(context) {
this.context = context
this.currentPage = parseInt(context.el.dataset.currentPage)
this.maxPage = parseInt(context.el.dataset.maxPage)
}
init() {
this.context.handleEvent('page-manage', data => {
var el = document.getElementById("slide-preview-" + data.current_page)
if (el) {
setTimeout(() => {
document.getElementById("slide-preview-" + data.current_page).scrollIntoView({
block: 'center',
behavior: 'smooth'
});
}, data.timeout ? data.timeout : 0)
}
})
window.addEventListener('keydown', (e) => {
if (e.target.tagName.toLowerCase() != "input") {
e.preventDefault()
switch (e.key) {
case 'ArrowUp':
this.prevPage()
break
case 'ArrowLeft':
this.prevPage()
break
case 'ArrowRight':
this.nextPage()
break
case 'ArrowDown':
this.nextPage()
break
}
}
});
}
update() {
this.currentPage = parseInt(this.context.el.dataset.currentPage)
var el = document.getElementById("slide-preview-" + this.currentPage)
if (el) {
document.getElementById("slide-preview-" + this.currentPage).scrollIntoView({
block: 'center',
behavior: 'smooth'
});
}
}
nextPage() {
if(this.currentPage == this.maxPage - 1)
return;
this.currentPage += 1;
this.context.pushEventTo(this.context.el, "current-page", {"page": this.currentPage.toString()});
}
prevPage() {
if(this.currentPage == 0)
return;
this.currentPage -= 1;
this.context.pushEventTo(this.context.el, "current-page", {"page": this.currentPage.toString()});
}
}