UNPKG

react-activity-feed

Version:

React components to create activity and notification feeds

49 lines 4.11 kB
import React, { PropsWithChildren } from 'react'; import { Activity, GetFeedOptions, ReactionAPIResponse, StreamClient, ReactionAddOptions, UR, Reaction, FeedAPIResponse, ReactionAddChildOptions, ReactionFilterAPIResponse, ReactionFilterConditions } from 'getstream'; import { FeedManager } from './FeedManager'; import { DefaultAT, DefaultUT } from './StreamApp'; export declare type FeedContextValue<UT extends DefaultUT = DefaultUT, AT extends DefaultAT = DefaultAT, CT extends UR = UR, RT extends UR = UR, CRT extends UR = UR, PT extends UR = UR> = { feedGroup: string; feedManager: FeedManager<UT, AT, CT, RT, CRT, PT>; hasDoneRequest: boolean; hasNextPage: boolean; hasReverseNextPage: boolean; userId?: string; } & Pick<FeedManager<UT, AT, CT, RT, CRT, PT>, 'loadNextPage' | 'loadNextReactions' | 'loadReverseNextPage' | 'onAddChildReaction' | 'onAddReaction' | 'onMarkAsRead' | 'onMarkAsSeen' | 'onRemoveActivity' | 'onRemoveChildReaction' | 'onRemoveReaction' | 'onToggleChildReaction' | 'onToggleReaction' | 'getActivityPath' | 'refresh' | 'refreshUnreadUnseen'> & Pick<FeedManager<UT, AT, CT, RT, CRT, PT>['state'], 'activities' | 'activityOrder' | 'realtimeAdds' | 'realtimeDeletes' | 'refreshing' | 'unread' | 'unseen'>; declare type DeleteRequestFn = (id: string) => Promise<void | unknown>; export declare type FeedProps<UT extends DefaultUT = DefaultUT, AT extends DefaultAT = DefaultAT, CT extends UR = UR, RT extends UR = UR, CRT extends UR = UR, PT extends UR = UR> = { /** The feed group part of the feed */ feedGroup: string; /** The location that should be used for analytics when liking in the feed, * this is only useful when you have analytics enabled for your app. */ analyticsLocation?: string; /** Override activity delete request */ children?: React.ReactNode; doActivityDeleteRequest?: DeleteRequestFn; /** Override child reaction add request */ doChildReactionAddRequest?: (kind: string, reaction: Reaction<RT>, data?: CRT, options?: ReactionAddChildOptions) => Promise<ReactionAPIResponse<CRT>>; /** Override child reaction delete request */ doChildReactionDeleteRequest?: DeleteRequestFn; /** The feed read handler (change only for advanced/complex use-cases) */ doFeedRequest?: (client: StreamClient<UT, AT, CT, RT, CRT, PT>, feedGroup: string, userId?: string, options?: GetFeedOptions) => Promise<FeedAPIResponse<UT, AT, CT, RT, CRT>>; /** Override reaction add request */ doReactionAddRequest?: (kind: string, activity: Activity<AT>, data?: RT, options?: ReactionAddOptions) => Promise<ReactionAPIResponse<RT>>; /** Override reaction delete request */ doReactionDeleteRequest?: DeleteRequestFn; /** Override reactions filter request */ doReactionsFilterRequest?: (options: ReactionFilterConditions) => Promise<ReactionFilterAPIResponse<RT, CRT, AT, UT>>; /** If true, feed shows the Notifier component when new activities are added */ notify?: boolean; /** Read options for the API client (eg. limit, ranking, ...) */ options?: GetFeedOptions; /** The user_id part of the feed */ userId?: string; }; export declare const FeedContext: React.Context<UR | FeedContextValue<DefaultUT, DefaultAT, UR, UR, UR, UR>>; export declare const FeedProvider: <UT extends DefaultUT = DefaultUT, AT extends DefaultAT = DefaultAT, CT extends UR = UR, RT extends UR = UR, CRT extends UR = UR, PT extends UR = UR>({ children, value, }: React.PropsWithChildren<{ value: FeedContextValue<UT, AT, CT, RT, CRT, PT>; }>) => JSX.Element; export declare const useFeedContext: <UT extends DefaultUT = DefaultUT, AT extends DefaultAT = DefaultAT, CT extends UR = UR, RT extends UR = UR, CRT extends UR = UR, PT extends UR = UR>() => FeedContextValue<UT, AT, CT, RT, CRT, PT>; export declare function Feed<UT extends DefaultUT = DefaultUT, AT extends DefaultAT = DefaultAT, CT extends UR = UR, RT extends UR = UR, CRT extends UR = UR, PT extends UR = UR>(props: FeedProps<UT, AT, CT, RT, CRT, PT>): JSX.Element | null; export {}; //# sourceMappingURL=Feed.d.ts.map