From 32ddeddd486fdd0b8ac451a2d1804553ca8a96cb Mon Sep 17 00:00:00 2001 From: "Tom (plebeius.eth)" Date: Wed, 7 May 2025 12:18:54 +0200 Subject: [PATCH] make useReplies page access dynamic to improve API compatibility --- src/hooks/use-replies.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/hooks/use-replies.ts b/src/hooks/use-replies.ts index 7c72cc28..60b9537e 100644 --- a/src/hooks/use-replies.ts +++ b/src/hooks/use-replies.ts @@ -8,20 +8,25 @@ const useRepliesAndAccountReplies = (comment: Comment) => { // the account's replies have a delay before getting published, so get them locally from accountComments instead const accountRepliesNotYetPublished = useMemo(() => { - const replies = comment?.replies?.pages?.best?.comments || []; - const replyCids = new Set(replies.map((reply: Comment) => reply?.cid)); + const pageValues = comment?.replies?.pages ? Object.values(comment.replies.pages) : []; + const firstPageObject = pageValues[0] as { comments?: Comment[] } | undefined; + const publishedComments = firstPageObject?.comments || []; + const replyCids = new Set(publishedComments.map((reply: Comment) => reply?.cid)); // filter out the account comments already in comment.replies, so they don't appear twice return accountComments.filter((accountReply) => !replyCids.has(accountReply?.cid)); - }, [comment?.replies?.pages?.best?.comments, accountComments]); + }, [comment?.replies?.pages, accountComments]); const repliesAndNotYetPublishedReplies = useMemo(() => { + const pageValues = comment?.replies?.pages ? Object.values(comment.replies.pages) : []; + const firstPageObject = pageValues[0] as { comments?: Comment[] } | undefined; + const publishedComments = firstPageObject?.comments || []; return [ // put the author's unpublished replies at the top, latest first (reverse) ...accountRepliesNotYetPublished.reverse(), // put the published replies after, - ...(comment?.replies?.pages?.best?.comments || []), + ...publishedComments, ]; - }, [comment?.replies?.pages?.best?.comments, accountRepliesNotYetPublished]); + }, [comment?.replies?.pages, accountRepliesNotYetPublished]); return repliesAndNotYetPublishedReplies; };