Forward fix for regression introduced by changing the number of replies we fetch. This change updates the number of comment replies we fetch on project comments from 20 to 25 to be consistent with studio page. Also updates the code that controls whether to display the 'See more replies' button on comment threads.

This commit is contained in:
Karishma Chadha 2022-01-12 13:44:21 -05:00
parent 17a96b4065
commit 00f243250c
3 changed files with 12 additions and 5 deletions

View file

@ -2,7 +2,13 @@ const keyMirror = require('keymirror');
const mergeWith = require('lodash.mergewith');
const uniqBy = require('lodash.uniqby');
const COMMENT_LIMIT = 20;
// Number of replies to fetch at a time.
// The way this code is currently structured, it expects
// this number to be the same for project comment reply threads
// as well as studio comment reply threads.
// These could be decoupled in the future.
const REPLY_FETCH_LIMIT = 25;
module.exports.Status = keyMirror({
FETCHED: null,
@ -108,7 +114,7 @@ module.exports.commentsReducer = (state, action) => {
comments: state.comments.map(comment => {
if (action.replies[comment.id]) {
return Object.assign({}, comment, {
moreRepliesToLoad: action.replies[comment.id].length === COMMENT_LIMIT
moreRepliesToLoad: action.replies[comment.id].length === REPLY_FETCH_LIMIT
});
}
return comment;

View file

@ -4,6 +4,7 @@ const api = require('../lib/api');
const log = require('../lib/log');
const COMMENT_LIMIT = 20;
const REPLY_LIMIT = 25; // Number of replies to fetch at a time
const {
addNewComment,
@ -28,7 +29,7 @@ const getReplies = (projectId, commentIds, offset, ownerUsername, isAdmin, token
api({
uri: `${isAdmin ? '/admin' : `/users/${ownerUsername}`}/projects/${projectId}/comments/${parentId}/replies`,
authentication: token ? token : null,
params: {offset: offset || 0, limit: COMMENT_LIMIT}
params: {offset: offset || 0, limit: REPLY_LIMIT}
}, (err, body, res) => {
if (err) {
return callback(`Error fetching comment replies: ${err}`);

View file

@ -140,9 +140,9 @@ tap.test('setReplies', t => {
t.equal(state.comments[0].moreRepliesToLoad, false);
t.equal(state.comments[1].moreRepliesToLoad, false);
// Getting 20 (COMMENT_LIMIT) replies sets moreRepliesToLoad to true
// Getting 25 (REPLY_FETCH_LIMIT) replies sets moreRepliesToLoad to true
state = reducer(state, Comments.setReplies({
id3: (new Array(20)).map((_, i) => ({id: `id${i + 1}`}))
id3: (new Array(25)).map((_, i) => ({id: `id${i + 1}`}))
}));
t.equal(state.comments[0].moreRepliesToLoad, false);
t.equal(state.comments[1].moreRepliesToLoad, false);