feat: show tracked/watched remote categories in world page, #13255

This commit is contained in:
Julian Lam
2025-04-02 15:14:04 -04:00
parent f1d1d0820a
commit 34ab677174

View File

@@ -1,17 +1,17 @@
'use strict';
const nconf = require('nconf');
const _ = require('lodash');
const user = require('../../user');
const topics = require('../../topics');
const pagination = require('../../pagination');
const helpers = require('../helpers');
const categories = require('../../categories');
const privileges = require('../../privileges');
const translator = require('../../translator');
const meta = require('../../meta');
const pagination = require('../../pagination');
const utils = require('../../utils');
const helpers = require('../helpers');
const controller = module.exports;
@@ -57,6 +57,18 @@ controller.list = async function (req, res) {
data.topics = await topics.getTopicsByTids(tids, { uid: req.uid });
topics.calculateTopicIndices(data.topics, start);
// Tracked/watched categories
let cids = await user.getCategoriesByStates(req.uid, [
categories.watchStates.tracking, categories.watchStates.watching,
]);
cids = cids.filter(cid => !utils.isNumber(cid));
const categoryData = await categories.getCategories(cids);
data.categories = categories.getTree(categoryData, 0);
await Promise.all([
categories.getRecentTopicReplies(categoryData, req.uid, req.query),
categories.setUnread(data.categories, cids, req.uid),
]);
data.title = translator.escape(data.name);
data.privileges = userPrivileges;
data.selectedTag = tagData.selectedTag;