@stream-io/feeds-client 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/react-bindings.js +1 -1
- package/dist/es/index.mjs +2 -2
- package/dist/es/react-bindings.mjs +1 -1
- package/dist/{feeds-client-ZdWyhS1v.mjs → feeds-client-CNHZvctN.mjs} +33 -14
- package/dist/{feeds-client-ZdWyhS1v.mjs.map → feeds-client-CNHZvctN.mjs.map} +1 -1
- package/dist/{feeds-client-jZwPzici.js → feeds-client-HvoTzr-z.js} +33 -14
- package/dist/{feeds-client-jZwPzici.js.map → feeds-client-HvoTzr-z.js.map} +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
- package/dist/types/feed/feed.d.ts +9 -3
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +12 -2
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/feed/event-handlers/activity/handle-activity-added.ts +5 -0
- package/src/feed/feed.ts +18 -1
- package/src/feeds-client/feeds-client.ts +23 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK;;;EAiC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK;;;EAiC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,QAyB5C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActivityRequest, FeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, QueryFollowsRequest, WSEvent, ActivityResponse, CommentResponse, QueryFeedMembersRequest, SortParamRequest, FollowRequest, QueryCommentsRequest } from '../gen/models';
|
|
1
|
+
import { ActivityRequest, FeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, QueryFollowsRequest, WSEvent, ActivityResponse, CommentResponse, QueryFeedMembersRequest, SortParamRequest, FollowRequest, QueryCommentsRequest, ActivityAddedEvent } from '../gen/models';
|
|
2
2
|
import { StreamResponse } from '../gen-imports';
|
|
3
3
|
import { StateStore } from '@stream-io/state-store';
|
|
4
4
|
import { EventDispatcher } from '../common/EventDispatcher';
|
|
@@ -75,18 +75,20 @@ export type FeedState = Omit<Partial<GetOrCreateFeedResponse & FeedResponse>, 'f
|
|
|
75
75
|
addNewActivitiesTo: 'start' | 'end';
|
|
76
76
|
};
|
|
77
77
|
export declare class Feed extends FeedApi {
|
|
78
|
+
activityAddedEventFilter?: ((event: ActivityAddedEvent) => boolean) | undefined;
|
|
78
79
|
readonly state: StateStore<FeedState>;
|
|
79
80
|
private static readonly noop;
|
|
80
81
|
protected indexedActivityIds: Set<string>;
|
|
81
82
|
protected readonly stateUpdateQueue: Set<string>;
|
|
82
83
|
private readonly eventHandlers;
|
|
83
84
|
protected eventDispatcher: EventDispatcher<WSEvent['type'], WSEvent>;
|
|
84
|
-
constructor(client: FeedsClient, groupId: 'user' | 'timeline' | (string & {}), id: string, data?: FeedResponse, watch?: boolean, addNewActivitiesTo?: 'start' | 'end');
|
|
85
|
+
constructor(client: FeedsClient, groupId: 'user' | 'timeline' | (string & {}), id: string, data?: FeedResponse, watch?: boolean, addNewActivitiesTo?: 'start' | 'end', activityAddedEventFilter?: ((event: ActivityAddedEvent) => boolean) | undefined);
|
|
85
86
|
protected readonly client: FeedsClient;
|
|
86
87
|
get feed(): string;
|
|
87
88
|
get currentState(): FeedState;
|
|
88
89
|
set addNewActivitiesTo(value: 'start' | 'end');
|
|
89
90
|
hasActivity(activityId: string): boolean;
|
|
91
|
+
hasPinnedActivity(activityId: string): boolean | undefined;
|
|
90
92
|
synchronize(): Promise<void>;
|
|
91
93
|
getOrCreate(request?: GetOrCreateFeedRequest): Promise<StreamResponse<GetOrCreateFeedResponse>>;
|
|
92
94
|
/**
|
|
@@ -119,7 +121,11 @@ export declare class Feed extends FeedApi {
|
|
|
119
121
|
queryFollowing(request: Omit<QueryFollowsRequest, 'filter'>): Promise<StreamResponse<import('..').QueryFollowsResponse>>;
|
|
120
122
|
follow(feedOrFid: Feed | string, options?: Omit<FollowRequest, 'source' | 'target'>): Promise<StreamResponse<import('..').SingleFollowResponse>>;
|
|
121
123
|
unfollow(feedOrFid: Feed | string): Promise<StreamResponse<import('..').UnfollowResponse>>;
|
|
122
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Fetches the next page of activities for the feed.
|
|
126
|
+
* @returns The response from the API or `undefined` if there is no next page.
|
|
127
|
+
*/
|
|
128
|
+
getNextPage(): Promise<StreamResponse<GetOrCreateFeedResponse> | undefined>;
|
|
123
129
|
addActivity(request: Omit<ActivityRequest, 'feeds'>): Promise<StreamResponse<import('..').AddActivityResponse>>;
|
|
124
130
|
on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.feedback" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "feeds.stories_feed.updated" | "health.check" | "moderation.custom_action" | "moderation.mark_reviewed" | "user.updated" | "moderation.flagged" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => () => void;
|
|
125
131
|
off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.feedback" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "feeds.stories_feed.updated" | "health.check" | "moderation.custom_action" | "moderation.mark_reviewed" | "user.updated" | "moderation.flagged" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,eAAe,EAEf,uBAAuB,EACvB,gBAAgB,EAEhB,aAAa,EACb,oBAAoB,
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FeedsApi } from '../gen/feeds/FeedsApi';
|
|
2
|
-
import { ActivityResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddReactionRequest, DeleteActivityReactionResponse, DeleteCommentReactionResponse, DeleteCommentResponse, FeedResponse, FileUploadRequest, FollowBatchRequest, FollowRequest, ImageUploadRequest, OwnCapabilitiesBatchRequest, OwnUser, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, UpdateActivityRequest, UpdateActivityResponse, UpdateCommentRequest, UpdateCommentResponse, UpdateFollowRequest, UserRequest } from '../gen/models';
|
|
2
|
+
import { ActivityAddedEvent, ActivityResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddReactionRequest, DeleteActivityReactionResponse, DeleteCommentReactionResponse, DeleteCommentResponse, FeedResponse, FileUploadRequest, FollowBatchRequest, FollowRequest, ImageUploadRequest, OwnCapabilitiesBatchRequest, OwnUser, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, UpdateActivityRequest, UpdateActivityResponse, UpdateCommentRequest, UpdateCommentResponse, UpdateFollowRequest, UserRequest } from '../gen/models';
|
|
3
3
|
import { FeedsEvent, StreamFile, TokenOrProvider } from '../types';
|
|
4
4
|
import { StateStore } from '@stream-io/state-store';
|
|
5
5
|
import { FeedsClientOptions, StreamResponse } from '../common/types';
|
|
@@ -91,8 +91,18 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
91
91
|
off: (eventName: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.feedback" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "feeds.stories_feed.updated" | "health.check" | "moderation.custom_action" | "moderation.mark_reviewed" | "user.updated" | "moderation.flagged" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" | "errors.unhandled", handler: (event: FeedsEvent & {
|
|
92
92
|
fid?: string;
|
|
93
93
|
}) => void) => void;
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @param groupId for example `user`, `notification` or id of a custom feed group
|
|
97
|
+
* @param id
|
|
98
|
+
* @param options
|
|
99
|
+
* @param options.addNewActivitiesTo - when a new activity is received from a WebSocket event by default it's added to the start of the list. You can change this to `end` to add it to the end of the list. Useful for story feeds.
|
|
100
|
+
* @param options.activityAddedEventFilter - a callback that is called when a new activity is received from a WebSocket event. You can use this to prevent the activity from being added to the feed. Useful for feed filtering, or if you don't want new activities to be added to the feed.
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
94
103
|
feed: (groupId: string, id: string, options?: {
|
|
95
104
|
addNewActivitiesTo?: "start" | "end";
|
|
105
|
+
activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
|
|
96
106
|
}) => Feed;
|
|
97
107
|
queryFeeds(request?: QueryFeedsRequest): Promise<{
|
|
98
108
|
feeds: Feed[];
|
|
@@ -114,6 +124,6 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
114
124
|
feed_id: string;
|
|
115
125
|
}): Promise<StreamResponse<import('..').Response>>;
|
|
116
126
|
private readonly getOrCreateActiveFeed;
|
|
117
|
-
private
|
|
127
|
+
private findActiveFeedsByActivityId;
|
|
118
128
|
}
|
|
119
129
|
//# sourceMappingURL=feeds-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -45,6 +45,11 @@ export function handleActivityAdded(
|
|
|
45
45
|
this: Feed,
|
|
46
46
|
event: EventPayload<'feeds.activity.added'>,
|
|
47
47
|
) {
|
|
48
|
+
if (this.activityAddedEventFilter) {
|
|
49
|
+
if (!this.activityAddedEventFilter(event)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
48
53
|
const currentActivities = this.currentState.activities;
|
|
49
54
|
const result = addActivitiesToState.bind(this)(
|
|
50
55
|
[event.activity],
|
package/src/feed/feed.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
ThreadedCommentResponse,
|
|
14
14
|
FollowRequest,
|
|
15
15
|
QueryCommentsRequest,
|
|
16
|
+
ActivityAddedEvent,
|
|
16
17
|
} from '../gen/models';
|
|
17
18
|
import type { StreamResponse } from '../gen-imports';
|
|
18
19
|
import { StateStore } from '@stream-io/state-store';
|
|
@@ -221,6 +222,7 @@ export class Feed extends FeedApi {
|
|
|
221
222
|
data?: FeedResponse,
|
|
222
223
|
watch = false,
|
|
223
224
|
addNewActivitiesTo: 'start' | 'end' = 'start',
|
|
225
|
+
public activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean,
|
|
224
226
|
) {
|
|
225
227
|
super(client, groupId, id);
|
|
226
228
|
this.state = new StateStore<FeedState>({
|
|
@@ -268,6 +270,12 @@ export class Feed extends FeedApi {
|
|
|
268
270
|
return this.indexedActivityIds.has(activityId);
|
|
269
271
|
}
|
|
270
272
|
|
|
273
|
+
hasPinnedActivity(activityId: string) {
|
|
274
|
+
return this.currentState.pinned_activities?.some(
|
|
275
|
+
(pinnedActivity) => pinnedActivity.activity.id === activityId,
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
|
|
271
279
|
async synchronize() {
|
|
272
280
|
const { last_get_or_create_request_config } = this.state.getLatestValue();
|
|
273
281
|
if (last_get_or_create_request_config?.watch) {
|
|
@@ -846,10 +854,19 @@ export class Feed extends FeedApi {
|
|
|
846
854
|
return response;
|
|
847
855
|
}
|
|
848
856
|
|
|
857
|
+
/**
|
|
858
|
+
* Fetches the next page of activities for the feed.
|
|
859
|
+
* @returns The response from the API or `undefined` if there is no next page.
|
|
860
|
+
*/
|
|
849
861
|
async getNextPage() {
|
|
850
862
|
const currentState = this.currentState;
|
|
851
863
|
|
|
864
|
+
if (!currentState.next) {
|
|
865
|
+
return;
|
|
866
|
+
}
|
|
867
|
+
|
|
852
868
|
return await this.getOrCreate({
|
|
869
|
+
...currentState.last_get_or_create_request_config,
|
|
853
870
|
member_pagination: {
|
|
854
871
|
limit: 0,
|
|
855
872
|
},
|
|
@@ -859,8 +876,8 @@ export class Feed extends FeedApi {
|
|
|
859
876
|
following_pagination: {
|
|
860
877
|
limit: 0,
|
|
861
878
|
},
|
|
879
|
+
watch: undefined,
|
|
862
880
|
next: currentState.next,
|
|
863
|
-
limit: currentState.last_get_or_create_request_config?.limit ?? 20,
|
|
864
881
|
});
|
|
865
882
|
}
|
|
866
883
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FeedsApi } from '../gen/feeds/FeedsApi';
|
|
2
2
|
import type {
|
|
3
|
+
ActivityAddedEvent,
|
|
3
4
|
ActivityResponse,
|
|
4
5
|
AddCommentReactionRequest,
|
|
5
6
|
AddCommentReactionResponse,
|
|
@@ -236,14 +237,14 @@ export class FeedsClient extends FeedsApi {
|
|
|
236
237
|
case 'feeds.bookmark.updated': {
|
|
237
238
|
const activityId = event.bookmark.activity.id;
|
|
238
239
|
// TODO: find faster way later on
|
|
239
|
-
const feeds = this.
|
|
240
|
+
const feeds = this.findActiveFeedsByActivityId(activityId);
|
|
240
241
|
feeds.forEach((f) => f.handleWSEvent(event));
|
|
241
242
|
|
|
242
243
|
break;
|
|
243
244
|
}
|
|
244
245
|
case 'feeds.activity.feedback': {
|
|
245
246
|
const activityId = event.activity_feedback.activity_id;
|
|
246
|
-
const feeds = this.
|
|
247
|
+
const feeds = this.findActiveFeedsByActivityId(activityId);
|
|
247
248
|
feeds.forEach((f) => f.handleWSEvent(event));
|
|
248
249
|
|
|
249
250
|
break;
|
|
@@ -619,10 +620,22 @@ export class FeedsClient extends FeedsApi {
|
|
|
619
620
|
on = this.eventDispatcher.on;
|
|
620
621
|
off = this.eventDispatcher.off;
|
|
621
622
|
|
|
623
|
+
/**
|
|
624
|
+
*
|
|
625
|
+
* @param groupId for example `user`, `notification` or id of a custom feed group
|
|
626
|
+
* @param id
|
|
627
|
+
* @param options
|
|
628
|
+
* @param options.addNewActivitiesTo - when a new activity is received from a WebSocket event by default it's added to the start of the list. You can change this to `end` to add it to the end of the list. Useful for story feeds.
|
|
629
|
+
* @param options.activityAddedEventFilter - a callback that is called when a new activity is received from a WebSocket event. You can use this to prevent the activity from being added to the feed. Useful for feed filtering, or if you don't want new activities to be added to the feed.
|
|
630
|
+
* @returns
|
|
631
|
+
*/
|
|
622
632
|
feed = (
|
|
623
633
|
groupId: string,
|
|
624
634
|
id: string,
|
|
625
|
-
options?: {
|
|
635
|
+
options?: {
|
|
636
|
+
addNewActivitiesTo?: 'start' | 'end';
|
|
637
|
+
activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
|
|
638
|
+
},
|
|
626
639
|
) => {
|
|
627
640
|
return this.getOrCreateActiveFeed(
|
|
628
641
|
groupId,
|
|
@@ -630,6 +643,7 @@ export class FeedsClient extends FeedsApi {
|
|
|
630
643
|
undefined,
|
|
631
644
|
undefined,
|
|
632
645
|
options?.addNewActivitiesTo,
|
|
646
|
+
options?.activityAddedEventFilter,
|
|
633
647
|
);
|
|
634
648
|
};
|
|
635
649
|
|
|
@@ -761,6 +775,7 @@ export class FeedsClient extends FeedsApi {
|
|
|
761
775
|
data?: FeedResponse,
|
|
762
776
|
watch?: boolean,
|
|
763
777
|
addNewActivitiesTo?: 'start' | 'end',
|
|
778
|
+
activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean,
|
|
764
779
|
) => {
|
|
765
780
|
const fid = `${group}:${id}`;
|
|
766
781
|
|
|
@@ -772,6 +787,7 @@ export class FeedsClient extends FeedsApi {
|
|
|
772
787
|
data,
|
|
773
788
|
watch,
|
|
774
789
|
addNewActivitiesTo,
|
|
790
|
+
activityAddedEventFilter,
|
|
775
791
|
);
|
|
776
792
|
}
|
|
777
793
|
|
|
@@ -786,11 +802,10 @@ export class FeedsClient extends FeedsApi {
|
|
|
786
802
|
return feed;
|
|
787
803
|
};
|
|
788
804
|
|
|
789
|
-
private
|
|
790
|
-
return Object.values(this.activeFeeds).filter(
|
|
791
|
-
feed
|
|
792
|
-
(
|
|
793
|
-
),
|
|
805
|
+
private findActiveFeedsByActivityId(activityId: string) {
|
|
806
|
+
return Object.values(this.activeFeeds).filter(
|
|
807
|
+
(feed) =>
|
|
808
|
+
feed.hasActivity(activityId) || feed.hasPinnedActivity(activityId),
|
|
794
809
|
);
|
|
795
810
|
}
|
|
796
811
|
}
|