diff --git a/src/components/views/All.jsx b/src/components/views/All.jsx index 7f647b9d..188c08ed 100755 --- a/src/components/views/All.jsx +++ b/src/components/views/All.jsx @@ -102,23 +102,11 @@ const All = () => { const [moderatorPermissions, setModeratorPermissions] = useState({}); const [executeAnonMode, setExecuteAnonMode] = useState(false); const [cidTracker, setCidTracker] = useState({}); - const [displayedReplies, setDisplayedReplies] = useState([]); const setSelectedThreadCid = (cid) => { selectedThreadCidRef.current = cid; } - // let post.jsx access full cid of user-typed short cid - useEffect(() => { - const newCidTracker = {}; - displayedReplies.forEach((reply) => { - newCidTracker[reply.shortCid] = reply.cid; - }); - setCidTracker(newCidTracker); - }, [displayedReplies]); - - useAnonModeRef(selectedThreadCidRef, anonymousMode && executeAnonMode); - useAnonModeRef(selectedThreadCidRef, anonymousMode && executeAnonMode); const addresses = defaultSubplebbits.map(subplebbit => subplebbit.address); @@ -251,6 +239,19 @@ const All = () => { }, {}); }, [flattenedRepliesByThread, accountComments, selectedFeed]); + const allReplies = useMemo(() => { + return selectedFeed.flatMap(thread => filteredRepliesByThread[thread.cid]?.displayedReplies || []); + }, [selectedFeed, filteredRepliesByThread]); + + // let post.jsx access full cid of user-typed short cid + useEffect(() => { + const newCidTracker = {}; + allReplies.forEach((reply) => { + newCidTracker[reply.shortCid] = reply.cid; + }); + setCidTracker(newCidTracker); + }, [allReplies]); + // mobile navbar scroll effect useEffect(() => { const debouncedHandleScroll = debounce(() => { @@ -597,7 +598,6 @@ const All = () => { data={selectedFeed} itemContent={(index, thread) => { const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {}; - setDisplayedReplies(displayedReplies); const commentMediaInfo = getCommentMediaInfo(thread); const fallbackImgUrl = "assets/filedeleted-res.gif"; const isModerator = moderatorPermissions[thread.subplebbitAddress]; diff --git a/src/components/views/Board.jsx b/src/components/views/Board.jsx index 96d88259..6e9d0bac 100755 --- a/src/components/views/Board.jsx +++ b/src/components/views/Board.jsx @@ -119,20 +119,8 @@ const Board = () => { const [postOnHoverHeight, setPostOnHoverHeight] = useState(0); const [executeAnonMode, setExecuteAnonMode] = useState(false); const [cidTracker, setCidTracker] = useState({}); - const [displayedReplies, setDisplayedReplies] = useState([]); - const setSelectedThreadCid = (cid) => { - selectedThreadCidRef.current = cid; - } - - // let post.jsx access full cid of user-typed short cid - useEffect(() => { - const newCidTracker = {}; - displayedReplies.forEach((reply) => { - newCidTracker[reply.shortCid] = reply.cid; - }); - setCidTracker(newCidTracker); - }, [displayedReplies]); + const setSelectedThreadCid = (cid) => { selectedThreadCidRef.current = cid;} useAnonModeRef(selectedThreadCidRef, anonymousMode && executeAnonMode); @@ -244,6 +232,19 @@ const Board = () => { return acc; }, {}); }, [flattenedRepliesByThread, accountComments, selectedFeed]); + + const allReplies = useMemo(() => { + return selectedFeed.flatMap(thread => filteredRepliesByThread[thread.cid]?.displayedReplies || []); + }, [selectedFeed, filteredRepliesByThread]); + + // let post.jsx access full cid of user-typed short cid + useEffect(() => { + const newCidTracker = {}; + allReplies.forEach((reply) => { + newCidTracker[reply.shortCid] = reply.cid; + }); + setCidTracker(newCidTracker); + }, [allReplies]); // temporary title from JSON, gets subplebbitAddress from URL @@ -1076,7 +1077,6 @@ const Board = () => { data={selectedFeed} itemContent={(index, thread) => { const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {}; - setDisplayedReplies(displayedReplies); const commentMediaInfo = getCommentMediaInfo(thread); const fallbackImgUrl = "assets/filedeleted-res.gif"; return ( diff --git a/src/components/views/Subscriptions.jsx b/src/components/views/Subscriptions.jsx index d47614e6..5eeb9b60 100755 --- a/src/components/views/Subscriptions.jsx +++ b/src/components/views/Subscriptions.jsx @@ -102,21 +102,11 @@ const Subscriptions = () => { const [moderatorPermissions, setModeratorPermissions] = useState({}); const [executeAnonMode, setExecuteAnonMode] = useState(false); const [cidTracker, setCidTracker] = useState({}); - const [displayedReplies, setDisplayedReplies] = useState([]); const setSelectedThreadCid = (cid) => { selectedThreadCidRef.current = cid; } - - // let post.jsx access full cid of user-typed short cid - useEffect(() => { - const newCidTracker = {}; - displayedReplies.forEach((reply) => { - newCidTracker[reply.shortCid] = reply.cid; - }); - setCidTracker(newCidTracker); - }, [displayedReplies]); - + useAnonModeRef(selectedThreadCidRef, anonymousMode && executeAnonMode); const { feed, hasMore, loadMore } = useFeed({subplebbitAddresses: account?.subscriptions, sortType: 'active'}); @@ -249,6 +239,19 @@ const Subscriptions = () => { }, {}); }, [flattenedRepliesByThread, accountComments, selectedFeed]); + const allReplies = useMemo(() => { + return selectedFeed.flatMap(thread => filteredRepliesByThread[thread.cid]?.displayedReplies || []); + }, [selectedFeed, filteredRepliesByThread]); + + // let post.jsx access full cid of user-typed short cid + useEffect(() => { + const newCidTracker = {}; + allReplies.forEach((reply) => { + newCidTracker[reply.shortCid] = reply.cid; + }); + setCidTracker(newCidTracker); + }, [allReplies]); + // mobile navbar scroll effect useEffect(() => { const debouncedHandleScroll = debounce(() => { @@ -605,7 +608,6 @@ const Subscriptions = () => { data={selectedFeed} itemContent={(index, thread) => { const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {}; - setDisplayedReplies(displayedReplies); const commentMediaInfo = getCommentMediaInfo(thread); const fallbackImgUrl = "assets/filedeleted-res.gif"; const isModerator = moderatorPermissions[thread.subplebbitAddress];