stream-chat-react 13.2.1 → 13.2.3
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/Attachment/AttachmentContainer.js +14 -10
- package/dist/components/Channel/Channel.js +3 -1
- package/dist/components/ChannelList/ChannelList.d.ts +2 -1
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +2 -1
- package/dist/components/ChannelList/ChannelListMessenger.js +1 -1
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/Dialog/FormDialog.js +1 -1
- package/dist/components/Loading/LoadingErrorIndicator.d.ts +1 -1
- package/dist/components/Message/index.d.ts +1 -0
- package/dist/components/Message/index.js +1 -0
- package/dist/components/Message/renderText/renderText.d.ts +1 -1
- package/dist/components/Message/renderText/renderText.js +25 -16
- package/dist/components/MessageInput/EditMessageForm.js +2 -2
- package/dist/components/MessageInput/MessageInput.js +4 -1
- package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.js +1 -1
- package/dist/components/Poll/PollCreationDialog/OptionFieldSet.js +2 -1
- package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js +1 -1
- package/dist/components/ReactFileUtilities/UploadButton.js +3 -2
- package/dist/components/TextareaComposer/TextareaComposer.js +29 -2
- package/dist/index.browser.cjs +97 -71
- package/dist/index.browser.cjs.map +3 -3
- package/dist/index.node.cjs +98 -71
- package/dist/index.node.cjs.map +3 -3
- package/package.json +3 -3
package/dist/index.node.cjs
CHANGED
|
@@ -402,6 +402,7 @@ __export(src_exports, {
|
|
|
402
402
|
MessageInputContext: () => MessageInputContext,
|
|
403
403
|
MessageInputContextProvider: () => MessageInputContextProvider,
|
|
404
404
|
MessageInputFlat: () => MessageInputFlat,
|
|
405
|
+
MessageIsThreadReplyInChannelButtonIndicator: () => MessageIsThreadReplyInChannelButtonIndicator,
|
|
405
406
|
MessageList: () => MessageList,
|
|
406
407
|
MessageListContext: () => MessageListContext,
|
|
407
408
|
MessageListContextProvider: () => MessageListContextProvider,
|
|
@@ -4249,7 +4250,7 @@ var ChannelListMessenger = (props) => {
|
|
|
4249
4250
|
} = props;
|
|
4250
4251
|
const { t } = useTranslationContext("ChannelListMessenger");
|
|
4251
4252
|
if (error) {
|
|
4252
|
-
return /* @__PURE__ */ import_react47.default.createElement(LoadingErrorIndicator2,
|
|
4253
|
+
return /* @__PURE__ */ import_react47.default.createElement(LoadingErrorIndicator2, { error });
|
|
4253
4254
|
}
|
|
4254
4255
|
if (loading) {
|
|
4255
4256
|
return /* @__PURE__ */ import_react47.default.createElement(LoadingIndicator2, null);
|
|
@@ -19814,7 +19815,6 @@ var keepLineBreaksPlugin = () => transform2;
|
|
|
19814
19815
|
// src/components/Message/renderText/renderText.tsx
|
|
19815
19816
|
var import_react110 = __toESM(require("react"));
|
|
19816
19817
|
var import_linkifyjs = require("linkifyjs");
|
|
19817
|
-
var import_lodash13 = __toESM(require("lodash.uniqby"));
|
|
19818
19818
|
|
|
19819
19819
|
// node_modules/ccount/index.js
|
|
19820
19820
|
function ccount(value, character) {
|
|
@@ -22951,39 +22951,31 @@ var renderText = (text7, mentionedUsers, {
|
|
|
22951
22951
|
let newText = text7;
|
|
22952
22952
|
const markdownLinks = matchMarkdownLinks(newText);
|
|
22953
22953
|
const codeBlocks = messageCodeBlocks(newText);
|
|
22954
|
-
|
|
22955
|
-
|
|
22956
|
-
|
|
22957
|
-
|
|
22958
|
-
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
22965
|
-
|
|
22966
|
-
|
|
22967
|
-
|
|
22968
|
-
|
|
22969
|
-
|
|
22970
|
-
|
|
22971
|
-
const isMention = newText.charAt(position3 - 1) === "@";
|
|
22972
|
-
return isMention ? match : `[${match}](${encodeDecode(href)})`;
|
|
22973
|
-
}
|
|
22974
|
-
);
|
|
22975
|
-
return;
|
|
22976
|
-
}
|
|
22954
|
+
const links = [...(0, import_linkifyjs.find)(newText, "email"), ...(0, import_linkifyjs.find)(newText, "url")];
|
|
22955
|
+
for (let i = links.length - 1; i >= 0; i--) {
|
|
22956
|
+
const { end, href, start: start2, type, value } = links[i];
|
|
22957
|
+
const linkIsInBlock = codeBlocks.some((block) => block?.includes(value));
|
|
22958
|
+
const noParsingNeeded = markdownLinks && markdownLinks.filter((text8) => {
|
|
22959
|
+
const strippedHref = href?.replace(detectHttp, "");
|
|
22960
|
+
const strippedText = text8?.replace(detectHttp, "");
|
|
22961
|
+
if (!strippedHref || !strippedText) return false;
|
|
22962
|
+
return strippedHref.includes(strippedText) || strippedText.includes(strippedHref);
|
|
22963
|
+
});
|
|
22964
|
+
if (noParsingNeeded.length > 0 || linkIsInBlock) return;
|
|
22965
|
+
try {
|
|
22966
|
+
if (type === "email" && mentionedUsers) {
|
|
22967
|
+
const emailMatchesWithName = mentionedUsers.find((u2) => u2.name === value);
|
|
22968
|
+
if (emailMatchesWithName) {
|
|
22969
|
+
const isMention = newText.charAt(start2 - 1) === "@";
|
|
22970
|
+
newText = newText.slice(0, start2) + (isMention ? value : `[${value}](${encodeDecode(href)})`) + newText.slice(end);
|
|
22977
22971
|
}
|
|
22972
|
+
} else {
|
|
22978
22973
|
const displayLink = type === "email" ? value : formatUrlForDisplay(href);
|
|
22979
|
-
newText = newText.
|
|
22980
|
-
new RegExp(escapeRegExp(value), "g"),
|
|
22981
|
-
`[${displayLink}](${encodeDecode(href)})`
|
|
22982
|
-
);
|
|
22983
|
-
} catch (e) {
|
|
22974
|
+
newText = newText.slice(0, start2) + `[${displayLink}](${encodeDecode(href)})` + newText.slice(end);
|
|
22984
22975
|
}
|
|
22976
|
+
} catch (e) {
|
|
22985
22977
|
}
|
|
22986
|
-
|
|
22978
|
+
}
|
|
22987
22979
|
const remarkPlugins = [
|
|
22988
22980
|
htmlToTextPlugin,
|
|
22989
22981
|
keepLineBreaksPlugin,
|
|
@@ -23850,7 +23842,8 @@ var FormDialog = ({
|
|
|
23850
23842
|
"button",
|
|
23851
23843
|
{
|
|
23852
23844
|
className: "str-chat__dialog__controls-button str-chat__dialog__controls-button--cancel",
|
|
23853
|
-
onClick: close
|
|
23845
|
+
onClick: close,
|
|
23846
|
+
type: "button"
|
|
23854
23847
|
},
|
|
23855
23848
|
t("Cancel")
|
|
23856
23849
|
), /* @__PURE__ */ import_react127.default.createElement(
|
|
@@ -24137,7 +24130,7 @@ function useManagePollVotesRealtime(managedVoteType, cursorPaginatorState, optio
|
|
|
24137
24130
|
}
|
|
24138
24131
|
|
|
24139
24132
|
// src/components/InfiniteScrollPaginator/hooks/useCursorPaginator.ts
|
|
24140
|
-
var
|
|
24133
|
+
var import_lodash13 = __toESM(require("lodash.uniqby"));
|
|
24141
24134
|
var import_react136 = require("react");
|
|
24142
24135
|
var import_stream_chat3 = require("stream-chat");
|
|
24143
24136
|
var useCursorPaginator = (paginationFn, loadFirstPage) => {
|
|
@@ -24159,7 +24152,7 @@ var useCursorPaginator = (paginationFn, loadFirstPage) => {
|
|
|
24159
24152
|
cursorPaginatorState.next((prev) => ({
|
|
24160
24153
|
...prev,
|
|
24161
24154
|
hasNextPage: !!next,
|
|
24162
|
-
items: (0,
|
|
24155
|
+
items: (0, import_lodash13.default)(prev.items.concat(items), "id"),
|
|
24163
24156
|
latestPageItems: items,
|
|
24164
24157
|
next: next || null
|
|
24165
24158
|
}));
|
|
@@ -24258,7 +24251,7 @@ var usePollOptionVotesPagination = ({
|
|
|
24258
24251
|
|
|
24259
24252
|
// src/components/InfiniteScrollPaginator/InfiniteScrollPaginator.tsx
|
|
24260
24253
|
var import_clsx31 = __toESM(require("clsx"));
|
|
24261
|
-
var
|
|
24254
|
+
var import_lodash14 = __toESM(require("lodash.debounce"));
|
|
24262
24255
|
var import_react139 = __toESM(require("react"));
|
|
24263
24256
|
var mousewheelListener = (event) => {
|
|
24264
24257
|
if (event instanceof WheelEvent && event.deltaY === 1) {
|
|
@@ -24280,7 +24273,7 @@ var InfiniteScrollPaginator = (props) => {
|
|
|
24280
24273
|
const rootRef = (0, import_react139.useRef)(null);
|
|
24281
24274
|
const childRef = (0, import_react139.useRef)(null);
|
|
24282
24275
|
const scrollListener = (0, import_react139.useMemo)(
|
|
24283
|
-
() => (0,
|
|
24276
|
+
() => (0, import_lodash14.default)(() => {
|
|
24284
24277
|
const root4 = rootRef.current;
|
|
24285
24278
|
const child = childRef.current;
|
|
24286
24279
|
if (!root4 || root4.offsetParent === null || !child) {
|
|
@@ -24370,7 +24363,7 @@ var import_react142 = __toESM(require("react"));
|
|
|
24370
24363
|
|
|
24371
24364
|
// src/components/Poll/PollOptionSelector.tsx
|
|
24372
24365
|
var import_clsx32 = __toESM(require("clsx"));
|
|
24373
|
-
var
|
|
24366
|
+
var import_lodash15 = __toESM(require("lodash.debounce"));
|
|
24374
24367
|
var import_react141 = __toESM(require("react"));
|
|
24375
24368
|
var import_stream_chat4 = require("stream-chat");
|
|
24376
24369
|
var AmountBar = ({ amount, className }) => /* @__PURE__ */ import_react141.default.createElement(
|
|
@@ -24418,7 +24411,7 @@ var PollOptionSelector = ({
|
|
|
24418
24411
|
const canCastVote = channelCapabilities["cast-poll-vote"] && !is_closed;
|
|
24419
24412
|
const winningOptionCount = maxVotedOptionIds[0] ? vote_counts_by_option[maxVotedOptionIds[0]] : 0;
|
|
24420
24413
|
const toggleVote = (0, import_react141.useMemo)(
|
|
24421
|
-
() => (0,
|
|
24414
|
+
() => (0, import_lodash15.default)(() => {
|
|
24422
24415
|
if (!canCastVote) return;
|
|
24423
24416
|
const haveVotedForTheOption = !!ownVotesByOptionId[option.id];
|
|
24424
24417
|
return haveVotedForTheOption ? poll.removeVote(ownVotesByOptionId[option.id].id, message.id) : poll.castVote(option.id, message.id);
|
|
@@ -24842,7 +24835,7 @@ var MultipleAnswersField = () => {
|
|
|
24842
24835
|
);
|
|
24843
24836
|
},
|
|
24844
24837
|
placeholder: t("Maximum number of votes (from 2 to 10)"),
|
|
24845
|
-
type: "
|
|
24838
|
+
type: "text",
|
|
24846
24839
|
value: max_votes_allowed
|
|
24847
24840
|
}
|
|
24848
24841
|
))
|
|
@@ -25075,7 +25068,8 @@ var OptionFieldSet = () => {
|
|
|
25075
25068
|
});
|
|
25076
25069
|
},
|
|
25077
25070
|
onKeyUp: (event) => {
|
|
25078
|
-
|
|
25071
|
+
const isFocusedLastOptionField = i === options.length - 1;
|
|
25072
|
+
if (event.key === "Enter" && !isFocusedLastOptionField) {
|
|
25079
25073
|
const nextInputId = options[i + 1].id;
|
|
25080
25074
|
document.getElementById(nextInputId)?.focus();
|
|
25081
25075
|
}
|
|
@@ -25107,7 +25101,8 @@ var PollCreationDialogControls = ({
|
|
|
25107
25101
|
onClick: () => {
|
|
25108
25102
|
messageComposer.pollComposer.initState();
|
|
25109
25103
|
close();
|
|
25110
|
-
}
|
|
25104
|
+
},
|
|
25105
|
+
type: "button"
|
|
25111
25106
|
},
|
|
25112
25107
|
t("Cancel")
|
|
25113
25108
|
), /* @__PURE__ */ import_react157.default.createElement(
|
|
@@ -30459,7 +30454,7 @@ var useUnreadMessagesNotificationVirtualized = ({
|
|
|
30459
30454
|
|
|
30460
30455
|
// src/components/MessageList/VirtualizedMessageListComponents.tsx
|
|
30461
30456
|
var import_clsx48 = __toESM(require("clsx"));
|
|
30462
|
-
var
|
|
30457
|
+
var import_lodash16 = __toESM(require("lodash.throttle"));
|
|
30463
30458
|
var import_react194 = __toESM(require("react"));
|
|
30464
30459
|
var PREPEND_OFFSET = 10 ** 7;
|
|
30465
30460
|
function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
|
|
@@ -30468,7 +30463,7 @@ function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
|
|
|
30468
30463
|
function calculateFirstItemIndex(numItemsPrepended) {
|
|
30469
30464
|
return PREPEND_OFFSET - numItemsPrepended;
|
|
30470
30465
|
}
|
|
30471
|
-
var makeItemsRenderedHandler = (renderedItemsActions, processedMessages) => (0,
|
|
30466
|
+
var makeItemsRenderedHandler = (renderedItemsActions, processedMessages) => (0, import_lodash16.default)((items) => {
|
|
30472
30467
|
const renderedMessages = items.map((item) => {
|
|
30473
30468
|
if (!item.originalIndex) return void 0;
|
|
30474
30469
|
return processedMessages[calculateItemIndex(item.originalIndex, PREPEND_OFFSET)];
|
|
@@ -32705,9 +32700,9 @@ var import_fix_webm_duration = __toESM(require("fix-webm-duration"));
|
|
|
32705
32700
|
var import_nanoid5 = require("nanoid");
|
|
32706
32701
|
|
|
32707
32702
|
// src/utils/mergeDeep.ts
|
|
32708
|
-
var
|
|
32703
|
+
var import_lodash17 = __toESM(require("lodash.mergewith"));
|
|
32709
32704
|
var overrideUndefinedOnly = (object, source) => object ?? source;
|
|
32710
|
-
var mergeDeepUndefined = (target, source) => (0,
|
|
32705
|
+
var mergeDeepUndefined = (target, source) => (0, import_lodash17.default)(target, source, overrideUndefinedOnly);
|
|
32711
32706
|
|
|
32712
32707
|
// src/components/MediaRecorder/classes/AmplitudeRecorder.ts
|
|
32713
32708
|
var MAX_FREQUENCY_AMPLITUDE = 255;
|
|
@@ -34188,6 +34183,12 @@ var searchSourceStateSelector2 = (state) => ({
|
|
|
34188
34183
|
var configStateSelector = (state) => ({
|
|
34189
34184
|
enabled: state.text.enabled
|
|
34190
34185
|
});
|
|
34186
|
+
var messageComposerStateSelector2 = (state) => ({
|
|
34187
|
+
quotedMessage: state.quotedMessage
|
|
34188
|
+
});
|
|
34189
|
+
var attachmentManagerStateSelector = (state) => ({
|
|
34190
|
+
attachments: state.attachments
|
|
34191
|
+
});
|
|
34191
34192
|
var defaultShouldSubmit = (event) => event.key === "Enter" && !event.shiftKey && !event.nativeEvent.isComposing;
|
|
34192
34193
|
var TextareaComposer = ({
|
|
34193
34194
|
className,
|
|
@@ -34210,6 +34211,7 @@ var TextareaComposer = ({
|
|
|
34210
34211
|
const {
|
|
34211
34212
|
additionalTextareaProps,
|
|
34212
34213
|
cooldownRemaining,
|
|
34214
|
+
focus,
|
|
34213
34215
|
handleSubmit,
|
|
34214
34216
|
maxRows: maxRowsContext,
|
|
34215
34217
|
minRows: minRowsContext,
|
|
@@ -34228,6 +34230,14 @@ var TextareaComposer = ({
|
|
|
34228
34230
|
textComposerStateSelector2
|
|
34229
34231
|
);
|
|
34230
34232
|
const { enabled } = useStateStore(messageComposer.configState, configStateSelector);
|
|
34233
|
+
const { quotedMessage } = useStateStore(
|
|
34234
|
+
messageComposer.state,
|
|
34235
|
+
messageComposerStateSelector2
|
|
34236
|
+
);
|
|
34237
|
+
const { attachments } = useStateStore(
|
|
34238
|
+
messageComposer.attachmentManager.state,
|
|
34239
|
+
attachmentManagerStateSelector
|
|
34240
|
+
);
|
|
34231
34241
|
const { isLoadingItems } = useStateStore(suggestions?.searchSource.state, searchSourceStateSelector2) ?? {};
|
|
34232
34242
|
const containerRef = (0, import_react246.useRef)(null);
|
|
34233
34243
|
const [focusedItemIndex, setFocusedItemIndex] = (0, import_react246.useState)(0);
|
|
@@ -34341,6 +34351,16 @@ var TextareaComposer = ({
|
|
|
34341
34351
|
setFocusedItemIndex(0);
|
|
34342
34352
|
}
|
|
34343
34353
|
}, [textComposer.suggestions]);
|
|
34354
|
+
(0, import_react246.useEffect)(() => {
|
|
34355
|
+
const textareaIsFocused = textareaRef.current?.matches(":focus");
|
|
34356
|
+
if (!textareaRef.current || textareaIsFocused || !focus) return;
|
|
34357
|
+
textareaRef.current.focus();
|
|
34358
|
+
}, [attachments, focus, quotedMessage, textareaRef]);
|
|
34359
|
+
(0, import_react246.useEffect)(() => {
|
|
34360
|
+
const textarea = textareaRef.current;
|
|
34361
|
+
if (!textarea) return;
|
|
34362
|
+
textarea.value = text7;
|
|
34363
|
+
}, [textareaRef, text7]);
|
|
34344
34364
|
return /* @__PURE__ */ import_react246.default.createElement(
|
|
34345
34365
|
"div",
|
|
34346
34366
|
{
|
|
@@ -34379,8 +34399,7 @@ var TextareaComposer = ({
|
|
|
34379
34399
|
placeholder: placeholder || t("Type your message"),
|
|
34380
34400
|
ref: (ref) => {
|
|
34381
34401
|
textareaRef.current = ref;
|
|
34382
|
-
}
|
|
34383
|
-
value: text7
|
|
34402
|
+
}
|
|
34384
34403
|
}
|
|
34385
34404
|
),
|
|
34386
34405
|
!isComposing && /* @__PURE__ */ import_react246.default.createElement(
|
|
@@ -34687,7 +34706,7 @@ var MessageInputProvider = (props) => {
|
|
|
34687
34706
|
);
|
|
34688
34707
|
(0, import_react252.useEffect)(() => {
|
|
34689
34708
|
const threadId = messageComposer.threadId;
|
|
34690
|
-
if (!threadId || !messageComposer.channel || !messageComposer.compositionIsEmpty)
|
|
34709
|
+
if (!threadId || !messageComposer.channel || !messageComposer.compositionIsEmpty || !messageComposer.config.drafts.enabled)
|
|
34691
34710
|
return;
|
|
34692
34711
|
messageComposer.channel.getDraft({ parent_id: threadId }).then(({ draft }) => {
|
|
34693
34712
|
if (draft) {
|
|
@@ -34753,7 +34772,8 @@ var EditMessageForm = () => {
|
|
|
34753
34772
|
{
|
|
34754
34773
|
className: "str-chat__edit-message-cancel",
|
|
34755
34774
|
"data-testid": "cancel-button",
|
|
34756
|
-
onClick: cancel
|
|
34775
|
+
onClick: cancel,
|
|
34776
|
+
type: "button"
|
|
34757
34777
|
},
|
|
34758
34778
|
t("Cancel")
|
|
34759
34779
|
), /* @__PURE__ */ import_react253.default.createElement(EditMessageFormSendButton, null))
|
|
@@ -34780,6 +34800,7 @@ var EditMessageModal = ({
|
|
|
34780
34800
|
MessageInput,
|
|
34781
34801
|
{
|
|
34782
34802
|
clearEditingState,
|
|
34803
|
+
focus: true,
|
|
34783
34804
|
hideSendButton: true,
|
|
34784
34805
|
Input: EditMessageInput,
|
|
34785
34806
|
...additionalMessageInputProps
|
|
@@ -34804,7 +34825,7 @@ var UploadFileInput = (0, import_react254.forwardRef)(function UploadFileInput2(
|
|
|
34804
34825
|
...props
|
|
34805
34826
|
}, ref) {
|
|
34806
34827
|
const { t } = useTranslationContext("UploadFileInput");
|
|
34807
|
-
const { cooldownRemaining } = useMessageInputContext();
|
|
34828
|
+
const { cooldownRemaining, textareaRef } = useMessageInputContext();
|
|
34808
34829
|
const messageComposer = useMessageComposer();
|
|
34809
34830
|
const { attachmentManager } = messageComposer;
|
|
34810
34831
|
const { isUploadEnabled } = useAttachmentManagerState();
|
|
@@ -34816,9 +34837,10 @@ var UploadFileInput = (0, import_react254.forwardRef)(function UploadFileInput2(
|
|
|
34816
34837
|
const onFileChange = (0, import_react254.useCallback)(
|
|
34817
34838
|
(files) => {
|
|
34818
34839
|
attachmentManager.uploadFiles(files);
|
|
34840
|
+
textareaRef.current?.focus();
|
|
34819
34841
|
onFileChangeCustom?.(files);
|
|
34820
34842
|
},
|
|
34821
|
-
[onFileChangeCustom, attachmentManager]
|
|
34843
|
+
[onFileChangeCustom, attachmentManager, textareaRef]
|
|
34822
34844
|
);
|
|
34823
34845
|
return /* @__PURE__ */ import_react254.default.createElement(
|
|
34824
34846
|
FileInput,
|
|
@@ -35129,15 +35151,19 @@ var GalleryContainer = ({
|
|
|
35129
35151
|
const { imageAttachmentSizeHandler } = useChannelStateContext();
|
|
35130
35152
|
const [attachmentConfigurations, setAttachmentConfigurations] = (0, import_react259.useState)([]);
|
|
35131
35153
|
(0, import_react259.useLayoutEffect)(() => {
|
|
35132
|
-
if (imageElements.current
|
|
35133
|
-
|
|
35134
|
-
|
|
35135
|
-
|
|
35136
|
-
|
|
35137
|
-
|
|
35138
|
-
|
|
35139
|
-
|
|
35140
|
-
|
|
35154
|
+
if (!imageElements.current || !imageAttachmentSizeHandler) return;
|
|
35155
|
+
const newConfigurations = [];
|
|
35156
|
+
const nonNullImageElements = imageElements.current.filter((e) => !!e);
|
|
35157
|
+
if (nonNullImageElements.length < imageElements.current.length) {
|
|
35158
|
+
imageElements.current = nonNullImageElements;
|
|
35159
|
+
}
|
|
35160
|
+
imageElements.current.forEach((element3, i) => {
|
|
35161
|
+
if (!element3) return;
|
|
35162
|
+
const config = imageAttachmentSizeHandler(attachment.images[i], element3);
|
|
35163
|
+
newConfigurations.push(config);
|
|
35164
|
+
});
|
|
35165
|
+
setAttachmentConfigurations(newConfigurations);
|
|
35166
|
+
}, [imageAttachmentSizeHandler, attachment]);
|
|
35141
35167
|
const images = attachment.images.map((image3, i) => ({
|
|
35142
35168
|
...image3,
|
|
35143
35169
|
previewUrl: attachmentConfigurations[i]?.url || "about:blank",
|
|
@@ -35343,9 +35369,9 @@ var getAttachmentType = (attachment) => {
|
|
|
35343
35369
|
// src/components/Channel/Channel.tsx
|
|
35344
35370
|
var import_react266 = __toESM(require("react"));
|
|
35345
35371
|
var import_clsx67 = __toESM(require("clsx"));
|
|
35346
|
-
var
|
|
35347
|
-
var
|
|
35348
|
-
var
|
|
35372
|
+
var import_lodash18 = __toESM(require("lodash.debounce"));
|
|
35373
|
+
var import_lodash19 = __toESM(require("lodash.defaultsdeep"));
|
|
35374
|
+
var import_lodash20 = __toESM(require("lodash.throttle"));
|
|
35349
35375
|
var import_stream_chat13 = require("stream-chat");
|
|
35350
35376
|
|
|
35351
35377
|
// src/components/Channel/channelState.ts
|
|
@@ -35943,7 +35969,7 @@ var ChannelInner = (props) => {
|
|
|
35943
35969
|
skipMessageDataMemoization
|
|
35944
35970
|
} = props;
|
|
35945
35971
|
const channelQueryOptions = (0, import_react266.useMemo)(
|
|
35946
|
-
() => (0,
|
|
35972
|
+
() => (0, import_lodash19.default)(propChannelQueryOptions, {
|
|
35947
35973
|
messages: { limit: DEFAULT_INITIAL_CHANNEL_PAGE_SIZE }
|
|
35948
35974
|
}),
|
|
35949
35975
|
[propChannelQueryOptions]
|
|
@@ -35978,7 +36004,7 @@ var ChannelInner = (props) => {
|
|
|
35978
36004
|
null
|
|
35979
36005
|
);
|
|
35980
36006
|
const channelCapabilitiesArray = channel.data?.own_capabilities;
|
|
35981
|
-
const throttledCopyStateFromChannel = (0,
|
|
36007
|
+
const throttledCopyStateFromChannel = (0, import_lodash20.default)(
|
|
35982
36008
|
() => dispatch({ channel, type: "copyStateFromChannelOnEvent" }),
|
|
35983
36009
|
500,
|
|
35984
36010
|
{
|
|
@@ -35987,14 +36013,14 @@ var ChannelInner = (props) => {
|
|
|
35987
36013
|
}
|
|
35988
36014
|
);
|
|
35989
36015
|
const setChannelUnreadUiState = (0, import_react266.useMemo)(
|
|
35990
|
-
() => (0,
|
|
36016
|
+
() => (0, import_lodash20.default)(_setChannelUnreadUiState, 200, {
|
|
35991
36017
|
leading: true,
|
|
35992
36018
|
trailing: false
|
|
35993
36019
|
}),
|
|
35994
36020
|
[]
|
|
35995
36021
|
);
|
|
35996
36022
|
const markRead = (0, import_react266.useMemo)(
|
|
35997
|
-
() => (0,
|
|
36023
|
+
() => (0, import_lodash20.default)(
|
|
35998
36024
|
async (options) => {
|
|
35999
36025
|
const { updateChannelUiUnreadState = true } = options ?? {};
|
|
36000
36026
|
if (channel.disconnected || !channelConfig?.read_events) {
|
|
@@ -36009,7 +36035,7 @@ var ChannelInner = (props) => {
|
|
|
36009
36035
|
);
|
|
36010
36036
|
} else {
|
|
36011
36037
|
const markReadResponse = await channel.markRead();
|
|
36012
|
-
if (updateChannelUiUnreadState && markReadResponse) {
|
|
36038
|
+
if (updateChannelUiUnreadState && markReadResponse?.event) {
|
|
36013
36039
|
_setChannelUnreadUiState({
|
|
36014
36040
|
last_read: lastRead.current,
|
|
36015
36041
|
last_read_message_id: markReadResponse.event.last_read_message_id,
|
|
@@ -36199,7 +36225,7 @@ var ChannelInner = (props) => {
|
|
|
36199
36225
|
[]
|
|
36200
36226
|
);
|
|
36201
36227
|
const loadMoreFinished = (0, import_react266.useCallback)(
|
|
36202
|
-
(0,
|
|
36228
|
+
(0, import_lodash18.default)(
|
|
36203
36229
|
(hasMore, messages) => {
|
|
36204
36230
|
if (!isMounted.current) return;
|
|
36205
36231
|
dispatch({ hasMore, messages, type: "loadMoreFinished" });
|
|
@@ -36520,7 +36546,7 @@ var ChannelInner = (props) => {
|
|
|
36520
36546
|
dispatch({ type: "closeThread" });
|
|
36521
36547
|
};
|
|
36522
36548
|
const loadMoreThreadFinished = (0, import_react266.useCallback)(
|
|
36523
|
-
(0,
|
|
36549
|
+
(0, import_lodash18.default)(
|
|
36524
36550
|
(threadHasMore, threadMessages) => {
|
|
36525
36551
|
dispatch({
|
|
36526
36552
|
threadHasMore,
|
|
@@ -36850,7 +36876,7 @@ var useChat = ({
|
|
|
36850
36876
|
};
|
|
36851
36877
|
(0, import_react269.useEffect)(() => {
|
|
36852
36878
|
if (!client) return;
|
|
36853
|
-
const version = "13.2.
|
|
36879
|
+
const version = "13.2.3";
|
|
36854
36880
|
const userAgent = client.getUserAgent();
|
|
36855
36881
|
if (!userAgent.includes("stream-chat-react")) {
|
|
36856
36882
|
client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);
|
|
@@ -37204,6 +37230,7 @@ var Window = import_react274.default.memo(UnMemoizedWindow);
|
|
|
37204
37230
|
MessageInputContext,
|
|
37205
37231
|
MessageInputContextProvider,
|
|
37206
37232
|
MessageInputFlat,
|
|
37233
|
+
MessageIsThreadReplyInChannelButtonIndicator,
|
|
37207
37234
|
MessageList,
|
|
37208
37235
|
MessageListContext,
|
|
37209
37236
|
MessageListContextProvider,
|