* chore: configure WDYR for react profiling * perf: reduced post content re-rendering * perf: post content view and it child optimization * perf: add memoization in post editor * perf: add memoization in postCommnetsView * perf: improved endorsed comment view rendering * perf: improved re-rendering in reply component * fix: uncomment questionType commentsView * fix: removed console errors in postContent area * perf: reduced postType and postId dependancy * perf: improved re-rendering in discussionHome * perf: improved re-rendering of postsList and its child components * perf: improved re-rendering of legacyTopic and learner sidebar * fix: postFilterBar filter was not updating * fix: resolve duplicate comment posts issue * fix: memory leaking issue in comments view * fix: duplicate topic posts in inContext sidebar * perf: add lazy loading * chore: remove WDYR configuration * fix: alert banner padding * chore: update package-lock file * fix: bind tour API call with buttons
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
/* eslint-disable import/prefer-default-export */
|
|
import { createSelector } from '@reduxjs/toolkit';
|
|
|
|
const selectCommentsById = state => state.comments.commentsById;
|
|
const mapIdToComment = (ids, comments) => ids.map(id => comments[id]);
|
|
|
|
export const selectCommentOrResponseById = commentOrResponseId => createSelector(
|
|
selectCommentsById,
|
|
comments => comments[commentOrResponseId],
|
|
);
|
|
|
|
export const selectThreadComments = (threadId, endorsed = null) => createSelector(
|
|
[
|
|
state => state.comments.commentsInThreads[threadId]?.[endorsed] || [],
|
|
selectCommentsById,
|
|
],
|
|
mapIdToComment,
|
|
);
|
|
|
|
export const selectCommentResponsesIds = commentId => (
|
|
state => state.comments.commentsInComments[commentId] || []
|
|
);
|
|
|
|
export const selectCommentResponses = commentId => createSelector(
|
|
[
|
|
state => state.comments.commentsInComments[commentId] || [],
|
|
selectCommentsById,
|
|
],
|
|
mapIdToComment,
|
|
);
|
|
|
|
export const selectThreadHasMorePages = (threadId, endorsed = null) => (
|
|
state => state.comments.pagination[threadId]?.[endorsed]?.hasMorePages || false
|
|
);
|
|
|
|
export const selectThreadCurrentPage = (threadId, endorsed = null) => (
|
|
state => state.comments.pagination[threadId]?.[endorsed]?.currentPage || null
|
|
);
|
|
|
|
export const selectCommentHasMorePages = commentId => (
|
|
state => state.comments.responsesPagination[commentId]?.hasMorePages || false
|
|
);
|
|
|
|
export const selectCommentCurrentPage = commentId => (
|
|
state => state.comments.responsesPagination[commentId]?.currentPage || null
|
|
);
|
|
|
|
export const selectCommentsStatus = state => state.comments.status;
|
|
|
|
export const selectCommentSortOrder = state => state.comments.sortOrder;
|