stream-chat-react 11.0.0-rc.1 → 11.0.0-rc.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/browser.full-bundle.js +9308 -12495
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.js +4 -3
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.js +10 -8
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +34 -24
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/Channel/Channel.d.ts +4 -11
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +13 -28
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +8 -8
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +24 -14
- package/dist/components/DateSeparator/DateSeparator.js +1 -1
- package/dist/components/Emojis/EmojiPicker.d.ts +10 -0
- package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -0
- package/dist/components/Emojis/EmojiPicker.js +57 -0
- package/dist/components/Emojis/index.cjs.js +89 -0
- package/dist/components/Emojis/index.d.ts +2 -0
- package/dist/components/Emojis/index.d.ts.map +1 -0
- package/dist/components/Emojis/index.js +1 -0
- package/dist/components/EventComponent/EventComponent.js +1 -1
- package/dist/components/Message/FixedHeightMessage.js +1 -1
- package/dist/components/Message/MessageText.js +2 -2
- package/dist/components/Message/index.d.ts +1 -0
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +1 -0
- package/dist/components/Message/renderText/Anchor.d.ts +4 -0
- package/dist/components/Message/renderText/Anchor.d.ts.map +1 -0
- package/dist/components/Message/renderText/Anchor.js +10 -0
- package/dist/components/Message/renderText/Emoji.d.ts +3 -0
- package/dist/components/Message/renderText/Emoji.d.ts.map +1 -0
- package/dist/components/Message/renderText/Emoji.js +5 -0
- package/dist/components/Message/renderText/Mention.d.ts +18 -0
- package/dist/components/Message/renderText/Mention.d.ts.map +1 -0
- package/dist/components/Message/renderText/Mention.js +5 -0
- package/dist/components/Message/renderText/index.d.ts +5 -0
- package/dist/components/Message/renderText/index.d.ts.map +1 -0
- package/dist/components/Message/renderText/index.js +3 -0
- package/dist/components/Message/renderText/regex.d.ts +5 -0
- package/dist/components/Message/renderText/regex.d.ts.map +1 -0
- package/dist/components/Message/renderText/regex.js +21 -0
- package/dist/components/Message/renderText/rehypePlugins.d.ts +7 -0
- package/dist/components/Message/renderText/rehypePlugins.d.ts.map +1 -0
- package/dist/components/Message/renderText/rehypePlugins.js +60 -0
- package/dist/components/Message/renderText/renderText.d.ts +21 -0
- package/dist/components/Message/renderText/renderText.d.ts.map +1 -0
- package/dist/components/Message/renderText/renderText.js +126 -0
- package/dist/components/Message/types.d.ts +1 -1
- package/dist/components/Message/types.d.ts.map +1 -1
- package/dist/components/Message/utils.d.ts +1 -0
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +8 -0
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +2 -3
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +4 -7
- package/dist/components/MessageInput/MessageInput.d.ts +17 -5
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInput.js +3 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +12 -27
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +8 -11
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +3 -9
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiTrigger.js +32 -12
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -19
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +3 -15
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -2
- package/dist/components/MessageInput/index.d.ts +0 -1
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +0 -1
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +1 -3
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +36 -6
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +39 -122
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +23 -0
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -0
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +70 -0
- package/dist/components/MessageList/hooks/MessageList/index.d.ts +5 -0
- package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/MessageList/index.js +4 -0
- package/dist/components/MessageList/hooks/{useEnrichedMessages.d.ts → MessageList/useEnrichedMessages.d.ts} +3 -3
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useEnrichedMessages.js → MessageList/useEnrichedMessages.js} +3 -3
- package/dist/components/MessageList/hooks/{useMessageListElements.d.ts → MessageList/useMessageListElements.d.ts} +4 -4
- package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useMessageListElements.js → MessageList/useMessageListElements.js} +9 -9
- package/dist/components/MessageList/hooks/{useMessageListScrollManager.d.ts → MessageList/useMessageListScrollManager.d.ts} +2 -2
- package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useMessageListScrollManager.js → MessageList/useMessageListScrollManager.js} +1 -1
- package/dist/components/MessageList/hooks/{useScrollLocationLogic.d.ts → MessageList/useScrollLocationLogic.d.ts} +2 -2
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +7 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.js +6 -0
- package/dist/components/MessageList/hooks/{useGiphyPreview.d.ts → VirtualizedMessageList/useGiphyPreview.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useGiphyPreview.js → VirtualizedMessageList/useGiphyPreview.js} +1 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +10 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +20 -0
- package/dist/components/MessageList/hooks/{useNewMessageNotification.d.ts → VirtualizedMessageList/useNewMessageNotification.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{usePrependMessagesCount.d.ts → VirtualizedMessageList/usePrependMessagesCount.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +12 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +28 -0
- package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.d.ts → VirtualizedMessageList/useShouldForceScrollToBottom.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/index.d.ts +7 -7
- package/dist/components/MessageList/hooks/index.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/index.js +7 -7
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +3 -1
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts +3 -2
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageContext.d.ts +1 -1
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +1 -7
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +0 -1
- package/dist/i18n/Streami18n.d.ts +0 -1
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +0 -1
- package/dist/i18n/en.json +0 -1
- package/dist/i18n/es.json +0 -1
- package/dist/i18n/fr.json +0 -1
- package/dist/i18n/hi.json +0 -1
- package/dist/i18n/it.json +0 -1
- package/dist/i18n/ja.json +0 -1
- package/dist/i18n/ko.json +0 -1
- package/dist/i18n/nl.json +0 -1
- package/dist/i18n/pt.json +0 -1
- package/dist/i18n/ru.json +0 -1
- package/dist/i18n/tr.json +0 -1
- package/dist/icons-0801b1e9.js +3133 -0
- package/dist/index.cjs.js +1470 -4591
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index_UMD.d.ts +7 -0
- package/dist/index_UMD.d.ts.map +1 -0
- package/dist/index_UMD.js +8 -0
- package/dist/utils/generateRandomId.d.ts +6 -0
- package/dist/utils/generateRandomId.d.ts.map +1 -0
- package/dist/utils/generateRandomId.js +5 -0
- package/dist/utils/getWholeChar.d.ts +2 -0
- package/dist/utils/getWholeChar.d.ts.map +1 -0
- package/dist/utils/getWholeChar.js +26 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +35 -8
- package/dist/components/Channel/emojiData.d.ts +0 -15
- package/dist/components/Channel/emojiData.d.ts.map +0 -1
- package/dist/components/Channel/emojiData.js +0 -23
- package/dist/components/MessageInput/EmojiPicker.d.ts +0 -6
- package/dist/components/MessageInput/EmojiPicker.d.ts.map +0 -1
- package/dist/components/MessageInput/EmojiPicker.js +0 -23
- package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts.map +0 -1
- package/dist/components/MessageInput/hooks/useEmojiIndex.js +0 -13
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +0 -11
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +0 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.js +0 -68
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +0 -1
- package/dist/context/DefaultEmoji.d.ts +0 -3
- package/dist/context/DefaultEmoji.d.ts.map +0 -1
- package/dist/context/DefaultEmoji.js +0 -3
- package/dist/context/DefaultEmojiPicker.d.ts +0 -3
- package/dist/context/DefaultEmojiPicker.d.ts.map +0 -1
- package/dist/context/DefaultEmojiPicker.js +0 -3
- package/dist/context/EmojiContext.d.ts +0 -48
- package/dist/context/EmojiContext.d.ts.map +0 -1
- package/dist/context/EmojiContext.js +0 -39
- package/dist/index.cjs.js.map +0 -1
- package/dist/stream-emoji.json +0 -1
- package/dist/utils.d.ts +0 -42
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -253
- /package/dist/components/MessageList/hooks/{useScrollLocationLogic.js → MessageList/useScrollLocationLogic.js} +0 -0
- /package/dist/components/MessageList/hooks/{useNewMessageNotification.js → VirtualizedMessageList/useNewMessageNotification.js} +0 -0
- /package/dist/components/MessageList/hooks/{usePrependMessagesCount.js → VirtualizedMessageList/usePrependMessagesCount.js} +0 -0
- /package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.js → VirtualizedMessageList/useShouldForceScrollToBottom.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
@@ -2,7 +2,6 @@ export * from './AttachmentPreviewList';
|
|
|
2
2
|
export * from './CooldownTimer';
|
|
3
3
|
export * from './DefaultTriggerProvider';
|
|
4
4
|
export * from './EditMessageForm';
|
|
5
|
-
export * from './EmojiPicker';
|
|
6
5
|
export * from './hooks';
|
|
7
6
|
export * from './icons';
|
|
8
7
|
export * from './MessageInput';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA0MnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iIAAiI;IACjI,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { __assign, __awaiter, __generator, __rest } from "tslib";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { useEnrichedMessages } from './hooks/
|
|
4
|
-
import { useMessageListElements } from './hooks/useMessageListElements';
|
|
5
|
-
import { useScrollLocationLogic } from './hooks/useScrollLocationLogic';
|
|
3
|
+
import { useEnrichedMessages, useMessageListElements, useScrollLocationLogic, } from './hooks/MessageList';
|
|
6
4
|
import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
|
|
7
5
|
import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
|
|
8
6
|
import { useChannelActionContext, } from '../../context/ChannelActionContext';
|
|
@@ -1,19 +1,42 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ScrollSeekConfiguration, ScrollSeekPlaceholderProps, VirtuosoProps } from 'react-virtuoso';
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
|
+
import { ScrollSeekConfiguration, ScrollSeekPlaceholderProps, VirtuosoHandle, VirtuosoProps } from 'react-virtuoso';
|
|
3
3
|
import { GroupStyle } from './utils';
|
|
4
4
|
import { MessageProps, MessageUIComponentProps } from '../Message';
|
|
5
5
|
import { ChannelActionContextValue } from '../../context/ChannelActionContext';
|
|
6
6
|
import { StreamMessage } from '../../context/ChannelStateContext';
|
|
7
|
+
import { ChatContextValue } from '../../context/ChatContext';
|
|
8
|
+
import { ComponentContextValue } from '../../context/ComponentContext';
|
|
9
|
+
import type { UserResponse } from 'stream-chat';
|
|
7
10
|
import type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
|
|
11
|
+
declare type VirtualizedMessageListPropsForContext = 'additionalMessageInputProps' | 'closeReactionSelectorOnClick' | 'customMessageActions' | 'customMessageRenderer' | 'head' | 'loadingMore' | 'Message' | 'messageActions' | 'shouldGroupByUser' | 'threadList';
|
|
12
|
+
/**
|
|
13
|
+
* Context object provided to some Virtuoso props that are functions (components rendered by Virtuoso and other functions)
|
|
14
|
+
*/
|
|
15
|
+
export declare type VirtuosoContext<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Required<Pick<ComponentContextValue<StreamChatGenerics>, 'DateSeparator' | 'MessageSystem'>> & Pick<VirtualizedMessageListProps<StreamChatGenerics>, VirtualizedMessageListPropsForContext> & Pick<ChatContextValue<StreamChatGenerics>, 'customClasses'> & {
|
|
16
|
+
/** Latest received message id in the current channel */
|
|
17
|
+
lastReceivedMessageId: string | null | undefined;
|
|
18
|
+
/** Object mapping between the message ID and a string representing the position in the group of a sequence of messages posted by the same user. */
|
|
19
|
+
messageGroupStyles: Record<string, GroupStyle>;
|
|
20
|
+
/** Number of messages prepended before the first page of messages. This is needed to calculate the virtual position in the virtual list. */
|
|
21
|
+
numItemsPrepended: number;
|
|
22
|
+
/** Mapping of message ID of own messages to the array of users, who read the given message */
|
|
23
|
+
ownMessagesReadByOthers: Record<string, UserResponse<StreamChatGenerics>[]>;
|
|
24
|
+
/** The original message list enriched with date separators, omitted deleted messages or giphy previews. */
|
|
25
|
+
processedMessages: StreamMessage<StreamChatGenerics>[];
|
|
26
|
+
/** Instance of VirtuosoHandle object providing the API to navigate in the virtualized list by various scroll actions. */
|
|
27
|
+
virtuosoRef: RefObject<VirtuosoHandle>;
|
|
28
|
+
};
|
|
8
29
|
declare type PropsDrilledToMessage = 'additionalMessageInputProps' | 'customMessageActions' | 'messageActions';
|
|
9
30
|
export declare type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Partial<Pick<MessageProps<StreamChatGenerics>, PropsDrilledToMessage>> & {
|
|
10
31
|
/** Additional props to be passed the underlying [`react-virtuoso` virtualized list dependency](https://virtuoso.dev/virtuoso-api-reference/) */
|
|
11
|
-
additionalVirtuosoProps?: VirtuosoProps<UnknownType,
|
|
32
|
+
additionalVirtuosoProps?: VirtuosoProps<UnknownType, VirtuosoContext<StreamChatGenerics>>;
|
|
12
33
|
/** If true, picking a reaction from the `ReactionSelector` component will close the selector */
|
|
13
34
|
closeReactionSelectorOnClick?: boolean;
|
|
14
35
|
/** Custom render function, if passed, certain UI props are ignored */
|
|
15
36
|
customMessageRenderer?: (messageList: StreamMessage<StreamChatGenerics>[], index: number) => React.ReactElement;
|
|
16
|
-
/**
|
|
37
|
+
/** @deprecated Use additionalVirtuosoProps.defaultItemHeight instead. Will be removed with next major release - `v11.0.0`.
|
|
38
|
+
* If set, the default item height is used for the calculation of the total list height. Use if you expect messages with a lot of height variance
|
|
39
|
+
* */
|
|
17
40
|
defaultItemHeight?: number;
|
|
18
41
|
/** Disables the injection of date separator components in MessageList, defaults to `true` */
|
|
19
42
|
disableDateSeparator?: boolean;
|
|
@@ -23,7 +46,10 @@ export declare type VirtualizedMessageListProps<StreamChatGenerics extends Defau
|
|
|
23
46
|
hasMore?: boolean;
|
|
24
47
|
/** Whether or not the list has newer items to load */
|
|
25
48
|
hasMoreNewer?: boolean;
|
|
26
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use additionalVirtuosoProps.components.Header to override default component rendered above the list ove messages.
|
|
51
|
+
* Element to be rendered at the top of the thread message list. By default, these are the Message and ThreadStart components
|
|
52
|
+
*/
|
|
27
53
|
head?: React.ReactElement;
|
|
28
54
|
/** Hides the `MessageDeleted` components from the list, defaults to `false` */
|
|
29
55
|
hideDeletedMessages?: boolean;
|
|
@@ -45,11 +71,15 @@ export declare type VirtualizedMessageListProps<StreamChatGenerics extends Defau
|
|
|
45
71
|
messageLimit?: number;
|
|
46
72
|
/** Optional prop to override the messages available from [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/) */
|
|
47
73
|
messages?: StreamMessage<StreamChatGenerics>[];
|
|
48
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Use additionalVirtuosoProps.overscan instead. Will be removed with next major release - `v11.0.0`.
|
|
76
|
+
* The amount of extra content the list should render in addition to what's necessary to fill in the viewport
|
|
77
|
+
*/
|
|
49
78
|
overscan?: number;
|
|
50
79
|
/** Keep track of read receipts for each message sent by the user. When disabled, only the last own message delivery / read status is rendered. */
|
|
51
80
|
returnAllReadData?: boolean;
|
|
52
81
|
/**
|
|
82
|
+
* @deprecated Pass additionalVirtuosoProps.scrollSeekConfiguration and specify the placeholder in additionalVirtuosoProps.components.ScrollSeekPlaceholder instead. Will be removed with next major release - `v11.0.0`.
|
|
53
83
|
* Performance improvement by showing placeholders if user scrolls fast through list.
|
|
54
84
|
* it can be used like this:
|
|
55
85
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
-
import
|
|
3
|
-
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
1
|
+
import { __assign, __awaiter, __generator, __rest } from "tslib";
|
|
2
|
+
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
3
|
import { Virtuoso, } from 'react-virtuoso';
|
|
5
4
|
import { GiphyPreviewMessage as DefaultGiphyPreviewMessage } from './GiphyPreviewMessage';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { useLastReadData } from './hooks';
|
|
6
|
+
import { useGiphyPreview, useMessageSetKey, useNewMessageNotification, usePrependedMessagesCount, useScrollToBottomOnNewMessage, useShouldForceScrollToBottom, } from './hooks/VirtualizedMessageList';
|
|
8
7
|
import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
|
|
9
8
|
import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
|
|
10
9
|
import { MessageListMainPanel } from './MessageListMainPanel';
|
|
11
10
|
import { getGroupStyles, getLastReceived, processMessages } from './utils';
|
|
12
|
-
import {
|
|
13
|
-
import { DateSeparator as DefaultDateSeparator } from '../DateSeparator
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading/LoadingIndicator';
|
|
17
|
-
import { Message, MessageSimple } from '../Message';
|
|
11
|
+
import { MessageSimple } from '../Message';
|
|
12
|
+
import { DateSeparator as DefaultDateSeparator } from '../DateSeparator';
|
|
13
|
+
import { EventComponent } from '../EventComponent';
|
|
14
|
+
import { calculateFirstItemIndex, calculateItemIndex, EmptyPlaceholder, Footer, Header, Item, messageRenderer, } from './VirtualizedMessageListComponents';
|
|
18
15
|
import { useChannelActionContext, } from '../../context/ChannelActionContext';
|
|
19
16
|
import { useChannelStateContext, } from '../../context/ChannelStateContext';
|
|
20
17
|
import { useChatContext } from '../../context/ChatContext';
|
|
21
18
|
import { useComponentContext } from '../../context/ComponentContext';
|
|
22
|
-
import { isDate } from '../../context/TranslationContext';
|
|
23
|
-
var PREPEND_OFFSET = Math.pow(10, 7);
|
|
24
19
|
function captureResizeObserverExceededError(e) {
|
|
25
20
|
if (e.message === 'ResizeObserver loop completed with undelivered notifications.' ||
|
|
26
21
|
e.message === 'ResizeObserver loop limit exceeded') {
|
|
@@ -51,19 +46,21 @@ function calculateInitialTopMostItemIndex(messages, highlightedMessageId) {
|
|
|
51
46
|
return messages.length - 1;
|
|
52
47
|
}
|
|
53
48
|
var VirtualizedMessageListWithContext = function (props) {
|
|
54
|
-
var
|
|
49
|
+
var additionalMessageInputProps = props.additionalMessageInputProps, _a = props.additionalVirtuosoProps, additionalVirtuosoProps = _a === void 0 ? {} : _a, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? true : _b, groupStyles = props.groupStyles, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, head = props.head, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _e = props.messageLimit, messageLimit = _e === void 0 ? 100 : _e, messages = props.messages, notifications = props.notifications,
|
|
55
50
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
56
|
-
|
|
51
|
+
_f = props.overscan,
|
|
57
52
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
58
|
-
overscan =
|
|
53
|
+
overscan = _f === void 0 ? 0 : _f, read = props.read, _g = props.returnAllReadData, returnAllReadData = _g === void 0 ? false : _g, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _h = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _h === void 0 ? false : _h, _j = props.separateGiphyPreview, separateGiphyPreview = _j === void 0 ? false : _j, _k = props.shouldGroupByUser, shouldGroupByUser = _k === void 0 ? false : _k, _l = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _l === void 0 ? 'smooth' : _l, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
|
|
54
|
+
var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
|
|
59
55
|
// Stops errors generated from react-virtuoso to bubble up
|
|
60
56
|
// to Sentry or other tracking tools.
|
|
61
57
|
useCaptureResizeObserverExceededError();
|
|
62
|
-
var
|
|
63
|
-
var
|
|
58
|
+
var _m = useComponentContext('VirtualizedMessageList'), _o = _m.DateSeparator, DateSeparator = _o === void 0 ? DefaultDateSeparator : _o, _p = _m.GiphyPreviewMessage, GiphyPreviewMessage = _p === void 0 ? DefaultGiphyPreviewMessage : _p, _q = _m.MessageListNotifications, MessageListNotifications = _q === void 0 ? DefaultMessageListNotifications : _q, _r = _m.MessageNotification, MessageNotification = _r === void 0 ? DefaultMessageNotification : _r, _s = _m.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _m.VirtualMessage, MessageUIComponentFromContext = _t === void 0 ? MessageSimple : _t;
|
|
59
|
+
var MessageUIComponent = MessageUIComponentFromProps || MessageUIComponentFromContext;
|
|
60
|
+
var _u = useChatContext('VirtualizedMessageList'), client = _u.client, customClasses = _u.customClasses;
|
|
61
|
+
var virtuoso = useRef(null);
|
|
64
62
|
var lastRead = useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
65
|
-
var
|
|
66
|
-
var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
|
|
63
|
+
var _v = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _v.giphyPreviewMessage, setGiphyPreviewMessage = _v.setGiphyPreviewMessage;
|
|
67
64
|
var processedMessages = useMemo(function () {
|
|
68
65
|
if (typeof messages === 'undefined') {
|
|
69
66
|
return [];
|
|
@@ -112,9 +109,8 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
112
109
|
}, {});
|
|
113
110
|
},
|
|
114
111
|
// processedMessages were incorrectly rebuilt with a new object identity at some point, hence the .length usage
|
|
115
|
-
[processedMessages.length, shouldGroupByUser]);
|
|
116
|
-
var
|
|
117
|
-
var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
|
|
112
|
+
[processedMessages.length, shouldGroupByUser, groupStylesFn]);
|
|
113
|
+
var _w = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _w.atBottom, isMessageListScrolledToBottom = _w.isMessageListScrolledToBottom, newMessagesNotification = _w.newMessagesNotification, setIsMessageListScrolledToBottom = _w.setIsMessageListScrolledToBottom, setNewMessagesNotification = _w.setNewMessagesNotification;
|
|
118
114
|
var scrollToBottom = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
119
115
|
return __generator(this, function (_a) {
|
|
120
116
|
switch (_a.label) {
|
|
@@ -141,44 +137,9 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
141
137
|
hasMoreNewer,
|
|
142
138
|
jumpToLatestMessage,
|
|
143
139
|
]);
|
|
144
|
-
|
|
145
|
-
var resetNewMessagesReceivedInBackground = useCallback(function () {
|
|
146
|
-
setNewMessagesReceivedInBackground(false);
|
|
147
|
-
}, []);
|
|
148
|
-
useEffect(function () {
|
|
149
|
-
setNewMessagesReceivedInBackground(true);
|
|
150
|
-
}, [messages]);
|
|
151
|
-
var scrollToBottomIfConfigured = useCallback(function (event) {
|
|
152
|
-
if (scrollToLatestMessageOnFocus && event.target === window) {
|
|
153
|
-
if (newMessagesReceivedInBackground) {
|
|
154
|
-
setTimeout(scrollToBottom, 100);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}, [scrollToLatestMessageOnFocus, scrollToBottom, newMessagesReceivedInBackground]);
|
|
158
|
-
useEffect(function () {
|
|
159
|
-
if (typeof window !== 'undefined') {
|
|
160
|
-
window.addEventListener('focus', scrollToBottomIfConfigured);
|
|
161
|
-
window.addEventListener('blur', resetNewMessagesReceivedInBackground);
|
|
162
|
-
}
|
|
163
|
-
return function () {
|
|
164
|
-
window.removeEventListener('focus', scrollToBottomIfConfigured);
|
|
165
|
-
window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
|
|
166
|
-
};
|
|
167
|
-
}, [scrollToBottomIfConfigured]);
|
|
140
|
+
useScrollToBottomOnNewMessage({ messages: messages, scrollToBottom: scrollToBottom, scrollToLatestMessageOnFocus: scrollToLatestMessageOnFocus });
|
|
168
141
|
var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
|
|
169
|
-
|
|
170
|
-
* Logic to update the key of the virtuoso component when the list jumps to a new location.
|
|
171
|
-
*/
|
|
172
|
-
var _0 = useState(+new Date()), messageSetKey = _0[0], setMessageSetKey = _0[1];
|
|
173
|
-
var firstMessageId = useRef();
|
|
174
|
-
useEffect(function () {
|
|
175
|
-
var _a;
|
|
176
|
-
var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
|
|
177
|
-
if (!continuousSet) {
|
|
178
|
-
setMessageSetKey(+new Date());
|
|
179
|
-
}
|
|
180
|
-
firstMessageId.current = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
181
|
-
}, [messages]);
|
|
142
|
+
var messageSetKey = useMessageSetKey({ messages: messages }).messageSetKey;
|
|
182
143
|
var shouldForceScrollToBottom = useShouldForceScrollToBottom(processedMessages, client.userID);
|
|
183
144
|
var followOutput = function (isAtBottom) {
|
|
184
145
|
if (hasMoreNewer || suppressAutoscroll) {
|
|
@@ -190,63 +151,10 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
190
151
|
// a message from another user has been received - don't scroll to bottom unless already there
|
|
191
152
|
return isAtBottom ? stickToBottomScrollBehavior : false;
|
|
192
153
|
};
|
|
193
|
-
var
|
|
194
|
-
var
|
|
195
|
-
|
|
196
|
-
var streamMessageIndex = virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
|
|
197
|
-
// use custom renderer supplied by client if present and skip the rest
|
|
198
|
-
if (customMessageRenderer) {
|
|
199
|
-
return customMessageRenderer(messageList, streamMessageIndex);
|
|
200
|
-
}
|
|
201
|
-
var message = messageList[streamMessageIndex];
|
|
202
|
-
if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
|
|
203
|
-
return React.createElement(DateSeparator, { date: message.date, unread: message.unread });
|
|
204
|
-
}
|
|
205
|
-
if (!message)
|
|
206
|
-
return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
|
|
207
|
-
if (message.type === 'system') {
|
|
208
|
-
return React.createElement(MessageSystem, { message: message });
|
|
209
|
-
}
|
|
210
|
-
var groupedByUser = shouldGroupByUser &&
|
|
211
|
-
streamMessageIndex > 0 &&
|
|
212
|
-
((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
|
|
213
|
-
var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
|
|
214
|
-
var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
|
|
215
|
-
return (React.createElement(Message, { additionalMessageInputProps: props.additionalMessageInputProps, autoscrollToBottom: (_j = virtuoso.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: props.messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
|
|
216
|
-
}, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
|
|
217
|
-
var Item = useMemo(function () {
|
|
218
|
-
// using 'display: inline-block'
|
|
219
|
-
// traps CSS margins of the item elements, preventing incorrect item measurements
|
|
220
|
-
var Item = function (props) {
|
|
221
|
-
var _a;
|
|
222
|
-
var _b;
|
|
223
|
-
var context = props.context;
|
|
224
|
-
var streamMessageIndex = props['data-item-index'] + context.numItemsPrepended - PREPEND_OFFSET;
|
|
225
|
-
var message = context.processedMessages[streamMessageIndex];
|
|
226
|
-
var groupStyles = context.messageGroupStyles[message.id] || '';
|
|
227
|
-
return (React.createElement("div", __assign({}, props, { className: ((_b = context === null || context === void 0 ? void 0 : context.customClasses) === null || _b === void 0 ? void 0 : _b.virtualMessage) ||
|
|
228
|
-
clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_a = {},
|
|
229
|
-
_a["str-chat__li--".concat(groupStyles)] = groupStyles,
|
|
230
|
-
_a)) })));
|
|
231
|
-
};
|
|
232
|
-
return Item;
|
|
154
|
+
var computeItemKey = useCallback(function (index, _, _a) {
|
|
155
|
+
var numItemsPrepended = _a.numItemsPrepended, processedMessages = _a.processedMessages;
|
|
156
|
+
return processedMessages[calculateItemIndex(index, numItemsPrepended)].id;
|
|
233
157
|
}, []);
|
|
234
|
-
var virtuosoComponents = useMemo(function () {
|
|
235
|
-
var EmptyPlaceholder = function () { return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: threadList ? 'thread' : 'message' })))); };
|
|
236
|
-
var Header = function () {
|
|
237
|
-
return loadingMore ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
|
|
238
|
-
React.createElement(LoadingIndicator, { size: 20 }))) : (head || null);
|
|
239
|
-
};
|
|
240
|
-
var Footer = function () {
|
|
241
|
-
return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : React.createElement(React.Fragment, null);
|
|
242
|
-
};
|
|
243
|
-
return {
|
|
244
|
-
EmptyPlaceholder: EmptyPlaceholder,
|
|
245
|
-
Footer: Footer,
|
|
246
|
-
Header: Header,
|
|
247
|
-
Item: Item,
|
|
248
|
-
};
|
|
249
|
-
}, [loadingMore, head, Item]);
|
|
250
158
|
var atBottomStateChange = function (isAtBottom) {
|
|
251
159
|
atBottom.current = isAtBottom;
|
|
252
160
|
setIsMessageListScrolledToBottom(isAtBottom);
|
|
@@ -278,18 +186,27 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
278
186
|
return (React.createElement(React.Fragment, null,
|
|
279
187
|
React.createElement(MessageListMainPanel, null,
|
|
280
188
|
React.createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
|
|
281
|
-
React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components:
|
|
282
|
-
|
|
283
|
-
|
|
189
|
+
React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components: __assign({ EmptyPlaceholder: EmptyPlaceholder, Footer: Footer, Header: Header, Item: Item }, virtuosoComponentsFromProps), computeItemKey: computeItemKey, context: {
|
|
190
|
+
additionalMessageInputProps: additionalMessageInputProps,
|
|
191
|
+
closeReactionSelectorOnClick: closeReactionSelectorOnClick,
|
|
284
192
|
customClasses: customClasses,
|
|
193
|
+
customMessageActions: customMessageActions,
|
|
194
|
+
customMessageRenderer: customMessageRenderer,
|
|
195
|
+
DateSeparator: DateSeparator,
|
|
196
|
+
head: head,
|
|
285
197
|
lastReceivedMessageId: lastReceivedMessageId,
|
|
198
|
+
loadingMore: loadingMore,
|
|
199
|
+
Message: MessageUIComponent,
|
|
200
|
+
messageActions: messageActions,
|
|
286
201
|
messageGroupStyles: messageGroupStyles,
|
|
202
|
+
MessageSystem: MessageSystem,
|
|
287
203
|
numItemsPrepended: numItemsPrepended,
|
|
288
204
|
ownMessagesReadByOthers: ownMessagesReadByOthers,
|
|
289
205
|
processedMessages: processedMessages,
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
206
|
+
shouldGroupByUser: shouldGroupByUser,
|
|
207
|
+
threadList: threadList,
|
|
208
|
+
virtuosoRef: virtuoso,
|
|
209
|
+
}, endReached: endReached, firstItemIndex: calculateFirstItemIndex(numItemsPrepended), followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: messageRenderer, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, overridingVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
|
|
293
210
|
React.createElement(MessageListNotifications, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList }),
|
|
294
211
|
giphyPreviewMessage && React.createElement(GiphyPreviewMessage, { message: giphyPreviewMessage })));
|
|
295
212
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ItemProps } from 'react-virtuoso';
|
|
4
|
+
import { VirtuosoContext } from './VirtualizedMessageList';
|
|
5
|
+
export declare function calculateItemIndex(virtuosoIndex: number, numItemsPrepended: number): number;
|
|
6
|
+
export declare function calculateFirstItemIndex(numItemsPrepended: number): number;
|
|
7
|
+
declare type CommonVirtuosoComponentProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
8
|
+
context?: VirtuosoContext<StreamChatGenerics>;
|
|
9
|
+
};
|
|
10
|
+
export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
11
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
12
|
+
}, "style" | "children"> & {
|
|
13
|
+
'data-index': number;
|
|
14
|
+
'data-item-index': number;
|
|
15
|
+
'data-item-group-index'?: number | undefined;
|
|
16
|
+
'data-known-size': number;
|
|
17
|
+
} & CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
|
|
18
|
+
export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element | null;
|
|
19
|
+
export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
|
|
20
|
+
export declare const Footer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => JSX.Element | null;
|
|
21
|
+
export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => JSX.Element | null;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=VirtualizedMessageListComponents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualizedMessageListComponents.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageListComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAElF;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,UAEhE;AAED,aAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAGF,eAAO,MAAM,IAAI;;;;;;;oEAyBhB,CAAC;AACF,eAAO,MAAM,MAAM,0KAgBlB,CAAC;AACF,eAAO,MAAM,gBAAgB,mKAe5B,CAAC;AACF,eAAO,MAAM,MAAM,4GAKlB,CAAC;AACF,eAAO,MAAM,eAAe,oGAGX,MAAM,SACd,WAAW,6EAgEnB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';
|
|
3
|
+
import { isDate, useComponentContext } from '../../context';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
|
|
6
|
+
import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
|
|
7
|
+
import { Message } from '../Message';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
var PREPEND_OFFSET = Math.pow(10, 7);
|
|
10
|
+
export function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
|
|
11
|
+
return virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
|
|
12
|
+
}
|
|
13
|
+
export function calculateFirstItemIndex(numItemsPrepended) {
|
|
14
|
+
return PREPEND_OFFSET - numItemsPrepended;
|
|
15
|
+
}
|
|
16
|
+
// using 'display: inline-block'
|
|
17
|
+
// traps CSS margins of the item elements, preventing incorrect item measurements
|
|
18
|
+
export var Item = function (_a) {
|
|
19
|
+
var _b;
|
|
20
|
+
var _c;
|
|
21
|
+
var context = _a.context, props = __rest(_a, ["context"]);
|
|
22
|
+
if (!context)
|
|
23
|
+
return React.createElement(React.Fragment, null);
|
|
24
|
+
var message = context.processedMessages[calculateItemIndex(props['data-item-index'], context.numItemsPrepended)];
|
|
25
|
+
var groupStyles = context.messageGroupStyles[message.id];
|
|
26
|
+
return (React.createElement("div", __assign({}, props, { className: ((_c = context === null || context === void 0 ? void 0 : context.customClasses) === null || _c === void 0 ? void 0 : _c.virtualMessage) ||
|
|
27
|
+
clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_b = {},
|
|
28
|
+
_b["str-chat__li--".concat(groupStyles)] = groupStyles,
|
|
29
|
+
_b)) })));
|
|
30
|
+
};
|
|
31
|
+
export var Header = function (_a) {
|
|
32
|
+
var context = _a.context;
|
|
33
|
+
var _b = useComponentContext('VirtualizedMessageListHeader').LoadingIndicator, LoadingIndicator = _b === void 0 ? DefaultLoadingIndicator : _b;
|
|
34
|
+
if (!(context === null || context === void 0 ? void 0 : context.loadingMore))
|
|
35
|
+
return null;
|
|
36
|
+
return LoadingIndicator ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
|
|
37
|
+
React.createElement(LoadingIndicator, { size: 20 }))) : ((context === null || context === void 0 ? void 0 : context.head) || null);
|
|
38
|
+
};
|
|
39
|
+
export var EmptyPlaceholder = function (_a) {
|
|
40
|
+
var context = _a.context;
|
|
41
|
+
var _b = useComponentContext('VirtualizedMessageList').EmptyStateIndicator, EmptyStateIndicator = _b === void 0 ? DefaultEmptyStateIndicator : _b;
|
|
42
|
+
return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: (context === null || context === void 0 ? void 0 : context.threadList) ? 'thread' : 'message' }))));
|
|
43
|
+
};
|
|
44
|
+
export var Footer = function () {
|
|
45
|
+
var TypingIndicator = useComponentContext('VirtualizedMessageList').TypingIndicator;
|
|
46
|
+
return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : null;
|
|
47
|
+
};
|
|
48
|
+
export var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
|
|
49
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
50
|
+
var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, virtuosoRef = virtuosoContext.virtuosoRef;
|
|
51
|
+
var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
|
|
52
|
+
if (customMessageRenderer) {
|
|
53
|
+
return customMessageRenderer(messageList, streamMessageIndex);
|
|
54
|
+
}
|
|
55
|
+
var message = messageList[streamMessageIndex];
|
|
56
|
+
if (!message)
|
|
57
|
+
return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
|
|
58
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
|
|
59
|
+
return DateSeparator ? React.createElement(DateSeparator, { date: message.date, unread: message.unread }) : null;
|
|
60
|
+
}
|
|
61
|
+
if (message.type === 'system') {
|
|
62
|
+
return MessageSystem ? React.createElement(MessageSystem, { message: message }) : null;
|
|
63
|
+
}
|
|
64
|
+
var groupedByUser = shouldGroupByUser &&
|
|
65
|
+
streamMessageIndex > 0 &&
|
|
66
|
+
((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
|
|
67
|
+
var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
|
|
68
|
+
var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
|
|
69
|
+
return (React.createElement(Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
|
|
70
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { GroupStyle } from '
|
|
1
|
+
import { GroupStyle } from '../../utils';
|
|
2
2
|
import type { Channel } from 'stream-chat';
|
|
3
|
-
import type { StreamMessage } from '
|
|
4
|
-
import type { DefaultStreamChatGenerics } from '
|
|
3
|
+
import type { StreamMessage } from '../../../../context/ChannelStateContext';
|
|
4
|
+
import type { DefaultStreamChatGenerics } from '../../../../types/types';
|
|
5
5
|
export declare const useEnrichedMessages: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(args: {
|
|
6
6
|
channel: Channel<StreamChatGenerics>;
|
|
7
7
|
disableDateSeparator: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEnrichedMessages.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,UAAU,EAAgC,MAAM,aAAa,CAAC;AAKvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;0BAIR,OAAO;yBACR,OAAO;6BACH,OAAO;;mBAEjB,OAAO;mLAKL,OAAO,KACnB,UAAU;;;;;CAsDhB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import { getGroupStyles, insertIntro, processMessages } from '
|
|
3
|
-
import { useChatContext } from '
|
|
4
|
-
import { useComponentContext } from '
|
|
2
|
+
import { getGroupStyles, insertIntro, processMessages } from '../../utils';
|
|
3
|
+
import { useChatContext } from '../../../../context/ChatContext';
|
|
4
|
+
import { useComponentContext } from '../../../../context/ComponentContext';
|
|
5
5
|
export var useEnrichedMessages = function (args) {
|
|
6
6
|
var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser;
|
|
7
7
|
var client = useChatContext('useEnrichedMessages').client;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { GroupStyle } from '
|
|
2
|
+
import { GroupStyle } from '../../utils';
|
|
3
3
|
import type { UserResponse } from 'stream-chat';
|
|
4
|
-
import type { MessageProps } from '
|
|
5
|
-
import type { StreamMessage } from '
|
|
6
|
-
import type { DefaultStreamChatGenerics } from '
|
|
4
|
+
import type { MessageProps } from '../../../Message/types';
|
|
5
|
+
import type { StreamMessage } from '../../../../context/ChannelStateContext';
|
|
6
|
+
import type { DefaultStreamChatGenerics } from '../../../../types/types';
|
|
7
7
|
declare type MessagePropsToOmit = 'channel' | 'groupStyles' | 'initialMessage' | 'lastReceivedId' | 'message' | 'readBy' | 'threadList';
|
|
8
8
|
declare type UseMessageListElementsProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
9
9
|
enrichedMessages: StreamMessage<StreamChatGenerics>[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMessageListElements.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListElements.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAmB,UAAU,EAAE,MAAM,aAAa,CAAC;AAW1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,aAAK,kBAAkB,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,aAAK,2BAA2B,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,eAAO,MAAM,sBAAsB,iKAkGlC,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
/* eslint-disable no-continue */
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
|
-
import { useLastReadData } from '
|
|
5
|
-
import { getLastReceived } from '
|
|
6
|
-
import { CUSTOM_MESSAGE_TYPE } from '
|
|
7
|
-
import { DateSeparator as DefaultDateSeparator } from '
|
|
8
|
-
import { EventComponent } from '
|
|
9
|
-
import { Message } from '
|
|
10
|
-
import { useChatContext } from '
|
|
11
|
-
import { useComponentContext } from '
|
|
12
|
-
import { isDate } from '
|
|
4
|
+
import { useLastReadData } from '../useLastReadData';
|
|
5
|
+
import { getLastReceived } from '../../utils';
|
|
6
|
+
import { CUSTOM_MESSAGE_TYPE } from '../../../../constants/messageTypes';
|
|
7
|
+
import { DateSeparator as DefaultDateSeparator } from '../../../DateSeparator/DateSeparator';
|
|
8
|
+
import { EventComponent } from '../../../EventComponent/EventComponent';
|
|
9
|
+
import { Message } from '../../../Message';
|
|
10
|
+
import { useChatContext } from '../../../../context/ChatContext';
|
|
11
|
+
import { useComponentContext } from '../../../../context/ComponentContext';
|
|
12
|
+
import { isDate } from '../../../../context/TranslationContext';
|
|
13
13
|
export var useMessageListElements = function (props) {
|
|
14
14
|
var enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, read = props.read, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
|
|
15
15
|
var _a = useChatContext('useMessageListElements'), client = _a.client, customClasses = _a.customClasses;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { StreamMessage } from '
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '
|
|
1
|
+
import type { StreamMessage } from '../../../../context/ChannelStateContext';
|
|
2
|
+
import type { DefaultStreamChatGenerics } from '../../../../types/types';
|
|
3
3
|
export declare type ContainerMeasures = {
|
|
4
4
|
offsetHeight: number;
|
|
5
5
|
scrollHeight: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAGF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAmErC,MAAM,UAG/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useLayoutEffect, useRef } from 'react';
|
|
2
|
-
import { useChatContext } from '
|
|
2
|
+
import { useChatContext } from '../../../../context/ChatContext';
|
|
3
3
|
// FIXME: change this generic name to something like useAdjustScrollPositionToListSize
|
|
4
4
|
export function useMessageListScrollManager(params) {
|
|
5
5
|
var loadMoreScrollThreshold = params.loadMoreScrollThreshold, onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
|