@stream-io/feeds-client 0.2.21 → 0.3.1
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 +50 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +1 -57
- package/dist/cjs/react-bindings.js.map +1 -1
- package/dist/es/index.mjs +2 -2
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/react-bindings.mjs +1 -57
- package/dist/es/react-bindings.mjs.map +1 -1
- package/dist/{feeds-client--EbdwYrY.js → feeds-client-CttWroOS.js} +89 -8
- package/dist/feeds-client-CttWroOS.js.map +1 -0
- package/dist/{feeds-client-5nGcdeuG.mjs → feeds-client-DJG_rRVO.mjs} +89 -8
- package/dist/feeds-client-DJG_rRVO.mjs.map +1 -0
- package/dist/types/bindings/react/index.d.ts +0 -1
- package/dist/types/bindings/react/index.d.ts.map +1 -1
- package/dist/types/common/real-time/StableWSConnection.d.ts +3 -3
- package/dist/types/common/real-time/StableWSConnection.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-feedback.d.ts +4 -0
- package/dist/types/feed/event-handlers/activity/handle-activity-feedback.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/activity-updater.d.ts +2 -1
- package/dist/types/feed/event-handlers/activity-updater.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/is-activity-pin.d.ts +3 -0
- package/dist/types/feed/event-handlers/is-activity-pin.d.ts.map +1 -0
- package/dist/types/feed/feed.d.ts +2 -2
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +2 -2
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/dist/types/gen/feeds/FeedsApi.d.ts.map +1 -1
- package/dist/types/gen/model-decoders/event-decoder-mapping.d.ts.map +1 -1
- package/dist/types/gen/models/index.d.ts +53 -5
- package/dist/types/gen/models/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bindings/react/index.ts +0 -1
- package/src/feed/event-handlers/activity/handle-activity-feedback.ts +78 -0
- package/src/feed/event-handlers/is-activity-pin.ts +7 -0
- package/src/feed/feed.ts +6 -1
- package/src/feeds-client/feeds-client.ts +7 -0
- package/src/gen/feeds/FeedsApi.ts +0 -3
- package/src/gen/model-decoders/decoders.ts +27 -1
- package/src/gen/model-decoders/event-decoder-mapping.ts +3 -0
- package/src/gen/models/index.ts +92 -8
- package/dist/feeds-client--EbdwYrY.js.map +0 -1
- package/dist/feeds-client-5nGcdeuG.mjs.map +0 -1
- package/dist/types/bindings/react/hooks/util/index.d.ts +0 -3
- package/dist/types/bindings/react/hooks/util/index.d.ts.map +0 -1
- package/dist/types/bindings/react/hooks/util/useBookmarkActions.d.ts +0 -14
- package/dist/types/bindings/react/hooks/util/useBookmarkActions.d.ts.map +0 -1
- package/dist/types/bindings/react/hooks/util/useReactionActions.d.ts +0 -18
- package/dist/types/bindings/react/hooks/util/useReactionActions.d.ts.map +0 -1
- package/src/bindings/react/hooks/util/index.ts +0 -2
- package/src/bindings/react/hooks/util/useBookmarkActions.ts +0 -40
- package/src/bindings/react/hooks/util/useReactionActions.ts +0 -57
|
@@ -61,6 +61,13 @@ decoders.ActivityDeletedEvent = (input) => {
|
|
|
61
61
|
};
|
|
62
62
|
return decode(typeMappings, input);
|
|
63
63
|
};
|
|
64
|
+
decoders.ActivityFeedbackEvent = (input) => {
|
|
65
|
+
const typeMappings = {
|
|
66
|
+
created_at: { type: "DatetimeType", isSingle: true },
|
|
67
|
+
received_at: { type: "DatetimeType", isSingle: true }
|
|
68
|
+
};
|
|
69
|
+
return decode(typeMappings, input);
|
|
70
|
+
};
|
|
64
71
|
decoders.ActivityMarkEvent = (input) => {
|
|
65
72
|
const typeMappings = {
|
|
66
73
|
created_at: { type: "DatetimeType", isSingle: true },
|
|
@@ -655,6 +662,17 @@ decoders.FeedResponse = (input) => {
|
|
|
655
662
|
};
|
|
656
663
|
return decode(typeMappings, input);
|
|
657
664
|
};
|
|
665
|
+
decoders.FeedSuggestionResponse = (input) => {
|
|
666
|
+
const typeMappings = {
|
|
667
|
+
created_at: { type: "DatetimeType", isSingle: true },
|
|
668
|
+
updated_at: { type: "DatetimeType", isSingle: true },
|
|
669
|
+
created_by: { type: "UserResponse", isSingle: true },
|
|
670
|
+
deleted_at: { type: "DatetimeType", isSingle: true },
|
|
671
|
+
own_follows: { type: "FollowResponse", isSingle: false },
|
|
672
|
+
own_membership: { type: "FeedMemberResponse", isSingle: true }
|
|
673
|
+
};
|
|
674
|
+
return decode(typeMappings, input);
|
|
675
|
+
};
|
|
658
676
|
decoders.FeedUpdatedEvent = (input) => {
|
|
659
677
|
const typeMappings = {
|
|
660
678
|
created_at: { type: "DatetimeType", isSingle: true },
|
|
@@ -765,7 +783,7 @@ decoders.GetConfigResponse = (input) => {
|
|
|
765
783
|
};
|
|
766
784
|
decoders.GetFollowSuggestionsResponse = (input) => {
|
|
767
785
|
const typeMappings = {
|
|
768
|
-
suggestions: { type: "
|
|
786
|
+
suggestions: { type: "FeedSuggestionResponse", isSingle: false }
|
|
769
787
|
};
|
|
770
788
|
return decode(typeMappings, input);
|
|
771
789
|
};
|
|
@@ -1706,9 +1724,6 @@ class FeedsApi {
|
|
|
1706
1724
|
};
|
|
1707
1725
|
const body = {
|
|
1708
1726
|
hide: request?.hide,
|
|
1709
|
-
mute_user: request?.mute_user,
|
|
1710
|
-
reason: request?.reason,
|
|
1711
|
-
report: request?.report,
|
|
1712
1727
|
show_less: request?.show_less,
|
|
1713
1728
|
show_more: request?.show_more
|
|
1714
1729
|
};
|
|
@@ -3730,7 +3745,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
|
|
|
3730
3745
|
};
|
|
3731
3746
|
return result;
|
|
3732
3747
|
};
|
|
3733
|
-
const version = "0.
|
|
3748
|
+
const version = "0.3.1";
|
|
3734
3749
|
class ApiClient {
|
|
3735
3750
|
constructor(apiKey, tokenManager, connectionIdManager, options) {
|
|
3736
3751
|
this.apiKey = apiKey;
|
|
@@ -3904,6 +3919,7 @@ const eventDecoderMapping = {
|
|
|
3904
3919
|
"app.updated": (data) => decoders.AppUpdatedEvent(data),
|
|
3905
3920
|
"feeds.activity.added": (data) => decoders.ActivityAddedEvent(data),
|
|
3906
3921
|
"feeds.activity.deleted": (data) => decoders.ActivityDeletedEvent(data),
|
|
3922
|
+
"feeds.activity.feedback": (data) => decoders.ActivityFeedbackEvent(data),
|
|
3907
3923
|
"feeds.activity.marked": (data) => decoders.ActivityMarkEvent(data),
|
|
3908
3924
|
"feeds.activity.pinned": (data) => decoders.ActivityPinnedEvent(data),
|
|
3909
3925
|
"feeds.activity.reaction.added": (data) => decoders.ActivityReactionAddedEvent(data),
|
|
@@ -5961,6 +5977,61 @@ function handleWatchStarted() {
|
|
|
5961
5977
|
function handleWatchStopped() {
|
|
5962
5978
|
this.state.partialNext({ watch: false });
|
|
5963
5979
|
}
|
|
5980
|
+
const isPin = (entity) => {
|
|
5981
|
+
return "activity" in entity;
|
|
5982
|
+
};
|
|
5983
|
+
const updateActivityFromFeedback = (feedback, activities) => {
|
|
5984
|
+
if (!activities) {
|
|
5985
|
+
return {
|
|
5986
|
+
changed: false,
|
|
5987
|
+
entities: []
|
|
5988
|
+
};
|
|
5989
|
+
}
|
|
5990
|
+
return updateEntityInArray({
|
|
5991
|
+
entities: activities,
|
|
5992
|
+
matcher: (e) => isPin(e) ? e.activity.id === feedback.activity_id : e.id === feedback.activity_id,
|
|
5993
|
+
updater: (e) => {
|
|
5994
|
+
if (isPin(e)) {
|
|
5995
|
+
return {
|
|
5996
|
+
...e,
|
|
5997
|
+
activity: {
|
|
5998
|
+
...e.activity,
|
|
5999
|
+
hidden: feedback.value === "true"
|
|
6000
|
+
}
|
|
6001
|
+
};
|
|
6002
|
+
} else {
|
|
6003
|
+
return {
|
|
6004
|
+
...e,
|
|
6005
|
+
hidden: feedback.value === "true"
|
|
6006
|
+
};
|
|
6007
|
+
}
|
|
6008
|
+
}
|
|
6009
|
+
});
|
|
6010
|
+
};
|
|
6011
|
+
function handleActivityFeedback(event) {
|
|
6012
|
+
const {
|
|
6013
|
+
activities: currentActivities,
|
|
6014
|
+
pinned_activities: currentPinnedActivities
|
|
6015
|
+
} = this.currentState;
|
|
6016
|
+
const { connected_user: connectedUser } = this.client.state.getLatestValue();
|
|
6017
|
+
const eventBelongsToCurrentUser = event.activity_feedback.user.id === connectedUser?.id;
|
|
6018
|
+
if (!eventBelongsToCurrentUser || event.activity_feedback.action !== "hide") {
|
|
6019
|
+
return;
|
|
6020
|
+
}
|
|
6021
|
+
const [result1, result2] = [
|
|
6022
|
+
updateActivityFromFeedback(event.activity_feedback, currentActivities),
|
|
6023
|
+
updateActivityFromFeedback(
|
|
6024
|
+
event.activity_feedback,
|
|
6025
|
+
currentPinnedActivities
|
|
6026
|
+
)
|
|
6027
|
+
];
|
|
6028
|
+
if (result1.changed || result2.changed) {
|
|
6029
|
+
this.state.partialNext({
|
|
6030
|
+
activities: result1.entities,
|
|
6031
|
+
pinned_activities: result2.entities
|
|
6032
|
+
});
|
|
6033
|
+
}
|
|
6034
|
+
}
|
|
5964
6035
|
const _Feed = class _Feed extends FeedApi {
|
|
5965
6036
|
constructor(client, groupId, id, data, watch = false, addNewActivitiesTo = "start") {
|
|
5966
6037
|
super(client, groupId, id);
|
|
@@ -6017,7 +6088,8 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
6017
6088
|
"user.deactivated": _Feed.noop,
|
|
6018
6089
|
"user.muted": _Feed.noop,
|
|
6019
6090
|
"user.reactivated": _Feed.noop,
|
|
6020
|
-
"user.updated": _Feed.noop
|
|
6091
|
+
"user.updated": _Feed.noop,
|
|
6092
|
+
"feeds.activity.feedback": handleActivityFeedback.bind(this)
|
|
6021
6093
|
};
|
|
6022
6094
|
this.eventDispatcher = new EventDispatcher();
|
|
6023
6095
|
this.on = this.eventDispatcher.on;
|
|
@@ -6080,7 +6152,10 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
6080
6152
|
currentActivityFeeds.push(activity.current_feed);
|
|
6081
6153
|
}
|
|
6082
6154
|
}
|
|
6083
|
-
this.client.hydrateCapabilitiesCache([
|
|
6155
|
+
this.client.hydrateCapabilitiesCache([
|
|
6156
|
+
response.feed,
|
|
6157
|
+
...currentActivityFeeds
|
|
6158
|
+
]);
|
|
6084
6159
|
if (request?.next) {
|
|
6085
6160
|
const { activities: currentActivities = [] } = this.currentState;
|
|
6086
6161
|
const result = addActivitiesToState.bind(this)(
|
|
@@ -7028,6 +7103,12 @@ class FeedsClient extends FeedsApi {
|
|
|
7028
7103
|
feeds.forEach((f) => f.handleWSEvent(event));
|
|
7029
7104
|
break;
|
|
7030
7105
|
}
|
|
7106
|
+
case "feeds.activity.feedback": {
|
|
7107
|
+
const activityId = event.activity_feedback.activity_id;
|
|
7108
|
+
const feeds = this.findActiveFeedByActivityId(activityId);
|
|
7109
|
+
feeds.forEach((f) => f.handleWSEvent(event));
|
|
7110
|
+
break;
|
|
7111
|
+
}
|
|
7031
7112
|
case "user.updated": {
|
|
7032
7113
|
handleUserUpdated.call(this, event);
|
|
7033
7114
|
break;
|
|
@@ -7193,4 +7274,4 @@ export {
|
|
|
7193
7274
|
shouldUpdateState as s,
|
|
7194
7275
|
uniqueArrayMerge as u
|
|
7195
7276
|
};
|
|
7196
|
-
//# sourceMappingURL=feeds-client-
|
|
7277
|
+
//# sourceMappingURL=feeds-client-DJG_rRVO.mjs.map
|