stream-chat 9.41.0 → 9.41.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/dist/cjs/index.browser.js +46 -18
- package/dist/cjs/index.browser.js.map +2 -2
- package/dist/cjs/index.node.js +46 -18
- package/dist/cjs/index.node.js.map +2 -2
- package/dist/esm/index.mjs +46 -18
- package/dist/esm/index.mjs.map +2 -2
- package/dist/types/channel.d.ts +1 -0
- package/dist/types/channel_state.d.ts +2 -0
- package/dist/types/utils.d.ts +1 -0
- package/package.json +1 -1
- package/src/channel.ts +9 -2
- package/src/channel_state.ts +5 -1
- package/src/client.ts +10 -2
- package/src/utils.ts +26 -10
package/dist/types/channel.d.ts
CHANGED
|
@@ -748,6 +748,7 @@ export declare class Channel {
|
|
|
748
748
|
_checkInitialized(): void;
|
|
749
749
|
_initializeState(state: ChannelAPIResponse, messageSetToAddToIfDoesNotExist?: MessageSetType): {
|
|
750
750
|
messageSet: import("./types").MessageSet;
|
|
751
|
+
filteredMessageIds: string[];
|
|
751
752
|
};
|
|
752
753
|
_extendEventWithOwnReactions(event: Event): void;
|
|
753
754
|
_hydrateMembers({ members, overrideCurrentState, }: {
|
|
@@ -67,6 +67,7 @@ export declare class ChannelState {
|
|
|
67
67
|
*/
|
|
68
68
|
addMessageSorted(newMessage: MessageResponse | LocalMessage, timestampChanged?: boolean, addIfDoesNotExist?: boolean, messageSetToAddToIfDoesNotExist?: MessageSetType): {
|
|
69
69
|
messageSet: MessageSet;
|
|
70
|
+
filteredMessageIds: string[];
|
|
70
71
|
};
|
|
71
72
|
/**
|
|
72
73
|
* Takes the message object, parses the dates, sets `__html`
|
|
@@ -87,6 +88,7 @@ export declare class ChannelState {
|
|
|
87
88
|
*/
|
|
88
89
|
addMessagesSorted(newMessages: (MessageResponse | LocalMessage)[], timestampChanged?: boolean, initializing?: boolean, addIfDoesNotExist?: boolean, messageSetToAddToIfDoesNotExist?: MessageSetType): {
|
|
89
90
|
messageSet: MessageSet;
|
|
91
|
+
filteredMessageIds: string[];
|
|
90
92
|
};
|
|
91
93
|
/**
|
|
92
94
|
* addPinnedMessages - adds messages in pinnedMessages property
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -223,6 +223,7 @@ type MessagePaginationUpdatedParams = {
|
|
|
223
223
|
parentSet: MessageSet;
|
|
224
224
|
requestedPageSize: number;
|
|
225
225
|
returnedPage: MessageResponse[];
|
|
226
|
+
filteredReturnedPage: MessageResponse[];
|
|
226
227
|
logger?: Logger;
|
|
227
228
|
messagePaginationOptions?: MessagePaginationOptions;
|
|
228
229
|
};
|
package/package.json
CHANGED
package/src/channel.ts
CHANGED
|
@@ -1581,7 +1581,10 @@ export class Channel {
|
|
|
1581
1581
|
}
|
|
1582
1582
|
|
|
1583
1583
|
// add any messages to our channel state
|
|
1584
|
-
const { messageSet } = this._initializeState(
|
|
1584
|
+
const { messageSet, filteredMessageIds } = this._initializeState(
|
|
1585
|
+
state,
|
|
1586
|
+
messageSetToAddToIfDoesNotExist,
|
|
1587
|
+
);
|
|
1585
1588
|
messageSet.pagination = {
|
|
1586
1589
|
...messageSet.pagination,
|
|
1587
1590
|
...messageSetPagination({
|
|
@@ -1590,6 +1593,9 @@ export class Channel {
|
|
|
1590
1593
|
requestedPageSize:
|
|
1591
1594
|
options?.messages?.limit ?? DEFAULT_QUERY_CHANNEL_MESSAGE_LIST_PAGE_SIZE,
|
|
1592
1595
|
returnedPage: state.messages,
|
|
1596
|
+
filteredReturnedPage: state.messages.filter(
|
|
1597
|
+
(m) => !filteredMessageIds.includes(m.id),
|
|
1598
|
+
),
|
|
1593
1599
|
logger: this.getClient().logger,
|
|
1594
1600
|
}),
|
|
1595
1601
|
};
|
|
@@ -2368,7 +2374,7 @@ export class Channel {
|
|
|
2368
2374
|
if (!this.state.messages) {
|
|
2369
2375
|
this.state.initMessages();
|
|
2370
2376
|
}
|
|
2371
|
-
const { messageSet } = this.state.addMessagesSorted(
|
|
2377
|
+
const { messageSet, filteredMessageIds } = this.state.addMessagesSorted(
|
|
2372
2378
|
messages,
|
|
2373
2379
|
false,
|
|
2374
2380
|
true,
|
|
@@ -2434,6 +2440,7 @@ export class Channel {
|
|
|
2434
2440
|
|
|
2435
2441
|
return {
|
|
2436
2442
|
messageSet,
|
|
2443
|
+
filteredMessageIds,
|
|
2437
2444
|
};
|
|
2438
2445
|
}
|
|
2439
2446
|
|
package/src/channel_state.ts
CHANGED
|
@@ -217,9 +217,12 @@ export class ChannelState {
|
|
|
217
217
|
messageSetToAddToIfDoesNotExist,
|
|
218
218
|
);
|
|
219
219
|
|
|
220
|
+
const filteredMessageIds: string[] = [];
|
|
221
|
+
|
|
220
222
|
for (let i = 0; i < messagesToAdd.length; i += 1) {
|
|
221
223
|
const isFromShadowBannedUser = messagesToAdd[i].shadowed;
|
|
222
|
-
if (isFromShadowBannedUser) {
|
|
224
|
+
if (isFromShadowBannedUser && addIfDoesNotExist) {
|
|
225
|
+
filteredMessageIds.push(messagesToAdd[i].id);
|
|
223
226
|
continue;
|
|
224
227
|
}
|
|
225
228
|
// If message is already formatted we can skip the tasks below
|
|
@@ -306,6 +309,7 @@ export class ChannelState {
|
|
|
306
309
|
|
|
307
310
|
return {
|
|
308
311
|
messageSet: this.messageSets[targetMessageSetIndex],
|
|
312
|
+
filteredMessageIds,
|
|
309
313
|
};
|
|
310
314
|
}
|
|
311
315
|
|
package/src/client.ts
CHANGED
|
@@ -2040,12 +2040,17 @@ export class StreamChat {
|
|
|
2040
2040
|
c.push_preferences = channelState.push_preferences;
|
|
2041
2041
|
|
|
2042
2042
|
let updatedMessagesSet;
|
|
2043
|
+
let filteredMessageIds: string[] = [];
|
|
2043
2044
|
if (skipInitialization === undefined) {
|
|
2044
|
-
const { messageSet } =
|
|
2045
|
+
const { messageSet, filteredMessageIds: _filteredMessageIds } =
|
|
2046
|
+
c._initializeState(channelState, 'latest');
|
|
2047
|
+
filteredMessageIds = _filteredMessageIds;
|
|
2045
2048
|
updatedMessagesSet = messageSet;
|
|
2046
2049
|
} else if (!skipInitialization.includes(channelState.channel.id)) {
|
|
2047
2050
|
c.state.clearMessages();
|
|
2048
|
-
const { messageSet } =
|
|
2051
|
+
const { messageSet, filteredMessageIds: _filteredMessageIds } =
|
|
2052
|
+
c._initializeState(channelState, 'latest');
|
|
2053
|
+
filteredMessageIds = _filteredMessageIds;
|
|
2049
2054
|
updatedMessagesSet = messageSet;
|
|
2050
2055
|
}
|
|
2051
2056
|
|
|
@@ -2058,6 +2063,9 @@ export class StreamChat {
|
|
|
2058
2063
|
queryChannelsOptions?.message_limit ||
|
|
2059
2064
|
DEFAULT_QUERY_CHANNELS_MESSAGE_LIST_PAGE_SIZE,
|
|
2060
2065
|
returnedPage: channelState.messages,
|
|
2066
|
+
filteredReturnedPage: channelState.messages.filter(
|
|
2067
|
+
(m) => !filteredMessageIds.includes(m.id),
|
|
2068
|
+
),
|
|
2061
2069
|
logger: this.logger,
|
|
2062
2070
|
}),
|
|
2063
2071
|
};
|
package/src/utils.ts
CHANGED
|
@@ -811,6 +811,7 @@ type MessagePaginationUpdatedParams = {
|
|
|
811
811
|
parentSet: MessageSet;
|
|
812
812
|
requestedPageSize: number;
|
|
813
813
|
returnedPage: MessageResponse[];
|
|
814
|
+
filteredReturnedPage: MessageResponse[];
|
|
814
815
|
logger?: Logger;
|
|
815
816
|
messagePaginationOptions?: MessagePaginationOptions;
|
|
816
817
|
};
|
|
@@ -849,6 +850,7 @@ const messagePaginationCreatedAtAround = ({
|
|
|
849
850
|
parentSet,
|
|
850
851
|
requestedPageSize,
|
|
851
852
|
returnedPage,
|
|
853
|
+
filteredReturnedPage,
|
|
852
854
|
messagePaginationOptions,
|
|
853
855
|
}: MessagePaginationUpdatedParams) => {
|
|
854
856
|
const newPagination = { ...parentSet.pagination };
|
|
@@ -892,9 +894,14 @@ const messagePaginationCreatedAtAround = ({
|
|
|
892
894
|
hasNext = hasPrev = false;
|
|
893
895
|
updateHasPrev = updateHasNext = true;
|
|
894
896
|
} else {
|
|
897
|
+
const [firstFilteredPageMsg, lastFilteredPageMsg] = [
|
|
898
|
+
filteredReturnedPage[0],
|
|
899
|
+
filteredReturnedPage.slice(-1)[0],
|
|
900
|
+
];
|
|
895
901
|
const [firstPageMsgIsFirstInSet, lastPageMsgIsLastInSet] = [
|
|
896
|
-
|
|
897
|
-
|
|
902
|
+
firstFilteredPageMsg?.id && firstFilteredPageMsg.id === parentSet.messages[0]?.id,
|
|
903
|
+
lastFilteredPageMsg?.id &&
|
|
904
|
+
lastFilteredPageMsg.id === parentSet.messages.slice(-1)[0]?.id,
|
|
898
905
|
];
|
|
899
906
|
updateHasPrev = firstPageMsgIsFirstInSet;
|
|
900
907
|
updateHasNext = lastPageMsgIsLastInSet;
|
|
@@ -920,6 +927,7 @@ const messagePaginationIdAround = ({
|
|
|
920
927
|
parentSet,
|
|
921
928
|
requestedPageSize,
|
|
922
929
|
returnedPage,
|
|
930
|
+
filteredReturnedPage,
|
|
923
931
|
messagePaginationOptions,
|
|
924
932
|
}: MessagePaginationUpdatedParams) => {
|
|
925
933
|
const newPagination = { ...parentSet.pagination };
|
|
@@ -928,10 +936,13 @@ const messagePaginationIdAround = ({
|
|
|
928
936
|
let hasPrev;
|
|
929
937
|
let hasNext;
|
|
930
938
|
|
|
931
|
-
const [
|
|
939
|
+
const [firstFilteredPageMsg, lastFilteredPageMsg] = [
|
|
940
|
+
filteredReturnedPage[0],
|
|
941
|
+
filteredReturnedPage.slice(-1)[0],
|
|
942
|
+
];
|
|
932
943
|
const [firstPageMsgIsFirstInSet, lastPageMsgIsLastInSet] = [
|
|
933
|
-
|
|
934
|
-
|
|
944
|
+
firstFilteredPageMsg?.id === parentSet.messages[0]?.id,
|
|
945
|
+
lastFilteredPageMsg?.id === parentSet.messages.slice(-1)[0]?.id,
|
|
935
946
|
];
|
|
936
947
|
let updateHasPrev = firstPageMsgIsFirstInSet;
|
|
937
948
|
let updateHasNext = lastPageMsgIsLastInSet;
|
|
@@ -974,6 +985,7 @@ const messagePaginationLinear = ({
|
|
|
974
985
|
parentSet,
|
|
975
986
|
requestedPageSize,
|
|
976
987
|
returnedPage,
|
|
988
|
+
filteredReturnedPage,
|
|
977
989
|
messagePaginationOptions,
|
|
978
990
|
}: MessagePaginationUpdatedParams) => {
|
|
979
991
|
const newPagination = { ...parentSet.pagination };
|
|
@@ -981,10 +993,14 @@ const messagePaginationLinear = ({
|
|
|
981
993
|
let hasPrev;
|
|
982
994
|
let hasNext;
|
|
983
995
|
|
|
984
|
-
const [
|
|
996
|
+
const [firstFilteredPageMsg, lastFilteredPageMsg] = [
|
|
997
|
+
filteredReturnedPage[0],
|
|
998
|
+
filteredReturnedPage.slice(-1)[0],
|
|
999
|
+
];
|
|
985
1000
|
const [firstPageMsgIsFirstInSet, lastPageMsgIsLastInSet] = [
|
|
986
|
-
|
|
987
|
-
|
|
1001
|
+
firstFilteredPageMsg?.id && firstFilteredPageMsg.id === parentSet.messages[0]?.id,
|
|
1002
|
+
lastFilteredPageMsg?.id &&
|
|
1003
|
+
lastFilteredPageMsg.id === parentSet.messages.slice(-1)[0]?.id,
|
|
988
1004
|
];
|
|
989
1005
|
|
|
990
1006
|
const queriedNextMessages =
|
|
@@ -1028,9 +1044,9 @@ const messagePaginationLinear = ({
|
|
|
1028
1044
|
};
|
|
1029
1045
|
|
|
1030
1046
|
export const messageSetPagination = (params: MessagePaginationUpdatedParams) => {
|
|
1031
|
-
const messagesFilteredLocally = params.returnedPage.filter(({ shadowed }) => shadowed);
|
|
1032
1047
|
if (
|
|
1033
|
-
params.parentSet.messages.length +
|
|
1048
|
+
params.parentSet.messages.length +
|
|
1049
|
+
(params.returnedPage.length - params.filteredReturnedPage.length) <
|
|
1034
1050
|
params.returnedPage.length
|
|
1035
1051
|
) {
|
|
1036
1052
|
params.logger?.(
|