import { BookmarkIcon } from "@heroicons/react/24/outline";
import {
type MainContentFocus,
PageSize,
type PostBookmarksRequest,
usePostBookmarksQuery
} from "@hey/indexer";
import { useCallback } from "react";
import SinglePost from "@/components/Post/SinglePost";
import PostFeed from "@/components/Shared/Post/PostFeed";
interface BookmarksFeedProps {
focus?: MainContentFocus;
}
const BookmarksFeed = ({ focus }: BookmarksFeedProps) => {
const request: PostBookmarksRequest = {
pageSize: PageSize.Fifty,
...(focus && { filter: { metadata: { mainContentFocus: [focus] } } })
};
const { data, error, fetchMore, loading } = usePostBookmarksQuery({
variables: { request }
});
const posts = data?.postBookmarks?.items ?? [];
const pageInfo = data?.postBookmarks?.pageInfo;
const hasMore = pageInfo?.next;
const handleEndReached = useCallback(async () => {
if (hasMore) {
await fetchMore({
variables: { request: { ...request, cursor: pageInfo?.next } }
});
}
}, [fetchMore, hasMore, pageInfo?.next, request]);
return (
}
emptyMessage="No bookmarks yet!"
error={error}
errorTitle="Failed to load bookmark feed"
handleEndReached={handleEndReached}
hasMore={hasMore}
items={posts}
loading={loading}
renderItem={(post) => }
/>
);
};
export default BookmarksFeed;