From fd14d2e7b1810dedcecf68add5c812fa3b097767 Mon Sep 17 00:00:00 2001 From: Innei Date: Mon, 10 Feb 2025 22:39:26 +0800 Subject: [PATCH] refactor: optimize entries query with dynamic parameter handling - Memoize `entriesOptions` to improve performance - Add conditional logic to remove `listId` for business feed IDs - Import `isBizId` utility function for ID type checking - Enhance query parameter generation with more flexible configuration Signed-off-by: Innei --- .../entry-column/hooks/useEntriesByView.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/renderer/src/modules/entry-column/hooks/useEntriesByView.ts b/apps/renderer/src/modules/entry-column/hooks/useEntriesByView.ts index 546273fee..e74a6f37c 100644 --- a/apps/renderer/src/modules/entry-column/hooks/useEntriesByView.ts +++ b/apps/renderer/src/modules/entry-column/hooks/useEntriesByView.ts @@ -1,4 +1,5 @@ import { views } from "@follow/constants" +import { isBizId } from "@follow/utils/utils" import { useMutation } from "@tanstack/react-query" import { useCallback, useEffect, useMemo, useRef, useState } from "react" @@ -28,14 +29,22 @@ export const useEntriesByView = ({ view, }) - const entriesOptions = { - feedId: folderIds?.join(",") || feedId, - inboxId, - listId, - view, - ...(unreadOnly === true && { read: false }), - isArchived, - } + const entriesOptions = useMemo(() => { + const params = { + feedId: folderIds?.join(",") || feedId, + inboxId, + listId, + view, + ...(unreadOnly === true && { read: false }), + isArchived, + } + + if (feedId && listId && isBizId(feedId)) { + delete params.listId + } + + return params + }, [feedId, folderIds, inboxId, isArchived, listId, unreadOnly, view]) const query = useEntries(entriesOptions) const [fetchedTime, setFetchedTime] = useState()