From 7d5f9d90c4263d99608ec01585fd934697878f11 Mon Sep 17 00:00:00 2001 From: Ren Amamiya <123083837+reyamir@users.noreply.github.com> Date: Thu, 6 Apr 2023 17:14:11 +0700 Subject: [PATCH] added filtered duplicate parent id --- src/pages/newsfeed/following.tsx | 9 +++++++-- src/utils/transform.tsx | 15 +++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) 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; };