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 <tukon479@gmail.com>
This commit is contained in:
Innei 2025-02-10 22:39:26 +08:00
parent 62bde1d5d0
commit fd14d2e7b1
No known key found for this signature in database
GPG Key ID: 0F62D33977F021F7
1 changed files with 17 additions and 8 deletions

View File

@ -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<number>()