@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
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require$$0 = require("react");
4
4
  require("@stream-io/state-store");
5
- const feedsClient = require("../feeds-client-DLiLkrA0.js");
5
+ const feedsClient = require("../feeds-client-CwioZBvA.js");
6
6
  require("axios");
7
7
  var shim = { exports: {} };
8
8
  var useSyncExternalStoreShim_production = {};
@@ -403,7 +403,6 @@ const useCreateFeedsClient = ({
403
403
  const _client = new feedsClient.FeedsClient(apiKey, cachedOptions);
404
404
  const connectionPromise = _client.connectUser(cachedUserData, tokenOrProvider).then(() => {
405
405
  setError(null);
406
- console.log("Successfully connected user: ", cachedUserData.id);
407
406
  }).catch((err) => {
408
407
  setError(err);
409
408
  });
@@ -415,10 +414,6 @@ const useCreateFeedsClient = ({
415
414
  return _client.disconnectUser();
416
415
  }).catch((err) => {
417
416
  setError(err);
418
- }).then(() => {
419
- console.log(
420
- `Connection for user "${cachedUserData.id}" has been closed`
421
- );
422
417
  });
423
418
  };
424
419
  }, [apiKey, cachedUserData, cachedOptions, tokenOrProvider]);
@@ -521,14 +516,17 @@ const useOwnCapabilities = (feedFromProps) => {
521
516
  const feedFromContext = useFeedContext();
522
517
  const feed = feedFromProps ?? feedFromContext;
523
518
  const fid = feed?.feed;
524
- const selector2 = require$$0.useCallback((currentState) => {
525
- if (!fid) {
526
- return { feedOwnCapabilities: stableEmptyArray };
527
- }
528
- return {
529
- feedOwnCapabilities: currentState.own_capabilities_by_fid[fid] ?? stableEmptyArray
530
- };
531
- }, [fid]);
519
+ const selector2 = require$$0.useCallback(
520
+ (currentState) => {
521
+ if (!fid) {
522
+ return { feedOwnCapabilities: stableEmptyArray };
523
+ }
524
+ return {
525
+ feedOwnCapabilities: currentState.own_capabilities_by_fid[fid] ?? stableEmptyArray
526
+ };
527
+ },
528
+ [fid]
529
+ );
532
530
  const { feedOwnCapabilities = stableEmptyArray } = useStateStore(client?.state, selector2) ?? {};
533
531
  return feedOwnCapabilities;
534
532
  };
@@ -685,6 +683,69 @@ const useIsAggregatedActivitySeen = ({
685
683
  [lastSeenAt, aggregatedActivity.updated_at, seenActivities, group]
686
684
  );
687
685
  };
686
+ const canLoadComments = (feedOrActivity) => {
687
+ return "loadNextPageCommentReplies" in feedOrActivity && "loadNextPageActivityComments" in feedOrActivity;
688
+ };
689
+ function useActivityComments({
690
+ feed: feedFromProps,
691
+ parentComment,
692
+ activity
693
+ }) {
694
+ const feedFromContext = useFeedContext();
695
+ const feed = feedFromProps ?? feedFromContext;
696
+ const feedOrActivity = feed ?? activity;
697
+ if (!feedOrActivity) {
698
+ throw new Error("Feed or activity is required");
699
+ }
700
+ if (!canLoadComments(feedOrActivity)) {
701
+ throw new Error("Feed or activity does not support loading comments");
702
+ }
703
+ if (!(activity || parentComment)) {
704
+ throw new Error("Activity or parent comment is required");
705
+ }
706
+ const entityId = parentComment?.id ?? activity?.id ?? "";
707
+ const selector2 = require$$0.useCallback(
708
+ (state) => ({
709
+ comments: state.comments_by_entity_id?.[entityId]?.comments,
710
+ comments_pagination: state.comments_by_entity_id?.[entityId]?.pagination
711
+ }),
712
+ [entityId]
713
+ );
714
+ const data = useStateStore(
715
+ feedOrActivity.state,
716
+ selector2
717
+ );
718
+ const loadNextPage = require$$0.useCallback(
719
+ (request) => {
720
+ if (parentComment) {
721
+ return feedOrActivity.loadNextPageCommentReplies(
722
+ parentComment,
723
+ request
724
+ );
725
+ } else {
726
+ if (activity && canLoadComments(activity)) {
727
+ return activity.loadNextPageActivityComments(request);
728
+ } else if (feed) {
729
+ return feed.loadNextPageActivityComments(activity?.id ?? "", request);
730
+ } else {
731
+ throw new Error("Activity or feed is required");
732
+ }
733
+ }
734
+ },
735
+ [feedOrActivity, feed, parentComment, activity]
736
+ );
737
+ return require$$0.useMemo(() => {
738
+ return {
739
+ ...data,
740
+ has_next_page: feedsClient.checkHasAnotherPage(
741
+ data.comments,
742
+ data.comments_pagination?.next
743
+ ),
744
+ is_loading_next_page: data?.comments_pagination?.loading_next_page ?? false,
745
+ loadNextPage
746
+ };
747
+ }, [data, loadNextPage]);
748
+ }
688
749
  const StreamSearchResultsContext = require$$0.createContext(void 0);
689
750
  const useSearchResultsContext = () => {
690
751
  return require$$0.useContext(StreamSearchResultsContext);
@@ -1267,6 +1328,7 @@ exports.StreamSearch = StreamSearch;
1267
1328
  exports.StreamSearchContext = StreamSearchContext;
1268
1329
  exports.StreamSearchResults = StreamSearchResults;
1269
1330
  exports.StreamSearchResultsContext = StreamSearchResultsContext;
1331
+ exports.useActivityComments = useActivityComments;
1270
1332
  exports.useAggregatedActivities = useAggregatedActivities;
1271
1333
  exports.useClientConnectedUser = useClientConnectedUser;
1272
1334
  exports.useComments = useComments;