@stream-io/feeds-client 0.3.45 → 0.3.47

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 (32) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/react-bindings.js +69 -26
  4. package/dist/cjs/react-bindings.js.map +1 -1
  5. package/dist/es/index.mjs +2 -2
  6. package/dist/es/react-bindings.mjs +69 -26
  7. package/dist/es/react-bindings.mjs.map +1 -1
  8. package/dist/{feeds-client-CN3FjVMk.js → feeds-client-CxjZlEtX.js} +42 -16
  9. package/dist/feeds-client-CxjZlEtX.js.map +1 -0
  10. package/dist/{feeds-client-DK7PXh7g.mjs → feeds-client-ykIZW9Hi.mjs} +42 -16
  11. package/dist/feeds-client-ykIZW9Hi.mjs.map +1 -0
  12. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  13. package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts +1 -0
  14. package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts.map +1 -1
  15. package/dist/types/bindings/react/hooks/feed-state-hooks/useMembers.d.ts +17 -0
  16. package/dist/types/bindings/react/hooks/feed-state-hooks/useMembers.d.ts.map +1 -0
  17. package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts +1 -1
  18. package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts.map +1 -1
  19. package/dist/types/common/Poll.d.ts.map +1 -1
  20. package/dist/types/feed/event-handlers/activity-updater.d.ts +2 -2
  21. package/dist/types/feed/event-handlers/activity-updater.d.ts.map +1 -1
  22. package/dist/types/feeds-client/feeds-client.d.ts +3 -1
  23. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  24. package/package.json +6 -1
  25. package/src/bindings/react/hooks/feed-state-hooks/index.ts +1 -0
  26. package/src/bindings/react/hooks/feed-state-hooks/useMembers.ts +55 -0
  27. package/src/bindings/react/hooks/useCreateFeedsClient.ts +21 -13
  28. package/src/common/Poll.ts +5 -2
  29. package/src/feed/event-handlers/activity-updater.ts +2 -0
  30. package/src/feeds-client/feeds-client.ts +41 -11
  31. package/dist/feeds-client-CN3FjVMk.js.map +0 -1
  32. package/dist/feeds-client-DK7PXh7g.mjs.map +0 -1
@@ -11,4 +11,5 @@ export * from './useIsAggregatedActivityRead';
11
11
  export * from './useIsAggregatedActivitySeen';
12
12
  export * from './useActivityComments';
13
13
  export * from './useOwnFollowings';
14
+ export * from './useMembers';
14
15
  //# 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;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,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;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Feed, FeedState } from '../../../../feed';
2
+ declare const selector: ({ member_count, members, member_pagination, }: FeedState) => {
3
+ member_count: number | undefined;
4
+ members: import("../../../..").FeedMemberResponse[] | undefined;
5
+ member_pagination: (import("../../../..").PagerResponse & import("../../../..").LoadingStates & {
6
+ sort?: import("../../../..").SortParamRequest[];
7
+ }) | undefined;
8
+ };
9
+ type UseMembersReturnType = ReturnType<typeof selector> & {
10
+ is_loading_next_page: boolean;
11
+ has_next_page: boolean;
12
+ loadNextPage: (...options: Parameters<Feed['loadNextPageMembers']>) => Promise<void>;
13
+ };
14
+ export declare function useMembers(feed: Feed): UseMembersReturnType;
15
+ export declare function useMembers(feed?: Feed): UseMembersReturnType | undefined;
16
+ export {};
17
+ //# sourceMappingURL=useMembers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMembers.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useMembers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGxD,QAAA,MAAM,QAAQ,GAAI,+CAIf,SAAS;;;;;;CAIV,CAAC;AAEH,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,GAAG;IACxD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,CACZ,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,KAChD,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAAC;AAC7D,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,oBAAoB,GAAG,SAAS,CAAC"}
@@ -7,7 +7,7 @@ import type { FeedsClientOptions } from '../../../common/types';
7
7
  */
