Files
2026-10-24 14:03:52 +07:00

84 lines
2.7 KiB
JavaScript

var StoriesViewer = {
story: undefined,
timer: undefined,
timeout: 6000,
startDate: undefined,
consumed: 0,
before: undefined,
launch: function (before) {
MovimTpl.pushAnchorState('stories', function () {
StoriesViewer.close();
});
StoriesViewer.story = document.querySelector('article.story');
StoriesViewer.before = before;
let image = StoriesViewer.story.querySelector('img');
image.addEventListener('mousedown', e => { e.preventDefault(); StoriesViewer.pause() });
image.addEventListener('touchstart', e => { e.preventDefault(); StoriesViewer.pause() });
image.addEventListener('mouseup', e => { e.preventDefault(), StoriesViewer.start() });
image.addEventListener('touchend', e => { e.preventDefault(), StoriesViewer.start() });
let next = StoriesViewer.story.querySelector('div.next');
next.addEventListener('click', e => StoriesViewer_ajaxHttpGetNext(StoriesViewer.before));
StoriesViewer.reset();
StoriesViewer.start();
},
reset: function () {
clearTimeout(StoriesViewer.timer);
StoriesViewer.consumed = 0;
},
close: function () {
StoriesViewer.reset();
StoriesViewer_ajaxClose();
Stories_ajaxHttpGet();
},
start: function () {
if (!StoriesViewer.story) return;
StoriesViewer.story.classList.remove('paused');
StoriesViewer.startDate = new Date();
StoriesViewer.timer = setTimeout(function () {
StoriesViewer_ajaxHttpGetNext(StoriesViewer.before);
}, StoriesViewer.timeout - StoriesViewer.consumed);
},
pause: function () {
if (!StoriesViewer.story) return;
StoriesViewer.story.classList.add('paused');
StoriesViewer.consumed += new Date() - StoriesViewer.startDate;
clearTimeout(StoriesViewer.timer);
},
sendComment: function (storyId) {
StoriesViewer_ajaxSendComment(storyId, document.querySelector('form[name=storycomment] input[name=comment]').value);
document.querySelector('form[name=storycomment]').reset();
}
}
MovimEvents.registerBody('click', 'storiesviewer', (e) => {
if (document.querySelector('#storiesviewer') == null
|| document.querySelector('#storiesviewer').innerHTML == '') return;
if (!document.querySelector('#storiesviewer article').contains(e.target)) {
history.back()
}
});
MovimEvents.registerBody('keydown', 'storiesviewer', (e) => {
if (document.querySelector('#storiesviewer')
&& document.querySelector('#storiesviewer').innerHTML != ''
&& e.key == 'Escape') {
history.back()
}
});