@stream-io/feeds-client 0.3.7 → 0.3.8

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +2 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/react-bindings.js +76 -14
  5. package/dist/cjs/react-bindings.js.map +1 -1
  6. package/dist/es/index.mjs +3 -2
  7. package/dist/es/react-bindings.mjs +76 -14
  8. package/dist/es/react-bindings.mjs.map +1 -1
  9. package/dist/{feeds-client-DLiLkrA0.js → feeds-client-CwioZBvA.js} +274 -52
  10. package/dist/feeds-client-CwioZBvA.js.map +1 -0
  11. package/dist/{feeds-client-3aXF89xy.mjs → feeds-client-DVbsjKUf.mjs} +274 -52
  12. package/dist/feeds-client-DVbsjKUf.mjs.map +1 -0
  13. package/dist/types/activity-with-state-updates/activity-with-state-updates.d.ts +49 -0
  14. package/dist/types/activity-with-state-updates/activity-with-state-updates.d.ts.map +1 -0
  15. package/dist/types/activity-with-state-updates/get-feed.d.ts +3 -0
  16. package/dist/types/activity-with-state-updates/get-feed.d.ts.map +1 -0
  17. package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts +1 -0
  18. package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts.map +1 -1
  19. package/dist/types/bindings/react/hooks/feed-state-hooks/useActivityComments.d.ts +32 -0
  20. package/dist/types/bindings/react/hooks/feed-state-hooks/useActivityComments.d.ts.map +1 -0
  21. package/dist/types/bindings/react/hooks/feed-state-hooks/useComments.d.ts +4 -0
  22. package/dist/types/bindings/react/hooks/feed-state-hooks/useComments.d.ts.map +1 -1
  23. package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts.map +1 -1
  24. package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts.map +1 -1
  25. package/dist/types/common/real-time/event-models.d.ts +1 -0
  26. package/dist/types/common/real-time/event-models.d.ts.map +1 -1
  27. package/dist/types/feed/feed.d.ts +1 -1
  28. package/dist/types/feed/feed.d.ts.map +1 -1
  29. package/dist/types/feeds-client/active-activity.d.ts +8 -0
  30. package/dist/types/feeds-client/active-activity.d.ts.map +1 -0
  31. package/dist/types/feeds-client/feeds-client.d.ts +36 -3
  32. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +1 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/types.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/activity-with-state-updates/activity-with-state-updates.ts +190 -0
  38. package/src/activity-with-state-updates/get-feed.ts +5 -0
  39. package/src/bindings/react/hooks/feed-state-hooks/index.ts +1 -0
  40. package/src/bindings/react/hooks/feed-state-hooks/useActivityComments.ts +113 -0
  41. package/src/bindings/react/hooks/feed-state-hooks/useComments.ts +4 -0
  42. package/src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts +12 -9
  43. package/src/bindings/react/hooks/useCreateFeedsClient.ts +0 -6
  44. package/src/common/real-time/event-models.ts +5 -1
  45. package/src/feed/feed.ts +16 -6
  46. package/src/feeds-client/active-activity.ts +42 -0
  47. package/src/feeds-client/feeds-client.ts +162 -53
  48. package/src/index.ts +1 -0
  49. package/src/test-utils/response-generators.ts +1 -0
  50. package/src/types.ts +8 -10
  51. package/dist/feeds-client-3aXF89xy.mjs.map +0 -1
  52. package/dist/feeds-client-DLiLkrA0.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import { StateStore } from '@stream-io/state-store';
