refactor: wrap around if at end

remove debug log
dont focus input on mobile
This commit is contained in:
Barış Soner Uşaklı
2022-02-17 11:19:43 -05:00
parent 5321ba4d71
commit 3acd2ac850
2 changed files with 13 additions and 4 deletions

View File

@@ -56,7 +56,9 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
paginationBlockEl.off('shown.bs.dropdown', '.wrapper').on('shown.bs.dropdown', '.wrapper', function () {
setTimeout(async function () {
if (utils.findBootstrapEnvironment() === 'lg') {
$('.pagination-block input').focus();
}
const postCountInTopic = await socket.emit('topics.getPostCountInTopic', ajaxify.data.tid);
if (postCountInTopic > 0) {
paginationBlockEl.find('#myNextPostBtn').removeAttr('disabled');
@@ -107,10 +109,9 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
if (ajaxify.data.template.topic) {
let nextIndex = await getNext(index);
if (lastNextIndex === nextIndex) { // handles last post in pagination
console.log('fail', nextIndex, lastNextIndex);
nextIndex = await getNext(nextIndex);
}
if (nextIndex) {
if (nextIndex && index !== nextIndex + 1) {
lastNextIndex = nextIndex;
$(window).one('action:ajaxify.end', function () {
if (paginationBlockEl.find('.dropdown-menu').is(':hidden')) {

View File

@@ -88,13 +88,21 @@ SocketTopics.getMyNextPostIndex = async function (socket, data) {
cache.set(cacheKey, pids, 30000);
return pids;
}
const postCountInTopic = await db.sortedSetScore(`tid:${data.tid}:posters`, socket.uid);
if (postCountInTopic <= 0) {
return 0;
}
const [topicPids, userPidsInCategory] = await Promise.all([
getTopicPids(data.index),
getUserPids(),
]);
const userPidsInTopic = _.intersection(topicPids, userPidsInCategory);
if (!userPidsInTopic.length) {
if (postCountInTopic > 0) {
// wrap around to beginning
const wrapIndex = await SocketTopics.getMyNextPostIndex(socket, { ...data, index: 1 });
return wrapIndex;
}
return 0;
}
return await posts.getPidIndex(userPidsInTopic[0], data.tid, data.sort);