From c9e9506ebdd2599b2ee3cb9bce773a311b93b89a Mon Sep 17 00:00:00 2001 From: plebeius Date: Sun, 1 Mar 2026 19:05:36 +0800 Subject: [PATCH] fix(replies-preview): stable sort when recency yields identical Infinity values --- src/lib/utils/replies-preview-utils.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/utils/replies-preview-utils.ts b/src/lib/utils/replies-preview-utils.ts index ce78ef49..662a0cf4 100644 --- a/src/lib/utils/replies-preview-utils.ts +++ b/src/lib/utils/replies-preview-utils.ts @@ -27,8 +27,12 @@ export function getPreviewDisplayReplies(replies: T[], vi return Number.NEGATIVE_INFINITY; }; - const newestFirst = [...replies].sort((a, b) => getRecency(b) - getRecency(a)); - return newestFirst.slice(0, visibleCount).reverse(); + const tagged = replies.map((reply, i) => ({ reply, recency: getRecency(reply), i })); + tagged.sort((a, b) => (a.recency !== b.recency ? b.recency - a.recency : a.i - b.i)); + return tagged + .slice(0, visibleCount) + .reverse() + .map((t) => t.reply); } export interface ComputeOmittedParams {