diff --git a/src/pages/newsfeed/following.tsx b/src/pages/newsfeed/following.tsx index 1bc40462..9f037375 100644 --- a/src/pages/newsfeed/following.tsx +++ b/src/pages/newsfeed/following.tsx @@ -8,6 +8,7 @@ import { Placeholder } from '@components/note/placeholder'; import { hasNewerNoteAtom } from '@stores/note'; import { dateToUnix } from '@utils/getDate'; +import { filterDuplicateParentID } from '@utils/transform'; import { ArrowUpIcon } from '@radix-ui/react-icons'; import { useAtom } from 'jotai'; @@ -73,7 +74,11 @@ export default function Page() { // next query const result: any = await getLatestNotes({ date: dateToUnix(now.current) }); // update data - setData((data) => [...data, ...result]); + if (result.length > 0) { + setData((data) => [...data, ...result]); + } else { + setData((data) => [...data, result]); + } // hide newer trigger setHasNewerNote(false); // scroll to top @@ -99,7 +104,7 @@ export default function Page() { )} { return parentID; }; -export const filteredData = (obj) => { - const filteredArr = obj.reduce((item, current) => { - const x = item.find((item) => item.parent_id === current.parent_id); - if (!x) { - return item.concat([current]); - } else { - return item; - } - }, []); +export const filterDuplicateParentID = (arr) => { + const filteredArray = arr.filter( + (item, index) => index === arr.findIndex((other) => item.parent_id === other.parent_id) + ); - return filteredArr; + return filteredArray; };