@stream-io/feeds-client 0.3.0 → 0.3.2
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 +49 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +1 -1
- package/dist/es/index.mjs +3 -2
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/react-bindings.mjs +1 -1
- package/dist/{feeds-client-DuLOUu6_.mjs → feeds-client-ZdWyhS1v.mjs} +113 -10
- package/dist/feeds-client-ZdWyhS1v.mjs.map +1 -0
- package/dist/{feeds-client-DmA8dntK.js → feeds-client-jZwPzici.js} +113 -10
- package/dist/feeds-client-jZwPzici.js.map +1 -0
- 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 +4 -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 +117 -12
- package/dist/types/gen/models/index.d.ts.map +1 -1
- package/dist/types/gen/moderation/ModerationApi.d.ts.map +1 -1
- package/package.json +1 -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 +2 -3
- package/src/gen/model-decoders/decoders.ts +58 -3
- package/src/gen/model-decoders/event-decoder-mapping.ts +3 -0
- package/src/gen/models/index.ts +210 -17
- package/src/gen/moderation/ModerationApi.ts +3 -0
- package/dist/feeds-client-DmA8dntK.js.map +0 -1
- package/dist/feeds-client-DuLOUu6_.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import require$$0, { useCallback, useMemo, useState, useEffect, createContext, useContext, useRef } from "react";
|
|
2
2
|
import "@stream-io/state-store";
|
|
3
|
-
import { F as FeedsClient, g as isCommentResponse, c as checkHasAnotherPage } from "../feeds-client-
|
|
3
|
+
import { F as FeedsClient, g as isCommentResponse, c as checkHasAnotherPage } from "../feeds-client-ZdWyhS1v.mjs";
|
|
4
4
|
import "@stream-io/logger";
|
|
5
5
|
import "axios";
|
|
6
6
|
var shim = { exports: {} };
|
|
@@ -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 },
|
|
@@ -371,7 +378,7 @@ decoders.ChannelMember = (input) => {
|
|
|
371
378
|
invite_accepted_at: { type: "DatetimeType", isSingle: true },
|
|
372
379
|
invite_rejected_at: { type: "DatetimeType", isSingle: true },
|
|
373
380
|
pinned_at: { type: "DatetimeType", isSingle: true },
|
|
374
|
-
user: { type: "
|
|
381
|
+
user: { type: "User", isSingle: true }
|
|
375
382
|
};
|
|
376
383
|
return decode(typeMappings, input);
|
|
377
384
|
};
|
|
@@ -383,6 +390,20 @@ decoders.ChannelMemberLookup = (input) => {
|
|
|
383
390
|
};
|
|
384
391
|
return decode(typeMappings, input);
|
|
385
392
|
};
|
|
393
|
+
decoders.ChannelMemberResponse = (input) => {
|
|
394
|
+
const typeMappings = {
|
|
395
|
+
created_at: { type: "DatetimeType", isSingle: true },
|
|
396
|
+
updated_at: { type: "DatetimeType", isSingle: true },
|
|
397
|
+
archived_at: { type: "DatetimeType", isSingle: true },
|
|
398
|
+
ban_expires: { type: "DatetimeType", isSingle: true },
|
|
399
|
+
deleted_at: { type: "DatetimeType", isSingle: true },
|
|
400
|
+
invite_accepted_at: { type: "DatetimeType", isSingle: true },
|
|
401
|
+
invite_rejected_at: { type: "DatetimeType", isSingle: true },
|
|
402
|
+
pinned_at: { type: "DatetimeType", isSingle: true },
|
|
403
|
+
user: { type: "UserResponse", isSingle: true }
|
|
404
|
+
};
|
|
405
|
+
return decode(typeMappings, input);
|
|
406
|
+
};
|
|
386
407
|
decoders.ChannelMute = (input) => {
|
|
387
408
|
const typeMappings = {
|
|
388
409
|
created_at: { type: "DatetimeType", isSingle: true },
|
|
@@ -402,7 +423,7 @@ decoders.ChannelResponse = (input) => {
|
|
|
402
423
|
last_message_at: { type: "DatetimeType", isSingle: true },
|
|
403
424
|
mute_expires_at: { type: "DatetimeType", isSingle: true },
|
|
404
425
|
truncated_at: { type: "DatetimeType", isSingle: true },
|
|
405
|
-
members: { type: "
|
|
426
|
+
members: { type: "ChannelMemberResponse", isSingle: false },
|
|
406
427
|
config: { type: "ChannelConfigWithInfo", isSingle: true },
|
|
407
428
|
created_by: { type: "UserResponse", isSingle: true },
|
|
408
429
|
truncated_by: { type: "UserResponse", isSingle: true }
|
|
@@ -655,6 +676,17 @@ decoders.FeedResponse = (input) => {
|
|
|
655
676
|
};
|
|
656
677
|
return decode(typeMappings, input);
|
|
657
678
|
};
|
|
679
|
+
decoders.FeedSuggestionResponse = (input) => {
|
|
680
|
+
const typeMappings = {
|
|
681
|
+
created_at: { type: "DatetimeType", isSingle: true },
|
|
682
|
+
updated_at: { type: "DatetimeType", isSingle: true },
|
|
683
|
+
created_by: { type: "UserResponse", isSingle: true },
|
|
684
|
+
deleted_at: { type: "DatetimeType", isSingle: true },
|
|
685
|
+
own_follows: { type: "FollowResponse", isSingle: false },
|
|
686
|
+
own_membership: { type: "FeedMemberResponse", isSingle: true }
|
|
687
|
+
};
|
|
688
|
+
return decode(typeMappings, input);
|
|
689
|
+
};
|
|
658
690
|
decoders.FeedUpdatedEvent = (input) => {
|
|
659
691
|
const typeMappings = {
|
|
660
692
|
created_at: { type: "DatetimeType", isSingle: true },
|
|
@@ -765,7 +797,7 @@ decoders.GetConfigResponse = (input) => {
|
|
|
765
797
|
};
|
|
766
798
|
decoders.GetFollowSuggestionsResponse = (input) => {
|
|
767
799
|
const typeMappings = {
|
|
768
|
-
suggestions: { type: "
|
|
800
|
+
suggestions: { type: "FeedSuggestionResponse", isSingle: false }
|
|
769
801
|
};
|
|
770
802
|
return decode(typeMappings, input);
|
|
771
803
|
};
|
|
@@ -859,6 +891,7 @@ decoders.MessageResponse = (input) => {
|
|
|
859
891
|
pinned_at: { type: "DatetimeType", isSingle: true },
|
|
860
892
|
thread_participants: { type: "UserResponse", isSingle: false },
|
|
861
893
|
draft: { type: "DraftResponse", isSingle: true },
|
|
894
|
+
member: { type: "ChannelMemberResponse", isSingle: true },
|
|
862
895
|
pinned_by: { type: "UserResponse", isSingle: true },
|
|
863
896
|
poll: { type: "PollResponseData", isSingle: true },
|
|
864
897
|
quoted_message: { type: "MessageResponse", isSingle: true },
|
|
@@ -1198,6 +1231,8 @@ decoders.ReviewQueueItemResponse = (input) => {
|
|
|
1198
1231
|
call: { type: "CallResponse", isSingle: true },
|
|
1199
1232
|
entity_creator: { type: "EntityCreatorResponse", isSingle: true },
|
|
1200
1233
|
feeds_v2_reaction: { type: "Reaction", isSingle: true },
|
|
1234
|
+
feeds_v3_activity: { type: "ActivityResponse", isSingle: true },
|
|
1235
|
+
feeds_v3_comment: { type: "CommentResponse", isSingle: true },
|
|
1201
1236
|
message: { type: "MessageResponse", isSingle: true },
|
|
1202
1237
|
reaction: { type: "Reaction", isSingle: true }
|
|
1203
1238
|
};
|
|
@@ -1571,6 +1606,7 @@ class FeedsApi {
|
|
|
1571
1606
|
id: request?.id,
|
|
1572
1607
|
parent_id: request?.parent_id,
|
|
1573
1608
|
poll_id: request?.poll_id,
|
|
1609
|
+
restrict_replies: request?.restrict_replies,
|
|
1574
1610
|
text: request?.text,
|
|
1575
1611
|
visibility: request?.visibility,
|
|
1576
1612
|
visibility_tag: request?.visibility_tag,
|
|
@@ -1706,9 +1742,6 @@ class FeedsApi {
|
|
|
1706
1742
|
};
|
|
1707
1743
|
const body = {
|
|
1708
1744
|
hide: request?.hide,
|
|
1709
|
-
mute_user: request?.mute_user,
|
|
1710
|
-
reason: request?.reason,
|
|
1711
|
-
report: request?.report,
|
|
1712
1745
|
show_less: request?.show_less,
|
|
1713
1746
|
show_more: request?.show_more
|
|
1714
1747
|
};
|
|
@@ -1863,6 +1896,7 @@ class FeedsApi {
|
|
|
1863
1896
|
const body = {
|
|
1864
1897
|
expires_at: request?.expires_at,
|
|
1865
1898
|
poll_id: request?.poll_id,
|
|
1899
|
+
restrict_replies: request?.restrict_replies,
|
|
1866
1900
|
text: request?.text,
|
|
1867
1901
|
visibility: request?.visibility,
|
|
1868
1902
|
attachments: request?.attachments,
|
|
@@ -3730,7 +3764,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
|
|
|
3730
3764
|
};
|
|
3731
3765
|
return result;
|
|
3732
3766
|
};
|
|
3733
|
-
const version = "0.3.
|
|
3767
|
+
const version = "0.3.2";
|
|
3734
3768
|
class ApiClient {
|
|
3735
3769
|
constructor(apiKey, tokenManager, connectionIdManager, options) {
|
|
3736
3770
|
this.apiKey = apiKey;
|
|
@@ -3904,6 +3938,7 @@ const eventDecoderMapping = {
|
|
|
3904
3938
|
"app.updated": (data) => decoders.AppUpdatedEvent(data),
|
|
3905
3939
|
"feeds.activity.added": (data) => decoders.ActivityAddedEvent(data),
|
|
3906
3940
|
"feeds.activity.deleted": (data) => decoders.ActivityDeletedEvent(data),
|
|
3941
|
+
"feeds.activity.feedback": (data) => decoders.ActivityFeedbackEvent(data),
|
|
3907
3942
|
"feeds.activity.marked": (data) => decoders.ActivityMarkEvent(data),
|
|
3908
3943
|
"feeds.activity.pinned": (data) => decoders.ActivityPinnedEvent(data),
|
|
3909
3944
|
"feeds.activity.reaction.added": (data) => decoders.ActivityReactionAddedEvent(data),
|
|
@@ -4122,12 +4157,15 @@ class ModerationApi {
|
|
|
4122
4157
|
action_type: request?.action_type,
|
|
4123
4158
|
item_id: request?.item_id,
|
|
4124
4159
|
ban: request?.ban,
|
|
4160
|
+
block: request?.block,
|
|
4125
4161
|
custom: request?.custom,
|
|
4126
4162
|
delete_activity: request?.delete_activity,
|
|
4163
|
+
delete_comment: request?.delete_comment,
|
|
4127
4164
|
delete_message: request?.delete_message,
|
|
4128
4165
|
delete_reaction: request?.delete_reaction,
|
|
4129
4166
|
delete_user: request?.delete_user,
|
|
4130
4167
|
mark_reviewed: request?.mark_reviewed,
|
|
4168
|
+
shadow_block: request?.shadow_block,
|
|
4131
4169
|
unban: request?.unban
|
|
4132
4170
|
};
|
|
4133
4171
|
const response = await this.apiClient.sendRequest(
|
|
@@ -5961,6 +5999,61 @@ function handleWatchStarted() {
|
|
|
5961
5999
|
function handleWatchStopped() {
|
|
5962
6000
|
this.state.partialNext({ watch: false });
|
|
5963
6001
|
}
|
|
6002
|
+
const isPin = (entity) => {
|
|
6003
|
+
return "activity" in entity;
|
|
6004
|
+
};
|
|
6005
|
+
const updateActivityFromFeedback = (feedback, activities) => {
|
|
6006
|
+
if (!activities) {
|
|
6007
|
+
return {
|
|
6008
|
+
changed: false,
|
|
6009
|
+
entities: []
|
|
6010
|
+
};
|
|
6011
|
+
}
|
|
6012
|
+
return updateEntityInArray({
|
|
6013
|
+
entities: activities,
|
|
6014
|
+
matcher: (e) => isPin(e) ? e.activity.id === feedback.activity_id : e.id === feedback.activity_id,
|
|
6015
|
+
updater: (e) => {
|
|
6016
|
+
if (isPin(e)) {
|
|
6017
|
+
return {
|
|
6018
|
+
...e,
|
|
6019
|
+
activity: {
|
|
6020
|
+
...e.activity,
|
|
6021
|
+
hidden: feedback.value === "true"
|
|
6022
|
+
}
|
|
6023
|
+
};
|
|
6024
|
+
} else {
|
|
6025
|
+
return {
|
|
6026
|
+
...e,
|
|
6027
|
+
hidden: feedback.value === "true"
|
|
6028
|
+
};
|
|
6029
|
+
}
|
|
6030
|
+
}
|
|
6031
|
+
});
|
|
6032
|
+
};
|
|
6033
|
+
function handleActivityFeedback(event) {
|
|
6034
|
+
const {
|
|
6035
|
+
activities: currentActivities,
|
|
6036
|
+
pinned_activities: currentPinnedActivities
|
|
6037
|
+
} = this.currentState;
|
|
6038
|
+
const { connected_user: connectedUser } = this.client.state.getLatestValue();
|
|
6039
|
+
const eventBelongsToCurrentUser = event.activity_feedback.user.id === connectedUser?.id;
|
|
6040
|
+
if (!eventBelongsToCurrentUser || event.activity_feedback.action !== "hide") {
|
|
6041
|
+
return;
|
|
6042
|
+
}
|
|
6043
|
+
const [result1, result2] = [
|
|
6044
|
+
updateActivityFromFeedback(event.activity_feedback, currentActivities),
|
|
6045
|
+
updateActivityFromFeedback(
|
|
6046
|
+
event.activity_feedback,
|
|
6047
|
+
currentPinnedActivities
|
|
6048
|
+
)
|
|
6049
|
+
];
|
|
6050
|
+
if (result1.changed || result2.changed) {
|
|
6051
|
+
this.state.partialNext({
|
|
6052
|
+
activities: result1.entities,
|
|
6053
|
+
pinned_activities: result2.entities
|
|
6054
|
+
});
|
|
6055
|
+
}
|
|
6056
|
+
}
|
|
5964
6057
|
const _Feed = class _Feed extends FeedApi {
|
|
5965
6058
|
constructor(client, groupId, id, data, watch = false, addNewActivitiesTo = "start") {
|
|
5966
6059
|
super(client, groupId, id);
|
|
@@ -6017,7 +6110,8 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
6017
6110
|
"user.deactivated": _Feed.noop,
|
|
6018
6111
|
"user.muted": _Feed.noop,
|
|
6019
6112
|
"user.reactivated": _Feed.noop,
|
|
6020
|
-
"user.updated": _Feed.noop
|
|
6113
|
+
"user.updated": _Feed.noop,
|
|
6114
|
+
"feeds.activity.feedback": handleActivityFeedback.bind(this)
|
|
6021
6115
|
};
|
|
6022
6116
|
this.eventDispatcher = new EventDispatcher();
|
|
6023
6117
|
this.on = this.eventDispatcher.on;
|
|
@@ -6080,7 +6174,10 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
6080
6174
|
currentActivityFeeds.push(activity.current_feed);
|
|
6081
6175
|
}
|
|
6082
6176
|
}
|
|
6083
|
-
this.client.hydrateCapabilitiesCache([
|
|
6177
|
+
this.client.hydrateCapabilitiesCache([
|
|
6178
|
+
response.feed,
|
|
6179
|
+
...currentActivityFeeds
|
|
6180
|
+
]);
|
|
6084
6181
|
if (request?.next) {
|
|
6085
6182
|
const { activities: currentActivities = [] } = this.currentState;
|
|
6086
6183
|
const result = addActivitiesToState.bind(this)(
|
|
@@ -7028,6 +7125,12 @@ class FeedsClient extends FeedsApi {
|
|
|
7028
7125
|
feeds.forEach((f) => f.handleWSEvent(event));
|
|
7029
7126
|
break;
|
|
7030
7127
|
}
|
|
7128
|
+
case "feeds.activity.feedback": {
|
|
7129
|
+
const activityId = event.activity_feedback.activity_id;
|
|
7130
|
+
const feeds = this.findActiveFeedByActivityId(activityId);
|
|
7131
|
+
feeds.forEach((f) => f.handleWSEvent(event));
|
|
7132
|
+
break;
|
|
7133
|
+
}
|
|
7031
7134
|
case "user.updated": {
|
|
7032
7135
|
handleUserUpdated.call(this, event);
|
|
7033
7136
|
break;
|
|
@@ -7193,4 +7296,4 @@ export {
|
|
|
7193
7296
|
shouldUpdateState as s,
|
|
7194
7297
|
uniqueArrayMerge as u
|
|
7195
7298
|
};
|
|
7196
|
-
//# sourceMappingURL=feeds-client-
|
|
7299
|
+
//# sourceMappingURL=feeds-client-ZdWyhS1v.mjs.map
|