Files
TaskHybrid/Template.Shared/wwwroot/js/calendar.js

41 lines
1.2 KiB
JavaScript

window.calendarSwipe = {
register: function (element, dotnetHelper) {
let startX = 0;
let endX = 0;
element.addEventListener('touchstart', (e) => {
if (e.touches.length === 1) {
startX = e.touches[0].clientX;
}
});
element.addEventListener('touchend', (e) => {
if (e.changedTouches.length === 1) {
endX = e.changedTouches[0].clientX;
handle();
}
});
// Per desktop: mouse drag
let mouseDown = false;
element.addEventListener('mousedown', (e) => {
if (e.button !== 0) return; // solo left mouse
mouseDown = true;
startX = e.clientX;
});
element.addEventListener('mouseup', (e) => {
if (!mouseDown) return;
mouseDown = false;
endX = e.clientX;
handle();
});
function handle() {
let diff = endX - startX;
if (Math.abs(diff) > 40) {
if (diff < 0) dotnetHelper.invokeMethodAsync('OnSwipeLeft');
else dotnetHelper.invokeMethodAsync('OnSwipeRight');
}
}
}
};