@stream-io/feeds-client 0.2.12 → 0.2.13

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 (26) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/react-bindings.js +22 -14
  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 +22 -14
  7. package/dist/es/react-bindings.mjs.map +1 -1
  8. package/dist/{index-o7AeSkxa.js → index-RzB4c4g6.js} +81 -9
  9. package/dist/index-RzB4c4g6.js.map +1 -0
  10. package/dist/{index-D7QtnkUs.mjs → index-gvcJhGPH.mjs} +81 -9
  11. package/dist/index-gvcJhGPH.mjs.map +1 -0
  12. package/dist/tsconfig.tsbuildinfo +1 -1
  13. package/dist/types/bindings/react/hooks/feed-state-hooks/useAggregatedActivities.d.ts +9 -4
  14. package/dist/types/bindings/react/hooks/feed-state-hooks/useAggregatedActivities.d.ts.map +1 -1
  15. package/dist/types/bindings/react/hooks/feed-state-hooks/useIsAggregatedActivityRead.d.ts.map +1 -1
  16. package/dist/types/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts +8 -1
  17. package/dist/types/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts.map +1 -1
  18. package/dist/types/feed/feed.d.ts.map +1 -1
  19. package/package.json +1 -1
  20. package/src/bindings/react/hooks/feed-state-hooks/useAggregatedActivities.ts +28 -4
  21. package/src/bindings/react/hooks/feed-state-hooks/useIsAggregatedActivityRead.ts +4 -5
  22. package/src/feed/event-handlers/notification-feed/handle-notification-feed-updated.test.ts +309 -11
  23. package/src/feed/event-handlers/notification-feed/handle-notification-feed-updated.ts +89 -6
  24. package/src/feed/feed.ts +21 -1
  25. package/dist/index-D7QtnkUs.mjs.map +0 -1
  26. package/dist/index-o7AeSkxa.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.2.13](https://github.com/GetStream/stream-feeds-js/compare/@stream-io/feeds-client-0.2.12...@stream-io/feeds-client-0.2.13) (2025-09-30)
6
+
7
+
8
+ ### Features
9
+
10
+ * allow pagination for feeds with aggregated activities ([#119](https://github.com/GetStream/stream-feeds-js/issues/119)) ([42a5522](https://github.com/GetStream/stream-feeds-js/commit/42a55224c7285d7758656ff3aa5b3a539dc85dfe))
11
+
5
12
  ## [0.2.12](https://github.com/GetStream/stream-feeds-js/compare/@stream-io/feeds-client-0.2.11...@stream-io/feeds-client-0.2.12) (2025-09-24)
6
13
 
7
14
 
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const stateStore = require("@stream-io/state-store");
4
- const index = require("../index-o7AeSkxa.js");
4
+ const index = require("../index-RzB4c4g6.js");
5
5
  const loggerInternal = require("@stream-io/logger");
6
6
  class SearchController {
7
7
  constructor({ config, sources } = {}) {
@@ -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 index = require("../index-o7AeSkxa.js");
5
+ const index = require("../index-RzB4c4g6.js");
6
6
  require("@stream-io/logger");
7
7
  require("axios");
8
8
  var shim = { exports: {} };
@@ -665,13 +665,29 @@ function useNotificationStatus(feedFromProps) {
665
665
  const feed = feedFromProps ?? feedFromContext;
666
666
  return useStateStore(feed?.state, selector$4);
667
667
  }
668
- const selector$3 = ({ aggregated_activities }) => ({
668
+ const selector$3 = ({
669
+ is_loading_activities,
670
+ next,
671
+ aggregated_activities = []
672
+ }) => ({
673
+ is_loading: is_loading_activities,
674
+ has_next_page: typeof next !== "undefined",
669
675
  aggregated_activities
670
676
  });
671
677
  function useAggregatedActivities(feedFromProps) {
672
678
  const feedFromContext = useFeedContext();
673
679
  const feed = feedFromProps ?? feedFromContext;
674
- return useStateStore(feed?.state, selector$3);
680
+ const data = useStateStore(feed?.state, selector$3);
681
+ const loadNextPage = useStableCallback(async () => {
682
+ if (!feed || !data?.has_next_page || data?.is_loading) {
683
+ return;
684
+ }
685
+ await feed.getNextPage();
686
+ });
687
+ return require$$0.useMemo(
688
+ () => data ? { ...data, loadNextPage } : void 0,
689
+ [data, loadNextPage]
690
+ );
675
691
  }
676
692
  const useIsAggregatedActivityRead = ({
677
693
  feed: feedFromProps,
@@ -679,19 +695,11 @@ const useIsAggregatedActivityRead = ({
679
695
  }) => {
680
696
  const feedFromContext = useFeedContext();
681
697
  const feed = feedFromProps ?? feedFromContext;
682
- const {
683
- read_activities: readActivities
684
- /* last_read_at: lastReadAt */
685
- } = useNotificationStatus(feed) ?? {};
698
+ const { read_activities: readActivities, last_read_at: lastReadAt } = useNotificationStatus(feed) ?? {};
686
699
  const group = aggregatedActivity.group;
687
700
  return require$$0.useMemo(
688
- () => (
689
- // FIXME: This part of the condition does not work as marking individual groups as read also updates the last_read_at. Should be uncommented once it's fixed on the backend.
690
- // (lastReadAt &&
691
- // aggregatedActivity.updated_at.getTime() <= lastReadAt.getTime()) ||
692
- (readActivities ?? []).includes(group)
693
- ),
694
- [readActivities, group]
701
+ () => lastReadAt && aggregatedActivity.updated_at.getTime() <= lastReadAt.getTime() || (readActivities ?? []).includes(group),
702
+ [lastReadAt, aggregatedActivity.updated_at, readActivities, group]
695
703
  );
696
704
  };
697
705
  const useIsAggregatedActivitySeen = ({