import { api } from "@/lib/trpc"; import type { ZGetBookmarksRequest } from "@karakeep/shared/types/bookmarks"; import { BookmarkTypes } from "@karakeep/shared/types/bookmarks"; import FullPageError from "../FullPageError"; import FullPageSpinner from "../ui/FullPageSpinner"; import BookmarkList from "./BookmarkList"; export default function UpdatingBookmarkList({ query, header, }: { query: Omit; // Sort order is not supported in mobile yet header?: React.ReactElement; }) { const apiUtils = api.useUtils(); const { data, isPending, isPlaceholderData, error, fetchNextPage, isFetchingNextPage, refetch, } = api.bookmarks.getBookmarks.useInfiniteQuery( { ...query, useCursorV2: true, includeContent: false }, { initialCursor: null, getNextPageParam: (lastPage) => lastPage.nextCursor, }, ); if (error) { return refetch()} />; } if (isPending || !data) { return ; } const onRefresh = () => { apiUtils.bookmarks.getBookmarks.invalidate(); apiUtils.bookmarks.getBookmark.invalidate(); }; return ( p.bookmarks) .filter((b) => b.content.type != BookmarkTypes.UNKNOWN)} header={header} onRefresh={onRefresh} fetchNextPage={fetchNextPage} isFetchingNextPage={isFetchingNextPage} isRefreshing={isPending || isPlaceholderData} /> ); }