refactor(replies): remove pinned-thread special handling for reply preview

This commit is contained in:
plebeius
2026-03-01 18:36:12 +08:00
parent 8296d70fd6
commit 75b66516fe
3 changed files with 7 additions and 15 deletions
+1 -3
View File
@@ -831,9 +831,8 @@ const PostDesktop = ({
const repliesCount = computeOmittedCount({
totalReplyCount,
visibleCount: BOARD_REPLIES_PREVIEW_VISIBLE_COUNT,
pinned,
});
const linksCount = pinned ? totalLinksCount : totalLinksCount - visiblelinksCount;
const linksCount = totalLinksCount - visiblelinksCount;
const stateString = useStateString(post) || t('downloading_board');
const hasFailedState = state === 'failed';
@@ -1056,7 +1055,6 @@ const PostDesktop = ({
{/* Non-virtualized rendering for board view (preview replies when collapsed, full when expanded) */}
{!isHidden &&
!showAllReplies &&
!(pinned && !isInPostPageView && !showOmittedReplies[cid]) &&
!isInPendingPostView &&
repliesForRender &&
showReplies &&
+3 -5
View File
@@ -732,7 +732,7 @@ const PostMobile = ({
)}
</div>
{/* Virtuoso infinite scroll for post page view when there's more content to paginate */}
{!(pinned && !isInPostView) && showAllReplies && !isInPendingPostView && showReplies && hasMore && (
{showAllReplies && !isInPendingPostView && showReplies && hasMore && (
<Virtuoso
increaseViewportBy={{ bottom: 1200, top: 1200 }}
totalCount={filteredReplies.length}
@@ -758,8 +758,7 @@ const PostMobile = ({
/>
)}
{/* Non-virtualized rendering for post page view when all replies fit on one page */}
{!(pinned && !isInPostView) &&
showAllReplies &&
{showAllReplies &&
!isInPendingPostView &&
showReplies &&
!hasMore &&
@@ -776,8 +775,7 @@ const PostMobile = ({
</div>
))}
{/* Non-virtualized rendering for board view (last 5 replies) */}
{!(pinned && !isInPostView) &&
!showAllReplies &&
{!showAllReplies &&
!isInPendingPostView &&
repliesForRender &&
showReplies &&
+3 -7
View File
@@ -34,18 +34,14 @@ export function getPreviewDisplayReplies<T extends CommentLike>(replies: T[], vi
export interface ComputeOmittedParams {
totalReplyCount: number;
visibleCount: number;
pinned?: boolean;
}
/**
* Computes omitted reply count for board view. For pinned threads, collapsed view
* shows 0 replies, so omitted = total. For non-pinned, omitted = total - visible.
* Computes omitted reply count for board view. All threads (pinned or not) show
* the last `visibleCount` replies when collapsed; omitted = total - visible.
* Result is always clamped at zero.
*/
export function computeOmittedCount({ totalReplyCount, visibleCount, pinned = false }: ComputeOmittedParams): number {
if (pinned) {
return Math.max(0, totalReplyCount);
}
export function computeOmittedCount({ totalReplyCount, visibleCount }: ComputeOmittedParams): number {
return Math.max(0, totalReplyCount - visibleCount);
}