8
8
  export declare const useCreateFeedsClient: ({ apiKey, tokenOrProvider, userData: userDataOrAnonymous, options, }: {
9
9
  apiKey: string;
10
- tokenOrProvider?: TokenOrProvider;
10
+ tokenOrProvider?: TokenOrProvider | "guest";
11
11
  userData: UserRequest | "anonymous";
12
12
  options?: FeedsClientOptions;
13
13
  }) => FeedsClient | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,sEAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;IACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBAsDA,CAAC"}
1
+ {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,sEAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IAC5C,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;IACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBA8DA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Poll.d.ts","sourceRoot":"","sources":["../../../src/common/Poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EAEpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,GAAI,MAAM,oBAAoB,YAClC,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG;IACnE,gBAAgB,EAAE,IAAI,CAAC;IACvB,oBAAoB,EAAE,QAAQ,EAAE,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAS7C,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CA4B9C;IAEK,iBAAiB,GAAI,MAAM,eAAe,CAAC,MAAM,CAAC,UAEvD;IAEF,IAAI,IAAI,IAAI,SAAS,CAEpB;IAEM,iBAAiB,GAAI,OAAO,oBAAoB,UAQrD;IAEK,gBAAgB,GAAI,OAAO,mBAAmB,UAOnD;IAEK,gBAAgB,GAAI,OAAO,uBAAuB,UA6CvD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UAuEzD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UA6CzD;CACH"}
1
+ {"version":3,"file":"Poll.d.ts","sourceRoot":"","sources":["../../../src/common/Poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EAEpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,GAAI,MAAM,oBAAoB,YAClC,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG;IACnE,gBAAgB,EAAE,IAAI,CAAC;IACvB,oBAAoB,EAAE,QAAQ,EAAE,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAS7C,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CA4B9C;IAEK,iBAAiB,GAAI,MAAM,eAAe,CAAC,MAAM,CAAC,UAEvD;IAEF,IAAI,IAAI,IAAI,SAAS,CAEpB;IAEM,iBAAiB,GAAI,OAAO,oBAAoB,UAQrD;IAEK,gBAAgB,GAAI,OAAO,mBAAmB,UAOnD;IAEK,gBAAgB,GAAI,OAAO,uBAAuB,UAgDvD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UAuEzD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UA6CzD;CACH"}
@@ -5,6 +5,8 @@ export declare const updateActivity: ({ currentActivity, newActivtiy, }: {
5
5
  }) => {
6
6
  own_reactions: import("../..").FeedsReactionResponse[];
7
7
  own_bookmarks: import("../..").BookmarkResponse[];
8
+ friend_reactions: import("../..").FeedsReactionResponse[] | undefined;
9
+ friend_reaction_count: number | undefined;
8
10
  bookmark_count: number;
9
11
  comment_count: number;
10
12
  created_at: Date;
@@ -45,7 +47,5 @@ export declare const updateActivity: ({ currentActivity, newActivtiy, }: {
45
47
  notification_context?: import("../..").NotificationContext;
46
48
  parent?: ActivityResponse;
47
49
  poll?: import("../..").PollResponseData;
48
- friend_reactions?: import("../..").FeedsReactionResponse[];
49
- friend_reaction_count?: number;
50
50
  };
51
51
  //# sourceMappingURL=activity-updater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-updater.d.ts","sourceRoot":"","sources":["../../../../src/feed/event-handlers/activity-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,mCAG5B;IACD,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,gBAAgB,CAAC;CAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMA,CAAC"}
1
+ {"version":3,"file":"activity-updater.d.ts","sourceRoot":"","sources":["../../../../src/feed/event-handlers/activity-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,mCAG5B;IACD,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,gBAAgB,CAAC;CAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQA,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { FeedsApi } from '../gen/feeds/FeedsApi';
2
- import type { ActivityAddedEvent, ActivityResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddReactionRequest, DeleteActivityReactionResponse, DeleteCommentReactionResponse, DeleteCommentResponse, FeedResponse, FileUploadRequest, FollowBatchRequest, FollowRequest, GetFollowSuggestionsResponse, GetOrCreateFeedRequest, ImageUploadRequest, OwnBatchRequest, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, UnfollowBatchRequest, UpdateActivityRequest, UpdateActivityResponse, UpdateCommentRequest, UpdateCommentResponse, UpdateFollowRequest, UserRequest } from '../gen/models';
2
+ import type { ActivityAddedEvent, ActivityResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddReactionRequest, CreateGuestResponse, DeleteActivityReactionResponse, DeleteCommentReactionResponse, DeleteCommentResponse, FeedResponse, FileUploadRequest, FollowBatchRequest, FollowRequest, GetFollowSuggestionsResponse, GetOrCreateFeedRequest, ImageUploadRequest, OwnBatchRequest, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, UnfollowBatchRequest, UpdateActivityRequest, UpdateActivityResponse, UpdateCommentRequest, UpdateCommentResponse, UpdateFollowRequest, UserRequest } from '../gen/models';
3
3
  import type { ConnectedUser, FeedsEvent, StreamFile, TokenOrProvider } from '../types';
4
4
  import { StateStore } from '@stream-io/state-store';
5
5
  import type { FeedsClientOptions, StreamResponse } from '../common/types';
@@ -36,6 +36,8 @@ export declare class FeedsClient extends FeedsApi {
36
36
  pollFromState: (id: string) => StreamPoll | undefined;
37
37
  hydratePollCache(activities: ActivityResponse[]): void;
38
38
  connectAnonymous: () => Promise<void>;
39
+ connectGuest: (...args: Parameters<FeedsApi["createGuest"]>) => Promise<StreamResponse<CreateGuestResponse>>;
40
+ createGuest: (...args: Parameters<FeedsApi["createGuest"]>) => Promise<StreamResponse<CreateGuestResponse>>;
39
41
  connectUser: (user: UserRequest, tokenProvider: TokenOrProvider) => Promise<void>;
40
42
  devToken: (userId: string) => string;
41
43
  closePoll: (request: {
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/feeds-client",
3
- "version": "0.3.45",
3
+ "version": "0.3.47",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/es/index.mjs",
@@ -56,11 +56,16 @@
56
56
  },
57
57
  "devDependencies": {
58
58
  "@stream-io/node-sdk": "0.6.0",
59
+ "@testing-library/dom": "^10.4.0",
60
+ "@testing-library/react": "^16.0.0",
59
61
  "@types/react": "~19.1.0",
60
62
  "@vitest/coverage-v8": "3.2.4",
61
63
  "concurrently": "^9.2.1",
62
64
  "dotenv": "^16.4.5",
65
+ "happy-dom": "^15.0.0",
63
66
  "human-id": "^4.1.1",
67
+ "react": "^18.3.1",
68
+ "react-dom": "^18.3.1",
64
69
  "rimraf": "^6.0.1",
65
70
  "typescript": "^5.9.3",
66
71
  "vite": "^7",
@@ -11,3 +11,4 @@ export * from './useIsAggregatedActivityRead';
11
11
  export * from './useIsAggregatedActivitySeen';
12
12
  export * from './useActivityComments';
13
13
  export * from './useOwnFollowings';
14
+ export * from './useMembers';
@@ -0,0 +1,55 @@
1
+ import { useCallback, useMemo } from 'react';
2
+ import { useStateStore } from '@stream-io/state-store/react-bindings';
3
+ import { useFeedContext } from '../../contexts/StreamFeedContext';
4
+ import type { Feed, FeedState } from '../../../../feed';
5
+ import { checkHasAnotherPage } from '../../../../utils';
6
+
7
+ const selector = ({
8
+ member_count,
9
+ members,
10
+ member_pagination,
11
+ }: FeedState) => ({
12
+ member_count,
13
+ members,
14
+ member_pagination,
15
+ });
16
+
17
+ type UseMembersReturnType = ReturnType<typeof selector> & {
18
+ is_loading_next_page: boolean;
19
+ has_next_page: boolean;
20
+ loadNextPage: (
21
+ ...options: Parameters<Feed['loadNextPageMembers']>
22
+ ) => Promise<void>;
23
+ };
24
+
25
+ export function useMembers(feed: Feed): UseMembersReturnType;
26
+ export function useMembers(feed?: Feed): UseMembersReturnType | undefined;
27
+ export function useMembers(feedFromProps?: Feed) {
28
+ const feedFromContext = useFeedContext();
29
+ const feed = feedFromProps ?? feedFromContext;
30
+
31
+ const data = useStateStore(feed?.state, selector);
32
+
33
+ const loadNextPage = useCallback(
34
+ (...options: Parameters<Feed['loadNextPageMembers']>) =>
35
+ feed?.loadNextPageMembers(...options),
36
+ [feed],
37
+ );
38
+
39
+ return useMemo(() => {
40
+ if (!data) {
41
+ return undefined;
42
+ }
43
+
44
+ return {
45
+ ...data,
46
+ is_loading_next_page:
47
+ data.member_pagination?.loading_next_page ?? false,
48
+ has_next_page: checkHasAnotherPage(
49
+ data.members,
50
+ data.member_pagination?.next,
51
+ ),
52
+ loadNextPage,
53
+ };
54
+ }, [data, loadNextPage]);
55
+ }
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
2
2
 
3
3
  import { FeedsClient } from '../../../feeds-client';
4
4
  import type { TokenOrProvider } from '../../../types';
5
- import type { UserRequest } from '../../../gen/models';
5
+ import type { CreateGuestResponse, UserRequest } from '../../../gen/models';
6
6
  import type { FeedsClientOptions } from '../../../common/types';
7
7
 
8
8
  /**
@@ -15,7 +15,7 @@ export const useCreateFeedsClient = ({
15
15
  options,
16
16
  }: {
17
17
  apiKey: string;
18
- tokenOrProvider?: TokenOrProvider;
18
+ tokenOrProvider?: TokenOrProvider | 'guest';
19
19
  userData: UserRequest | 'anonymous';
20
20
  options?: FeedsClientOptions;
21
21
  }) => {
@@ -24,7 +24,7 @@ export const useCreateFeedsClient = ({
24
24
 
25
25
  if (userDataOrAnonymous !== 'anonymous' && !tokenOrProvider) {
26
26
  throw new Error(
27
- 'Token provider can only be omitted when connecting anonymous user',
27
+ 'Token provider can only be omitted when connecting anonymous user. If you want to connect as a guest, provide "guest" instead of a token provider.',
28
28
  );
29
29
  }
30
30
 
@@ -45,16 +45,24 @@ export const useCreateFeedsClient = ({
45
45
  useEffect(() => {
46
46
  const _client = new FeedsClient(apiKey, cachedOptions);
47
47
 
48
- const connectionPromise = cachedUserData
49
- ? _client
50
- .connectUser(cachedUserData, tokenOrProvider!)
51
- .then(() => {
52
- setError(null);
53
- })
54
- .catch((err) => {
55
- setError(err);
56
- })
57
- : _client.connectAnonymous();
48
+ let connectionPromise: Promise<void | CreateGuestResponse>;
49
+ if (!cachedUserData) {
50
+ connectionPromise = _client.connectAnonymous();
51
+ } else if (tokenOrProvider === 'guest') {
52
+ connectionPromise = _client.connectGuest({
53
+ user: cachedUserData,
54
+ });
55
+ } else {
56
+ connectionPromise = _client.connectUser(cachedUserData, tokenOrProvider!);
57
+ }
58
+
59
+ connectionPromise = connectionPromise
60
+ .then(() => {
61
+ setError(null);
62
+ })
63
+ .catch((err) => {
64
+ setError(err);
65
+ });
58
66
 
59
67
  setClient(_client);
60
68
 
@@ -135,14 +135,17 @@ export class StreamPoll {
135
135
  this.client.state.getLatestValue().connected_user?.id;
136
136
  let latestAnswers = [...currentState.latest_answers];
137
137
  let ownAnswer = currentState.own_answer;
138
- const ownVotesByOptionId = currentState.own_votes_by_option_id;
138
+ let ownVotesByOptionId = currentState.own_votes_by_option_id;
139
139
  let maxVotedOptionIds = currentState.max_voted_option_ids;
140
140
 
141
141
  if (isOwnVote) {
142
142
  if (isVoteAnswer(event.poll_vote)) {
143
143
  ownAnswer = event.poll_vote;
144
144
  } else if (event.poll_vote.option_id) {
145
- ownVotesByOptionId[event.poll_vote.option_id] = event.poll_vote;
145
+ ownVotesByOptionId = {
146
+ ...ownVotesByOptionId,
147
+ [event.poll_vote.option_id]: event.poll_vote,
148
+ };
146
149
  }
147
150
  }
148
151
 
@@ -11,5 +11,7 @@ export const updateActivity = ({
11
11
  ...newActivtiy,
12
12
  own_reactions: currentActivity.own_reactions,
13
13
  own_bookmarks: currentActivity.own_bookmarks,
14
+ friend_reactions: currentActivity.friend_reactions,
15
+ friend_reaction_count: currentActivity.friend_reaction_count,
14
16
  };
15
17
  };
@@ -7,6 +7,7 @@ import type {
7
7
  AddCommentRequest,
8
8
  AddCommentResponse,
9
9
  AddReactionRequest,
10
+ CreateGuestResponse,
10
11
  DeleteActivityReactionResponse,
11
12
  DeleteCommentReactionResponse,
12
13
  DeleteCommentResponse,
@@ -351,17 +352,16 @@ export class FeedsClient extends FeedsApi {
351
352
 
352
353
  public hydratePollCache(activities: ActivityResponse[]) {
353
354
  for (const activity of activities) {
354
- if (!activity.poll) {
355
- continue;
356
- }
357
- const pollResponse = activity.poll;
358
- const pollFromCache = this.pollFromState(pollResponse.id);
359
- if (!pollFromCache) {
360
- const poll = new StreamPoll({ client: this, poll: pollResponse });
361
- this.polls_by_id.set(poll.id, poll);
362
- } else {
363
- pollFromCache.reinitializeState(pollResponse);
364
- }
355
+ const polls = [activity.poll, activity.parent?.poll].filter((p) => !!p);
356
+ polls.forEach((pollResponse) => {
357
+ const pollFromCache = this.pollFromState(pollResponse.id);
358
+ if (!pollFromCache) {
359
+ const poll = new StreamPoll({ client: this, poll: pollResponse });
360
+ this.polls_by_id.set(poll.id, poll);
361
+ } else {
362
+ pollFromCache.reinitializeState(pollResponse);
363
+ }
364
+ });
365
365
  }
366
366
  }
367
367
 
@@ -382,6 +382,36 @@ export class FeedsClient extends FeedsApi {
382
382
  return Promise.resolve();
383
383
  };
384
384
 
385
+ connectGuest = async (...args: Parameters<FeedsApi['createGuest']>) => {
386
+ this.checkIfUserIsConnected();
387
+
388
+ const response = await this.createGuest(...args);
389
+ await this.connectUser(response.user, response.access_token);
390
+ return response;
391
+ };
392
+
393
+ createGuest = async (...args: Parameters<FeedsApi['createGuest']>) => {
394
+ let shouldDisconnect = false;
395
+
396
+ let response: StreamResponse<CreateGuestResponse>;
397
+ try {
398
+ if (
399
+ !this.state.getLatestValue().is_anonymous ||
400
+ !this.state.getLatestValue().connected_user
401
+ ) {
402
+ shouldDisconnect = true;
403
+ await this.connectAnonymous();
404
+ }
405
+ response = await super.createGuest(...args);
406
+ } finally {
407
+ if (shouldDisconnect) {
408
+ await this.disconnectUser();
409
+ }
410
+ }
411
+
412
+ return response;
413
+ };
414
+
385
415
  connectUser = async (user: UserRequest, tokenProvider: TokenOrProvider) => {
386
416
  this.checkIfUserIsConnected();
387
417