Feeds Hooks
Feeds Hooks in Bitsocial React Hooks. Usage, options, and examples.
useFeed({communities?: CommunityIdentifier[], sortType?: string, postsPerPage?: number, filter?: CommentsFilter, newerThan?: number, accountComments?: {newerThan: number, append?: boolean}, modQueue: ['pendingApproval']}): {feed: Comment[], loadMore: function, expandTimeWindow: function, hasMore: boolean, reset: function, updatedFeed: Comment[], bufferedFeed: Comment[], communityKeysWithNewerPosts: string[]}
useBufferedFeeds({feedsOptions: UseFeedOptions[]}) // preload or buffer feeds in the background, so they load faster when you call `useFeed`
useFeed().reset() clears the current feed and refreshes the latest community snapshots before rebuilding it.
useFeed().expandTimeWindow(newerThan) broadens newerThan in place without constructing a different sort name, so older posts can be appended without replacing the feed instance.
Feed and reply sort names are defined by each community record, not by a fixed hooks allowlist. Omit sortType to use the preloaded page, or discover the requestable names with getAvailablePostSortTypes(community) and getAvailableReplySortTypes(comment). pkc-js preloads a single sort and only publishes pageCids once that page overflows, so when every post or reply fits in the preloaded page the standard sorts (hot, new, active and top* for posts; best, new, old, newFlat and oldFlat for replies) are also requestable and are sorted client-side from that page, including the time window of top* timeframe sorts. getPostPageSortType(community, sortType) and getReplyPageSortType(comment, sortType) return the page that serves a sort. A requested sort that is neither published nor computable client-side is not silently replaced with another sort. Hooks preserve protocol page order for unknown custom sorts because their scoring algorithm is not available to the client. The same applies to a sort file that a community publishes under a built-in name (for example a keyword no-bump active), which community.pageSorts.posts[sortType] reveals through a different name or options of its own: a single-community feed reading that sort’s pages keeps the community’s page order, while a feed merging several communities still orders them with the built-in sorter of that name.