stream-chat-react 13.1.0 → 13.1.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/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +16 -25
- package/dist/components/Message/MessageIsThreadReplyInChannelButtonIndicator.d.ts +2 -0
- package/dist/components/Message/{MessageThreadReplyInChannelButtonIndicator.js → MessageIsThreadReplyInChannelButtonIndicator.js} +2 -2
- package/dist/components/Message/MessageSimple.js +1 -1
- package/dist/context/ComponentContext.d.ts +2 -1
- package/dist/experimental/index.browser.cjs.map +2 -2
- package/dist/experimental/index.node.cjs.map +2 -2
- package/dist/i18n/TranslationBuilder/TranslationBuilder.d.ts +9 -5
- package/dist/i18n/TranslationBuilder/TranslationBuilder.js +37 -13
- package/dist/i18n/TranslationBuilder/notifications/index.d.ts +1 -0
- package/dist/i18n/TranslationBuilder/notifications/index.js +1 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.browser.cjs +60 -45
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +61 -45
- package/dist/index.node.cjs.map +4 -4
- package/package.json +1 -1
- package/dist/components/Message/MessageThreadReplyInChannelButtonIndicator.d.ts +0 -2
package/dist/index.node.cjs
CHANGED
|
@@ -20880,6 +20880,7 @@ __export(src_exports, {
|
|
|
20880
20880
|
MicIcon: () => MicIcon,
|
|
20881
20881
|
Modal: () => Modal,
|
|
20882
20882
|
ModalGallery: () => ModalGallery,
|
|
20883
|
+
NotificationTranslationTopic: () => NotificationTranslationTopic,
|
|
20883
20884
|
PauseIcon: () => PauseIcon2,
|
|
20884
20885
|
PinIcon: () => PinIcon,
|
|
20885
20886
|
PinIndicator: () => PinIndicator,
|
|
@@ -48820,18 +48821,33 @@ var TranslationBuilder = class {
|
|
|
48820
48821
|
constructor(i18next) {
|
|
48821
48822
|
this.i18next = i18next;
|
|
48822
48823
|
this.topics = /* @__PURE__ */ new Map();
|
|
48824
|
+
// need to keep a registration buffer so that translators can be registered once a topic is registered
|
|
48825
|
+
// what does not happen when Streami18n is instantiated but rather once Streami18n.init() is invoked
|
|
48826
|
+
this.translatorRegistrationsBuffer = {};
|
|
48823
48827
|
this.registerTopic = (name2, Topic) => {
|
|
48824
|
-
|
|
48825
|
-
|
|
48826
|
-
|
|
48827
|
-
|
|
48828
|
-
|
|
48829
|
-
|
|
48830
|
-
|
|
48831
|
-
|
|
48832
|
-
|
|
48833
|
-
|
|
48834
|
-
|
|
48828
|
+
let topic = this.topics.get(name2);
|
|
48829
|
+
if (!topic) {
|
|
48830
|
+
topic = new Topic({ i18next: this.i18next });
|
|
48831
|
+
this.topics.set(name2, topic);
|
|
48832
|
+
this.i18next.use({
|
|
48833
|
+
name: name2,
|
|
48834
|
+
process: (value, key, options) => {
|
|
48835
|
+
const topic2 = this.topics.get(name2);
|
|
48836
|
+
if (!topic2) return value;
|
|
48837
|
+
return topic2.translate(value, key, options);
|
|
48838
|
+
},
|
|
48839
|
+
type: "postProcessor"
|
|
48840
|
+
});
|
|
48841
|
+
}
|
|
48842
|
+
const additionalTranslatorsToRegister = this.translatorRegistrationsBuffer[name2];
|
|
48843
|
+
if (additionalTranslatorsToRegister) {
|
|
48844
|
+
Object.entries(additionalTranslatorsToRegister).forEach(
|
|
48845
|
+
([translatorName, translator]) => {
|
|
48846
|
+
topic.setTranslator(translatorName, translator);
|
|
48847
|
+
}
|
|
48848
|
+
);
|
|
48849
|
+
delete this.translatorRegistrationsBuffer[name2];
|
|
48850
|
+
}
|
|
48835
48851
|
return topic;
|
|
48836
48852
|
};
|
|
48837
48853
|
this.disableTopic = (topicName) => {
|
|
@@ -48848,13 +48864,25 @@ var TranslationBuilder = class {
|
|
|
48848
48864
|
}
|
|
48849
48865
|
registerTranslators(topicName, translators) {
|
|
48850
48866
|
const topic = this.getTopic(topicName);
|
|
48851
|
-
if (!topic)
|
|
48867
|
+
if (!topic) {
|
|
48868
|
+
if (!this.translatorRegistrationsBuffer[topicName])
|
|
48869
|
+
this.translatorRegistrationsBuffer[topicName] = {};
|
|
48870
|
+
Object.entries(translators).forEach(([translatorName, translator]) => {
|
|
48871
|
+
this.translatorRegistrationsBuffer[topicName][translatorName] = translator;
|
|
48872
|
+
});
|
|
48873
|
+
return;
|
|
48874
|
+
}
|
|
48852
48875
|
Object.entries(translators).forEach(([name2, translator]) => {
|
|
48853
48876
|
topic.setTranslator(name2, translator);
|
|
48854
48877
|
});
|
|
48855
48878
|
}
|
|
48856
48879
|
removeTranslators(topicName, translators) {
|
|
48857
48880
|
const topic = this.getTopic(topicName);
|
|
48881
|
+
if (this.translatorRegistrationsBuffer[topicName]) {
|
|
48882
|
+
translators.forEach((translatorName) => {
|
|
48883
|
+
delete this.translatorRegistrationsBuffer[topicName][translatorName];
|
|
48884
|
+
});
|
|
48885
|
+
}
|
|
48858
48886
|
if (!topic) return;
|
|
48859
48887
|
translators.forEach((name2) => {
|
|
48860
48888
|
topic.removeTranslator(name2);
|
|
@@ -50130,7 +50158,7 @@ var mousewheelListener2 = (event) => {
|
|
|
50130
50158
|
var InfiniteScroll = (props) => {
|
|
50131
50159
|
const {
|
|
50132
50160
|
children,
|
|
50133
|
-
element:
|
|
50161
|
+
element: Component2 = "div",
|
|
50134
50162
|
hasMore,
|
|
50135
50163
|
hasMoreNewer,
|
|
50136
50164
|
hasNextPage,
|
|
@@ -50152,17 +50180,17 @@ var InfiniteScroll = (props) => {
|
|
|
50152
50180
|
const loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
50153
50181
|
const hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
50154
50182
|
const hasPreviousPageFlag = hasPreviousPage || hasMore;
|
|
50155
|
-
const scrollComponent = (0, import_react180.
|
|
50183
|
+
const [scrollComponent, setScrollComponent] = (0, import_react180.useState)(null);
|
|
50156
50184
|
const previousOffset = (0, import_react180.useRef)(void 0);
|
|
50157
50185
|
const previousReverseOffset = (0, import_react180.useRef)(void 0);
|
|
50158
50186
|
const scrollListenerRef = (0, import_react180.useRef)(void 0);
|
|
50159
50187
|
scrollListenerRef.current = () => {
|
|
50160
|
-
const
|
|
50161
|
-
if (!
|
|
50188
|
+
const element3 = scrollComponent;
|
|
50189
|
+
if (!element3 || element3.offsetParent === null) {
|
|
50162
50190
|
return;
|
|
50163
50191
|
}
|
|
50164
|
-
const parentElement =
|
|
50165
|
-
const offset =
|
|
50192
|
+
const parentElement = element3.parentElement;
|
|
50193
|
+
const offset = element3.scrollHeight - parentElement.scrollTop - parentElement.clientHeight;
|
|
50166
50194
|
const reverseOffset = parentElement.scrollTop;
|
|
50167
50195
|
if (listenToScroll) {
|
|
50168
50196
|
listenToScroll(offset, reverseOffset, threshold);
|
|
@@ -50191,7 +50219,7 @@ var InfiniteScroll = (props) => {
|
|
|
50191
50219
|
);
|
|
50192
50220
|
}, []);
|
|
50193
50221
|
(0, import_react180.useEffect)(() => {
|
|
50194
|
-
const scrollElement = scrollComponent
|
|
50222
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
50195
50223
|
if (!scrollElement) return;
|
|
50196
50224
|
const scrollListener = () => scrollListenerRef.current?.();
|
|
50197
50225
|
scrollElement.addEventListener("scroll", scrollListener, useCapture);
|
|
@@ -50201,29 +50229,16 @@ var InfiniteScroll = (props) => {
|
|
|
50201
50229
|
scrollElement.removeEventListener("scroll", scrollListener, useCapture);
|
|
50202
50230
|
scrollElement.removeEventListener("resize", scrollListener, useCapture);
|
|
50203
50231
|
};
|
|
50204
|
-
}, [initialLoad, useCapture]);
|
|
50232
|
+
}, [initialLoad, scrollComponent, useCapture]);
|
|
50205
50233
|
(0, import_react180.useEffect)(() => {
|
|
50206
|
-
const scrollElement = scrollComponent
|
|
50207
|
-
if (scrollElement)
|
|
50208
|
-
|
|
50209
|
-
}
|
|
50234
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
50235
|
+
if (!scrollElement) return;
|
|
50236
|
+
scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
|
|
50210
50237
|
return () => {
|
|
50211
|
-
|
|
50212
|
-
scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
|
|
50213
|
-
}
|
|
50238
|
+
scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
|
|
50214
50239
|
};
|
|
50215
|
-
}, [useCapture]);
|
|
50216
|
-
|
|
50217
|
-
...elementProps,
|
|
50218
|
-
ref: (element4) => {
|
|
50219
|
-
scrollComponent.current = element4;
|
|
50220
|
-
}
|
|
50221
|
-
};
|
|
50222
|
-
const childrenArray = [loader, children];
|
|
50223
|
-
if (head) {
|
|
50224
|
-
childrenArray.unshift(head);
|
|
50225
|
-
}
|
|
50226
|
-
return import_react180.default.createElement(element3, attributes, childrenArray);
|
|
50240
|
+
}, [scrollComponent, useCapture]);
|
|
50241
|
+
return /* @__PURE__ */ import_react180.default.createElement(Component2, { ...elementProps, ref: setScrollComponent }, head, loader, children);
|
|
50227
50242
|
};
|
|
50228
50243
|
|
|
50229
50244
|
// src/components/TypingIndicator/TypingIndicator.tsx
|
|
@@ -51471,10 +51486,10 @@ function VirtualizedMessageList(props) {
|
|
|
51471
51486
|
);
|
|
51472
51487
|
}
|
|
51473
51488
|
|
|
51474
|
-
// src/components/Message/
|
|
51489
|
+
// src/components/Message/MessageIsThreadReplyInChannelButtonIndicator.tsx
|
|
51475
51490
|
var import_react198 = __toESM(require("react"));
|
|
51476
51491
|
var import_stream_chat6 = require("stream-chat");
|
|
51477
|
-
var
|
|
51492
|
+
var MessageIsThreadReplyInChannelButtonIndicator = () => {
|
|
51478
51493
|
const { client } = useChatContext();
|
|
51479
51494
|
const { t } = useTranslationContext();
|
|
51480
51495
|
const { channel } = useChannelStateContext();
|
|
@@ -51495,7 +51510,7 @@ var MessageThreadReplyInChannelButtonIndicator = () => {
|
|
|
51495
51510
|
},
|
|
51496
51511
|
origin: {
|
|
51497
51512
|
context: { threadReply: message },
|
|
51498
|
-
emitter: "
|
|
51513
|
+
emitter: "MessageIsThreadReplyInChannelButtonIndicator"
|
|
51499
51514
|
}
|
|
51500
51515
|
});
|
|
51501
51516
|
});
|
|
@@ -51995,7 +52010,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
51995
52010
|
MessageBlocked: MessageBlocked2 = MessageBlocked,
|
|
51996
52011
|
MessageBouncePrompt: MessageBouncePrompt2 = MessageBouncePrompt,
|
|
51997
52012
|
MessageDeleted: MessageDeleted2 = MessageDeleted,
|
|
51998
|
-
MessageIsThreadReplyInChannelButtonIndicator =
|
|
52013
|
+
MessageIsThreadReplyInChannelButtonIndicator: MessageIsThreadReplyInChannelButtonIndicator2 = MessageIsThreadReplyInChannelButtonIndicator,
|
|
51999
52014
|
MessageRepliesCountButton: MessageRepliesCountButton2 = MessageRepliesCountButton,
|
|
52000
52015
|
MessageStatus: MessageStatus2 = MessageStatus,
|
|
52001
52016
|
MessageTimestamp: MessageTimestamp2 = MessageTimestamp,
|
|
@@ -52100,7 +52115,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
52100
52115
|
onClick: handleOpenThread,
|
|
52101
52116
|
reply_count: message.reply_count
|
|
52102
52117
|
}
|
|
52103
|
-
), showIsReplyInChannel && /* @__PURE__ */ import_react206.default.createElement(
|
|
52118
|
+
), showIsReplyInChannel && /* @__PURE__ */ import_react206.default.createElement(MessageIsThreadReplyInChannelButtonIndicator2, null), showMetadata && /* @__PURE__ */ import_react206.default.createElement("div", { className: "str-chat__message-metadata" }, /* @__PURE__ */ import_react206.default.createElement(MessageStatus2, null), !isMyMessage() && !!message.user && /* @__PURE__ */ import_react206.default.createElement("span", { className: "str-chat__message-simple-name" }, message.user.name || message.user.id), /* @__PURE__ */ import_react206.default.createElement(MessageTimestamp2, { customClass: "str-chat__message-simple-timestamp" }), isEdited && /* @__PURE__ */ import_react206.default.createElement("span", { className: "str-chat__mesage-simple-edited" }, t("Edited")), isEdited && /* @__PURE__ */ import_react206.default.createElement(MessageEditedTimestamp, { calendar: true, open: isEditedTimestampOpen }))));
|
|
52104
52119
|
};
|
|
52105
52120
|
var MemoizedMessageSimple = import_react206.default.memo(
|
|
52106
52121
|
MessageSimpleWithContext,
|
|
@@ -57356,7 +57371,7 @@ var useChat = ({
|
|
|
57356
57371
|
};
|
|
57357
57372
|
(0, import_react271.useEffect)(() => {
|
|
57358
57373
|
if (!client) return;
|
|
57359
|
-
const version = "13.1.
|
|
57374
|
+
const version = "13.1.2";
|
|
57360
57375
|
const userAgent = client.getUserAgent();
|
|
57361
57376
|
if (!userAgent.includes("stream-chat-react")) {
|
|
57362
57377
|
client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);
|
|
@@ -57726,6 +57741,7 @@ var Window = import_react276.default.memo(UnMemoizedWindow);
|
|
|
57726
57741
|
MicIcon,
|
|
57727
57742
|
Modal,
|
|
57728
57743
|
ModalGallery,
|
|
57744
|
+
NotificationTranslationTopic,
|
|
57729
57745
|
PauseIcon,
|
|
57730
57746
|
PinIcon,
|
|
57731
57747
|
PinIndicator,
|