2
+ import { Feed, FeedState } from '../feed';
3
+ import { FeedsClient } from '../feeds-client';
4
+ import { ActivityResponse } from '../gen/models';
5
+ import { GetCommentsRequest } from '..';
6
+ type GetActivityConfig = {
7
+ comments?: Partial<Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>>;
8
+ };
9
+ export type ActivityState = {
10
+ activity?: ActivityResponse;
11
+ } & Pick<FeedState, 'comments_by_entity_id'> & {
12
+ /**
13
+ * True when state is being fetched from API
14
+ */
15
+ is_loading: boolean;
16
+ /**
17
+ * @internal
18
+ */
19
+ last_get_request_config?: GetActivityConfig;
20
+ };
21
+ export declare class ActivityWithStateUpdates {
22
+ readonly id: string;
23
+ private readonly feedsClient;
24
+ readonly state: StateStore<ActivityState>;
25
+ protected feed: Feed | undefined;
26
+ private unsubscribeFromFeedState?;
27
+ private inProgressGet?;
28
+ constructor(id: string, feedsClient: FeedsClient);
29
+ get currentState(): ActivityState;
30
+ get feeds(): string[];
31
+ /**
32
+ * Fetch activity and load it into state
33
+ * @param watch - Whether to watch the feed the activity belongs to for real-time updates
34
+ * @param feed - The feed to watch. Use only if the activity belongs to multiple feeds and you want to specify the feed explicitly.
35
+ * @param feedSelector - A function to select the feed from the activity response. Use only if the activity belongs to multiple feeds and you want to specify the feed explicitly.
36
+ */
37
+ get(request?: GetActivityConfig): Promise<ActivityResponse>;
38
+ loadNextPageActivityComments(request?: Partial<Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>>): Promise<void>;
39
+ loadNextPageCommentReplies(...params: Parameters<Feed['loadNextPageCommentReplies']>): Promise<void>;
40
+ dispose(): void;
41
+ /**
42
+ * @internal
43
+ */
44
+ synchronize(): Promise<ActivityResponse | undefined>;
45
+ private setFeed;
46
+ private subscribeToFeedState;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=activity-with-state-updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-with-state-updates.d.ts","sourceRoot":"","sources":["../../../src/activity-with-state-updates/activity-with-state-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGhD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,OAAO,CAChB,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,CAC/D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAAG,IAAI,CAChE,SAAS,EACT,uBAAuB,CACxB,GAAG;IACA;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC;CAC7C,CAAC;AAEJ,qBAAa,wBAAwB;aAUjB,EAAE,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,wBAAwB,CAAC,CAAa;IAC9C,OAAO,CAAC,aAAa,CAAC,CAGpB;gBAGgB,EAAE,EAAE,MAAM,EACT,WAAW,EAAE,WAAW;IAS3C,IAAI,YAAY,kBAEf;IAED,IAAI,KAAK,aAER;IAED;;;;;OAKG;IACG,GAAG,CAAC,OAAO,GAAE,iBAAsB;IA6CzC,4BAA4B,CAC1B,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,CAC/D;IAiBH,0BAA0B,CACxB,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAQ3D,OAAO;IAKP;;OAEG;IACG,WAAW;IASjB,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,oBAAoB;CAkB7B"}
@@ -0,0 +1,3 @@
1
+ import { ActivityWithStateUpdates } from './activity-with-state-updates';
2
+ export declare function getFeed(this: ActivityWithStateUpdates): import('..').Feed | undefined;
3
+ //# sourceMappingURL=get-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-feed.d.ts","sourceRoot":"","sources":["../../../src/activity-with-state-updates/get-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,wBAAgB,OAAO,CAAC,IAAI,EAAE,wBAAwB,iCAErD"}
@@ -9,4 +9,5 @@ export * from './useNotificationStatus';
9
9
  export * from './useAggregatedActivities';
10
10
  export * from './useIsAggregatedActivityRead';
11
11
  export * from './useIsAggregatedActivitySeen';
12
+ export * from './useActivityComments';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { ActivityResponse, CommentResponse, Feed, ActivityWithStateUpdates } from '../../../..';
2
+ export declare function useActivityComments({ feed: feedFromProps, parentComment, activity, }: {
3
+ feed?: Feed;
4
+ parentComment?: CommentResponse;
5
+ activity?: ActivityResponse | ActivityWithStateUpdates;
6
+ }): {
7
+ has_next_page: boolean;
8
+ is_loading_next_page: boolean;
9
+ loadNextPage: (request?: Partial<Omit<{
10
+ object_id: string;
11
+ object_type: string;
12
+ depth?: number;
13
+ sort?: string;
14
+ replies_limit?: number;
15
+ limit?: number;
16
+ prev?: string;
17
+ next?: string;
18
+ }, "next" | "object_id" | "object_type">> | Partial<Omit<{
19
+ id: string;
20
+ depth?: number;
21
+ sort?: string;
22
+ replies_limit?: number;
23
+ limit?: number;
24
+ prev?: string;
25
+ next?: string;
26
+ }, "next" | "comment_id">> | undefined) => Promise<void>;
27
+ comments: CommentResponse[] | undefined;
28
+ comments_pagination: (import('../../../..').PagerResponse & import('../../../..').LoadingStates & {
29
+ sort?: import('../../../..').QueryCommentsRequest["sort"] | (string & {});
30
+ }) | undefined;
31
+ };
32
+ //# sourceMappingURL=useActivityComments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActivityComments.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useActivityComments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,IAAI,EAGT,KAAK,wBAAwB,EAG9B,MAAM,OAAO,CAAC;AA6Bf,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EAAE,aAAa,EACnB,aAAa,EACb,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,wBAAwB,CAAC;CACxD;;;;;;;;;;;;;;;;;;;;+CAXM,OAAO,CAAC,IAAI,CAAC;;;;;EA4EnB"}
@@ -6,6 +6,10 @@ type UseCommentsReturnType<T extends ActivityResponse | CommentResponse> = {
6
6
  is_loading_next_page: boolean;
7
7
  loadNextPage: (request?: T extends CommentResponse ? Parameters<Feed['loadNextPageCommentReplies']>[1] : Parameters<Feed['loadNextPageActivityComments']>[1]) => Promise<void>;
8
8
  };
9
+ /**
10
+ * @deprecated Use `useActivityComments` instead.
11
+ * @param
12
+ */
9
13
  export declare function useComments<T extends CommentParent>(_: {
10
14
  feed: Feed;
11
15
  parent: T;
@@ -1 +1 @@
1
- {"version":3,"file":"useComments.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useComments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,KAAK,qBAAqB,CAAC,CAAC,SAAS,gBAAgB,GAAG,eAAe,IAAI;IACzE,QAAQ,EAAE,WAAW,CACnB,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC,UAAU,CAAC,CAAC;IACd,mBAAmB,EAAE,WAAW,CAC9B,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC,YAAY,CAAC,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,EAAE,CACZ,OAAO,CAAC,EAAE,CAAC,SAAS,eAAe,GAC/B,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,KACpD,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE;IACtD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,CAAC,CAAC;CACX,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7B,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE;IACtD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC;CACX,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"useComments.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useComments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,KAAK,qBAAqB,CAAC,CAAC,SAAS,gBAAgB,GAAG,eAAe,IAAI;IACzE,QAAQ,EAAE,WAAW,CACnB,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC,UAAU,CAAC,CAAC;IACd,mBAAmB,EAAE,WAAW,CAC9B,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC,YAAY,CAAC,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,EAAE,CACZ,OAAO,CAAC,EAAE,CAAC,SAAS,eAAe,GAC/B,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,KACpD,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE;IACtD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,CAAC,CAAC;CACX,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7B,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE;IACtD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC;CACX,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOwnCapabilities.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAoB,MAAM,OAAO,CAAC;AAQvE,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,IAAI,iCAuBtD,CAAC"}
1
+ {"version":3,"file":"useOwnCapabilities.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAoB,MAAM,OAAO,CAAC;AAQvE,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,IAAI,iCA0BtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,OAAO,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,iDAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBAmDA,CAAC"}
1
+ {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,OAAO,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,iDAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBA6CA,CAAC"}
@@ -41,6 +41,7 @@ export declare enum UnhandledErrorType {
41
41
  export type SyncFailure = {
42
42
  feed: string;
43
43
  reason: unknown;
44
+ activity_id?: string;
44
45
  };
45
46
  export type UnhandledErrorEvent = {
46
47
  type: 'errors.unhandled';
@@ -1 +1 @@
1
- {"version":3,"file":"event-models.d.ts","sourceRoot":"","sources":["../../../../src/common/real-time/event-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,EAAE,EAAE,OAAO,CAAC;IACZ;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oBAAY,kBAAkB;IAC5B,0BAA0B,gCAAgC;IAC1D,oCAAoC,8CAA8C;CACnF;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,CACA;IACE,UAAU,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;IAC1D,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,GACD;IACE,UAAU,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;IACpE,KAAK,EAAE,cAAc,CAAC;CACvB,CACJ,CAAC"}
1
+ {"version":3,"file":"event-models.d.ts","sourceRoot":"","sources":["../../../../src/common/real-time/event-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,EAAE,EAAE,OAAO,CAAC;IACZ;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oBAAY,kBAAkB;IAC5B,0BAA0B,gCAAgC;IAC1D,oCAAoC,8CAA8C;CACnF;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,CACA;IACE,UAAU,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;IAC1D,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,GACD;IACE,UAAU,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;IACpE,KAAK,EAAE,cAAc,CAAC;CACvB,CACJ,CAAC"}
@@ -102,7 +102,7 @@ export declare class Feed extends FeedApi {
102
102
  */
103
103
  private loadCommentsIntoState;
104
104
  private loadNextPageComments;
105
- loadNextPageActivityComments(activity: ActivityResponse, request?: Partial<Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>>): Promise<void>;
105
+ loadNextPageActivityComments(activity: ActivityResponse | string, request?: Partial<Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>>): Promise<void>;
106
106
  loadNextPageCommentReplies(comment: CommentResponse, request?: Partial<Omit<GetCommentsRepliesRequest, 'comment_id' | 'next'>>): Promise<void>;
107
107
  private loadNextPageFollows;
108
108
  loadNextPageFollowers(request: Pick<QueryFollowsRequest, 'limit' | 'sort'>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Feed } from '../feed';
2
+ import { FeedsClient } from './feeds-client';
3
+ export declare function connectActivityToFeed(this: FeedsClient, { fid, }: {
4
+ fid: string;
5
+ }): Feed;
6
+ export declare function isAnyFeedWatched(this: FeedsClient, fids: string[]): boolean;
7
+ export declare function disconnectActivityFromFeed(this: FeedsClient, id: string): void;
8
+ //# sourceMappingURL=active-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-activity.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/active-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EACE,GAAG,GACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;CACb,QAcF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WASjE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,QAKvE"}
@@ -1,5 +1,5 @@
1
1
  import { FeedsApi } from '../gen/feeds/FeedsApi';
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';
2
+ import { ActivityAddedEvent, ActivityResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddReactionRequest, DeleteActivityReactionResponse, DeleteCommentReactionResponse, DeleteCommentResponse, FeedResponse, FileUploadRequest, FollowBatchRequest, FollowRequest, GetOrCreateFeedRequest, 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';
@@ -7,11 +7,14 @@ import { ModerationClient } from '../moderation-client';
7
7
  import { StreamPoll } from '../common/Poll';
8
8
  import { Feed } from '../feed';
9
9
  import { ThrottledGetBatchedOwnCapabilities } from '../utils/throttling';
10
+ import { ActivityWithStateUpdates } from '../activity-with-state-updates/activity-with-state-updates';
10
11
  export type FeedsClientState = {
11
12
  connected_user: OwnUser | undefined;
12
13
  is_ws_connection_healthy: boolean;
13
14
  own_capabilities_by_fid: Record<string, FeedResponse['own_capabilities']>;
14
15
  };
16
+ type FID = string;
17
+ type ActivityId = string;
15
18
  export declare class FeedsClient extends FeedsApi {
16
19
  readonly state: StateStore<FeedsClientState>;
17
20
  readonly moderation: ModerationClient;
@@ -20,7 +23,8 @@ export declare class FeedsClient extends FeedsApi {
20
23
  private readonly connectionIdManager;
21
24
  private readonly eventDispatcher;
22
25
  private readonly polls_by_id;
23
- private activeFeeds;
26
+ protected activeActivities: Record<ActivityId, ActivityWithStateUpdates>;
27
+ protected activeFeeds: Record<FID, Feed>;
24
28
  private healthyConnectionChangedEventCount;
25
29
  protected throttledGetBatchOwnCapabilities: ThrottledGetBatchedOwnCapabilities;
26
30
  private cancelGetBatchOwnCapabilitiesTimer;
@@ -28,6 +32,7 @@ export declare class FeedsClient extends FeedsApi {
28
32
  constructor(apiKey: string, options?: FeedsClientOptions);
29
33
  private setGetBatchOwnCapabilitiesThrottlingInterval;
30
34
  private recoverOnReconnect;
35
+ private get allActiveFeeds();
31
36
  pollFromState: (id: string) => StreamPoll | undefined;
32
37
  hydratePollCache(activities: ActivityResponse[]): void;
33
38
  hydrateCapabilitiesCache(feedResponses: Array<Pick<FeedResponse, 'feed' | 'own_capabilities'>>): void;
@@ -104,6 +109,15 @@ export declare class FeedsClient extends FeedsApi {
104
109
  addNewActivitiesTo?: "start" | "end";
105
110
  activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
106
111
  }) => Feed;
112
+ /**
113
+ * If you want to get an activity with state updates outside of a feed, use this method.
114
+ *
115
+ * Usually it's used when you implement an activity details page.
116
+ *
117
+ * @param id - The id of the activity
118
+ * @returns The activity with state updates
119
+ */
120
+ activityWithStateUpdates: (id: ActivityId) => ActivityWithStateUpdates;
107
121
  queryFeeds(request?: QueryFeedsRequest): Promise<{
108
122
  feeds: Feed[];
109
123
  next: string | undefined;
@@ -123,7 +137,26 @@ export declare class FeedsClient extends FeedsApi {
123
137
  feed_group_id: string;
124
138
  feed_id: string;
125
139
  }): Promise<StreamResponse<import('..').Response>>;
140
+ getOrCreateFeed(request: GetOrCreateFeedRequest & {
141
+ feed_group_id: string;
142
+ feed_id: string;
143
+ connection_id?: string;
144
+ }): Promise<StreamResponse<import('..').GetOrCreateFeedResponse>>;
126
145
  private readonly getOrCreateActiveFeed;
127
- private findActiveFeedsByActivityId;
146
+ private findAllActiveFeedsByActivityId;
147
+ private findAllActiveFeedsByFid;
148
+ /**
149
+ * When updating from WS events we need a special logic:
150
+ * - Find active feeds that match a given fid.
151
+ * - Find active feed from activities where fid matches any of the feeds the activity is posted to.
152
+ *
153
+ * This logic is different from `findAllActiveFeedsByFid` which only checks the first feed an activity is posted to.
154
+ *
155
+ * @param fid
156
+ * @param activityId
157
+ * @returns
158
+ */
159
+ private findAllActiveFeedsFromWSEvent;
128
160
  }
161
+ export {};
129
162
  //# 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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"}
@@ -7,4 +7,5 @@ export * from './common/types';
7
7
  export * from './common/search';
8
8
  export * from './common/Poll';
9
9
  export * from './utils';
10
+ export * from './activity-with-state-updates/activity-with-state-updates';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,2DAA2D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AACtG,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,WAAW,CAAC,mBAAmB,CAAC,CACjC,CAAC,CAAC,CAAC,CAAC;AAEL,MAAM,MAAM,8BAA8B,GAAG,aAAa,GAAG,aAAa,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,aAAa,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3E,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,CAAC;AACxB,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,WAAW,CAAC,mBAAmB,CAAC,CACjC,CAAC,CAAC,CAAC,CAAC;AAEL,MAAM,MAAM,8BAA8B,GAAG,aAAa,GAAG,aAAa,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,aAAa,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/feeds-client",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/es/index.mjs",
@@ -0,0 +1,190 @@
1
+ import { StateStore } from '@stream-io/state-store';
2
+ import type { Feed, FeedState } from '../feed';
3
+ import type { FeedsClient } from '../feeds-client';
4
+ import type { ActivityResponse } from '../gen/models';
5
+ import {
6
+ connectActivityToFeed,
7
+ disconnectActivityFromFeed,
8
+ isAnyFeedWatched,
9
+ } from '../feeds-client/active-activity';
10
+ import type { GetCommentsRequest } from '@self';
11
+ import { deepEqual } from '../utils/deep-equal';
12
+
13
+ type GetActivityConfig = {
14
+ comments?: Partial<
15
+ Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>
16
+ >;
17
+ };
18
+
19
+ export type ActivityState = { activity?: ActivityResponse } & Pick<
20
+ FeedState,
21
+ 'comments_by_entity_id'
22
+ > & {
23
+ /**
24
+ * True when state is being fetched from API
25
+ */
26
+ is_loading: boolean;
27
+ /**
28
+ * @internal
29
+ */
30
+ last_get_request_config?: GetActivityConfig;
31
+ };
32
+
33
+ export class ActivityWithStateUpdates {
34
+ readonly state: StateStore<ActivityState>;
35
+ protected feed: Feed | undefined;
36
+ private unsubscribeFromFeedState?: () => void;
37
+ private inProgressGet?: {
38
+ request?: GetActivityConfig;
39
+ promise: Promise<ActivityResponse>;
40
+ };
41
+
42
+ constructor(
43
+ public readonly id: string,
44
+ private readonly feedsClient: FeedsClient,
45
+ ) {
46
+ this.state = new StateStore<ActivityState>({
47
+ activity: undefined,
48
+ comments_by_entity_id: {},
49
+ is_loading: false,
50
+ });
51
+ }
52
+
53
+ get currentState() {
54
+ return this.state.getLatestValue();
55
+ }
56
+
57
+ get feeds() {
58
+ return this.currentState.activity?.feeds ?? [];
59
+ }
60
+
61
+ /**
62
+ * Fetch activity and load it into state
63
+ * @param watch - Whether to watch the feed the activity belongs to for real-time updates
64
+ * @param feed - The feed to watch. Use only if the activity belongs to multiple feeds and you want to specify the feed explicitly.
65
+ * @param feedSelector - A function to select the feed from the activity response. Use only if the activity belongs to multiple feeds and you want to specify the feed explicitly.
66
+ */
67
+ async get(request: GetActivityConfig = {}) {
68
+ if (this.inProgressGet && deepEqual(this.inProgressGet.request, request)) {
69
+ return this.inProgressGet.promise;
70
+ }
71
+
72
+ const { comments } = request;
73
+
74
+ this.state.partialNext({
75
+ is_loading: true,
76
+ last_get_request_config: request,
77
+ });
78
+
79
+ const getActivityRequest = this.feedsClient
80
+ .getActivity({
81
+ id: this.id,
82
+ })
83
+ .then((response) => response.activity);
84
+ this.inProgressGet = { request, promise: getActivityRequest };
85
+ const activityResponse = await getActivityRequest;
86
+
87
+ this.feedsClient.hydratePollCache([activityResponse]);
88
+
89
+ this.setFeed({
90
+ // We set feed to first containing feed
91
+ // But in WS event handler we match events by any of the containing feeds, so as long as any of the containing feeds are watched, we'll do a state update
92
+ // This is a bit hacky, proper solution would be to refactor all activity event handlers and detach them from feed instance
93
+ fid: activityResponse.feeds[0],
94
+ initialState: activityResponse,
95
+ });
96
+
97
+ if (this.feed) {
98
+ this.feed.activityAddedEventFilter = () => false;
99
+ }
100
+
101
+ if (comments) {
102
+ await this.loadNextPageActivityComments(comments);
103
+ }
104
+
105
+ this.subscribeToFeedState();
106
+
107
+ this.inProgressGet = undefined;
108
+
109
+ return activityResponse;
110
+ }
111
+
112
+ loadNextPageActivityComments(
113
+ request?: Partial<
114
+ Omit<GetCommentsRequest, 'object_id' | 'object_type' | 'next'>
115
+ >,
116
+ ) {
117
+ const activity = this.feed?.currentState.activities?.[0];
118
+ if (!activity || !this.feed) {
119
+ throw new Error('Initialize activity first');
120
+ }
121
+ if (!this.currentState.last_get_request_config?.comments) {
122
+ this.state.partialNext({
123
+ last_get_request_config: {
124
+ ...this.currentState.last_get_request_config,
125
+ comments: request,
126
+ },
127
+ });
128
+ }
129
+ return this.feed.loadNextPageActivityComments(activity, request);
130
+ }
131
+
132
+ loadNextPageCommentReplies(
133
+ ...params: Parameters<Feed['loadNextPageCommentReplies']>
134
+ ) {
135
+ if (!this.feed) {
136
+ throw new Error('Initialize activity first');
137
+ }
138
+ return this.feed.loadNextPageCommentReplies(...params);
139
+ }
140
+
141
+ dispose() {
142
+ this.unsubscribeFromFeedState?.();
143
+ disconnectActivityFromFeed.call(this.feedsClient, this.id);
144
+ }
145
+
146
+ /**
147
+ * @internal
148
+ */
149
+ async synchronize() {
150
+ const allFids = this.currentState.activity?.feeds ?? [];
151
+ if (!isAnyFeedWatched.call(this.feedsClient, allFids)) {
152
+ return;
153
+ }
154
+ this.inProgressGet = undefined;
155
+ return this.get(this.currentState.last_get_request_config);
156
+ }
157
+
158
+ private setFeed({
159
+ fid,
160
+ initialState,
161
+ }: {
162
+ fid: string;
163
+ initialState: ActivityResponse;
164
+ }) {
165
+ this.feed = connectActivityToFeed.call(this.feedsClient, { fid });
166
+
167
+ this.feed.state.partialNext({
168
+ activities: [initialState],
169
+ });
170
+ }
171
+
172
+ private subscribeToFeedState() {
173
+ this.unsubscribeFromFeedState?.();
174
+ this.unsubscribeFromFeedState = this.feed?.state.subscribeWithSelector(
175
+ (state) => ({
176
+ activity: state.activities?.find((activity) => activity.id === this.id),
177
+ comments_by_entity_id: state.comments_by_entity_id,
178
+ }),
179
+ (state) => {
180
+ if (state.activity) {
181
+ this.state.partialNext({
182
+ activity: state.activity,
183
+ comments_by_entity_id: state.comments_by_entity_id,
184
+ is_loading: false,
185
+ });
186
+ }
187
+ },
188
+ );
189
+ }
190
+ }
@@ -0,0 +1,5 @@
1
+ import type { ActivityWithStateUpdates } from './activity-with-state-updates';
2
+
3
+ export function getFeed(this: ActivityWithStateUpdates) {
4
+ return this.feed;
5
+ }
@@ -9,3 +9,4 @@ export * from './useNotificationStatus';
9
9
  export * from './useAggregatedActivities';
10
10
  export * from './useIsAggregatedActivityRead';
11
11
  export * from './useIsAggregatedActivitySeen';
12
+ export * from './useActivityComments';