stream-chat-react-native-core 5.0.0-offline-support.7 → 5.0.0-offline-support.10
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/lib/commonjs/components/Attachment/Gallery.js +17 -17
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/{GallaryImage.js → GalleryImage.js} +3 -3
- package/lib/{module/components/Attachment/GallaryImage.js.map → commonjs/components/Attachment/GalleryImage.js.map} +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +19 -18
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +18 -13
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/handleEventToSyncDB.js +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/handleEventToSyncDB.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +15 -8
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +37 -30
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +5 -3
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -6
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +20 -16
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -0
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +2 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +36 -18
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +3 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +5 -4
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +8 -6
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js +538 -0
- package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js.map +1 -0
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +147 -34
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +4 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/{module/components/ImageGallery/components → commonjs/components/ProgressControl}/ProgressControl.js +37 -24
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -0
- package/lib/commonjs/components/Reply/Reply.js +21 -13
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/index.js +26 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +7 -4
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -2
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +14 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/icons/Pause.js +2 -2
- package/lib/commonjs/icons/Pause.js.map +1 -1
- package/lib/commonjs/native.js +13 -5
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +17 -17
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/{GallaryImage.js → GalleryImage.js} +3 -3
- package/lib/{commonjs/components/Attachment/GallaryImage.js.map → module/components/Attachment/GalleryImage.js.map} +1 -1
- package/lib/module/components/Attachment/Giphy.js +1 -1
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +19 -18
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js +1 -1
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +18 -13
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/handleEventToSyncDB.js +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/handleEventToSyncDB.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +15 -8
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +37 -30
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +5 -3
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -6
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +20 -16
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -0
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +2 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +36 -18
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +3 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js +5 -4
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/module/components/Message/Message.js +8 -6
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js +538 -0
- package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js.map +1 -0
- package/lib/module/components/MessageInput/FileUploadPreview.js +147 -34
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +4 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/{commonjs/components/ImageGallery/components → module/components/ProgressControl}/ProgressControl.js +37 -24
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -0
- package/lib/module/components/Reply/Reply.js +21 -13
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/index.js +26 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +7 -4
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -2
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +14 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/icons/Pause.js +2 -2
- package/lib/module/icons/Pause.js.map +1 -1
- package/lib/module/native.js +13 -5
- package/lib/module/native.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/{GallaryImage.d.ts → GalleryImage.d.ts} +0 -0
- package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +4 -2
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/__tests__/AnimatedVideoGallery.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGallery.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryFooter.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryGrid.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryGridHandle.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryHeader.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryOverlay.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +2 -3
- package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +2 -1
- package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +2 -3
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/AudioAttachmentUploadPreview.d.ts +26 -0
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
- package/lib/typescript/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.d.ts +1 -0
- package/lib/typescript/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.d.ts +1 -0
- package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +11 -0
- package/lib/typescript/components/index.d.ts +2 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +7 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +13 -0
- package/lib/typescript/native.d.ts +59 -2
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +1 -2
- package/src/components/Attachment/{GallaryImage.tsx → GalleryImage.tsx} +1 -1
- package/src/components/Attachment/Giphy.tsx +1 -1
- package/src/components/Attachment/VideoThumbnail.tsx +15 -6
- package/src/components/Attachment/__tests__/Gallery.test.js +6 -6
- package/src/components/Attachment/__tests__/Giphy.test.js +4 -4
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Avatar/GroupAvatar.tsx +1 -1
- package/src/components/Channel/Channel.tsx +3 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -0
- package/src/components/ChannelList/hooks/listeners/handleEventToSyncDB.ts +1 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +1 -1
- package/src/components/ChannelPreview/ChannelPreview.tsx +12 -10
- package/src/components/ImageGallery/ImageGallery.tsx +21 -11
- package/src/components/ImageGallery/__tests__/AnimatedVideoGallery.test.tsx +241 -0
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +192 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +190 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +98 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryGridHandle.test.tsx +79 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +172 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryOverlay.test.tsx +94 -0
- package/src/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.tsx +84 -0
- package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +3 -0
- package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +11 -3
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +11 -4
- package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +1 -1
- package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx +6 -1
- package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +22 -9
- package/src/components/ImageGallery/components/ImageGrid.tsx +19 -17
- package/src/components/ImageGallery/components/ImageGridHandle.tsx +4 -1
- package/src/components/Message/Message.tsx +2 -1
- package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +9 -3
- package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -1
- package/src/components/MessageInput/AudioAttachmentUploadPreview.tsx +362 -0
- package/src/components/MessageInput/FileUploadPreview.tsx +165 -60
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +199 -0
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +215 -0
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +64 -0
- package/src/components/{ImageGallery/components → ProgressControl}/ProgressControl.tsx +37 -19
- package/src/components/Reply/Reply.tsx +14 -2
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +4 -4
- package/src/components/index.ts +3 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +20 -7
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +5 -1
- package/src/contexts/themeContext/utils/theme.ts +23 -0
- package/src/icons/Pause.tsx +2 -2
- package/src/native.ts +67 -7
- package/src/version.json +1 -1
- package/lib/commonjs/components/ImageGallery/components/ProgressControl.js.map +0 -1
- package/lib/module/components/ImageGallery/components/ProgressControl.js.map +0 -1
- package/lib/typescript/components/ImageGallery/components/ProgressControl.d.ts +0 -5
|
@@ -8,6 +8,7 @@ var _react = require("react");
|
|
|
8
8
|
var useCreateInputMessageInputContext = function useCreateInputMessageInputContext(_ref) {
|
|
9
9
|
var additionalTextInputProps = _ref.additionalTextInputProps,
|
|
10
10
|
AttachButton = _ref.AttachButton,
|
|
11
|
+
AudioAttachmentUploadPreview = _ref.AudioAttachmentUploadPreview,
|
|
11
12
|
autoCompleteSuggestionsLimit = _ref.autoCompleteSuggestionsLimit,
|
|
12
13
|
autoCompleteTriggerSettings = _ref.autoCompleteTriggerSettings,
|
|
13
14
|
channelId = _ref.channelId,
|
|
@@ -53,6 +54,7 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
|
|
|
53
54
|
return {
|
|
54
55
|
additionalTextInputProps: additionalTextInputProps,
|
|
55
56
|
AttachButton: AttachButton,
|
|
57
|
+
AudioAttachmentUploadPreview: AudioAttachmentUploadPreview,
|
|
56
58
|
autoCompleteSuggestionsLimit: autoCompleteSuggestionsLimit,
|
|
57
59
|
autoCompleteTriggerSettings: autoCompleteTriggerSettings,
|
|
58
60
|
clearEditingState: clearEditingState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":";;;;;AAAA;;AAKO,IAAMA,iCAAiC,GAAG,SAApCA,iCAAoC,
|
|
1
|
+
{"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","AudioAttachmentUploadPreview","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingExists = !!editing;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n editingExists,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"]}
|
|
@@ -41,7 +41,7 @@ var handleEventToSyncDB = function handleEventToSyncDB(event, flush) {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (type === 'message.new') {
|
|
44
|
-
if (event.message && !event.message.parent_id) {
|
|
44
|
+
if (event.message && (!event.message.parent_id || event.message.show_in_channel)) {
|
|
45
45
|
return (0, _upsertMessages.upsertMessages)({
|
|
46
46
|
flush: flush,
|
|
47
47
|
messages: [event.message]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["handleEventToSyncDB.ts"],"names":["handleEventToSyncDB","event","flush","type","user","id","cid","reads","last_read","received_at","unread_messages","message","parent_id","messages","reaction","channel","queriedChannels","channels","length","isLatestMessagesSet","isLatestMessageSet","member","members"],"mappings":";;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAeC,KAAf,EAAmC;AACpE,MAAQC,IAAR,GAAiBF,KAAjB,CAAQE,IAAR;;AAEA,MAAIA,IAAI,KAAK,cAAb,EAA6B;AAAA;;AAC3B,QAAI,eAAAF,KAAK,CAACG,IAAN,yBAAYC,EAAZ,IAAkBJ,KAAK,CAACK,GAA5B,EAAiC;AAC/B,aAAO,8BAAY;AACjBA,QAAAA,GAAG,EAAEL,KAAK,CAACK,GADM;AAEjBJ,QAAAA,KAAK,EAALA,KAFiB;AAGjBK,QAAAA,KAAK,EAAE,CACL;AACEC,UAAAA,SAAS,EAAEP,KAAK,CAACQ,WADnB;AAEEC,UAAAA,eAAe,EAAE,CAFnB;AAGEN,UAAAA,IAAI,EAAEH,KAAK,CAACG;AAHd,SADK;AAHU,OAAZ,CAAP;AAWD;AACF;;AAED,MAAID,IAAI,KAAK,aAAb,EAA4B;AAC1B,QAAIF,KAAK,CAACU,OAAN,
|
|
1
|
+
{"version":3,"sources":["handleEventToSyncDB.ts"],"names":["handleEventToSyncDB","event","flush","type","user","id","cid","reads","last_read","received_at","unread_messages","message","parent_id","show_in_channel","messages","reaction","channel","queriedChannels","channels","length","isLatestMessagesSet","isLatestMessageSet","member","members"],"mappings":"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","sourcesContent":["import type { Event } from 'stream-chat';\n\nimport { deleteChannel } from '../../../../store/apis/deleteChannel';\nimport { deleteMember } from '../../../../store/apis/deleteMember';\nimport { deleteMessagesForChannel } from '../../../../store/apis/deleteMessagesForChannel';\nimport { updateMessage } from '../../../../store/apis/updateMessage';\nimport { upsertChannelData } from '../../../../store/apis/upsertChannelData';\nimport { upsertChannels } from '../../../../store/apis/upsertChannels';\nimport { upsertMembers } from '../../../../store/apis/upsertMembers';\nimport { upsertMessages } from '../../../../store/apis/upsertMessages';\nimport { upsertReads } from '../../../../store/apis/upsertReads';\n\nexport const handleEventToSyncDB = (event: Event, flush?: boolean) => {\n const { type } = event;\n\n if (type === 'message.read') {\n if (event.user?.id && event.cid) {\n return upsertReads({\n cid: event.cid,\n flush,\n reads: [\n {\n last_read: event.received_at as string,\n unread_messages: 0,\n user: event.user,\n },\n ],\n });\n }\n }\n\n if (type === 'message.new') {\n if (event.message && (!event.message.parent_id || event.message.show_in_channel)) {\n return upsertMessages({\n flush,\n messages: [event.message],\n });\n }\n }\n\n if (type === 'message.updated' || type === 'message.deleted') {\n if (event.message && !event.message.parent_id) {\n // Update only if it exists, otherwise event could be related\n // to a message which is not in database.\n return updateMessage({\n flush,\n message: event.message,\n });\n }\n }\n\n if (type === 'reaction.updated') {\n if (event.message && event.reaction) {\n // We update the entire message to make sure we also update\n // reaction_counts.\n return updateMessage({\n flush,\n message: event.message,\n });\n }\n }\n\n if (type === 'reaction.new' || type === 'reaction.deleted') {\n if (event.message && !event.message.parent_id) {\n // Here we are relying on the fact message.latest_reactions always includes\n // the new reaction. So we first delete all the existing reactions and populate\n // the reactions table with message.latest_reactions\n return updateMessage({\n flush,\n message: event.message,\n });\n }\n }\n\n if (\n type === 'channel.updated' ||\n type === 'channel.visible' ||\n type === 'notification.added_to_channel' ||\n type === 'notification.message_new'\n ) {\n if (event.channel) {\n return upsertChannelData({\n channel: event.channel,\n flush,\n });\n }\n }\n\n if (\n type === 'channel.hidden' ||\n type === 'channel.deleted' ||\n type === 'notification.removed_from_channel'\n ) {\n if (event.channel) {\n return deleteChannel({\n cid: event.channel.cid,\n flush,\n });\n }\n }\n\n if (type === 'channel.truncated') {\n if (event.channel) {\n return deleteMessagesForChannel({\n cid: event.channel.cid,\n flush,\n });\n }\n }\n\n if (type === 'channels.queried') {\n if (event.queriedChannels?.channels?.length) {\n return upsertChannels({\n channels: event.queriedChannels?.channels,\n flush,\n isLatestMessagesSet: event.queriedChannels?.isLatestMessageSet,\n });\n }\n }\n\n if (type === 'member.added' || type === 'member.updated') {\n if (event.member && event.cid) {\n return upsertMembers({\n cid: event.cid,\n flush,\n members: [event.member],\n });\n }\n }\n\n if (type === 'member.removed') {\n if (event.member && event.cid) {\n return deleteMember({\n cid: event.cid,\n flush,\n member: event.member,\n });\n }\n }\n\n return [];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["usePaginatedChannels.ts"],"names":["waitSeconds","seconds","Promise","resolve","setTimeout","ONE_SECOND_IN_MS","DEFAULT_OPTIONS","message_limit","MAX_NUMBER_OF_RETRIES","RETRY_INTERVAL_IN_MS","usePaginatedChannels","enableOfflineSupport","filters","options","sort","client","channels","setChannels","staticChannelsActive","setStaticChannelsActive","activeChannels","error","setError","hasNextPage","setHasNextPage","lastRefresh","Date","now","isQueryingRef","activeQueryType","setActiveQueryType","isMountedRef","filtersRef","sortRef","activeRequestId","queryChannels","queryType","retryCount","current","hasUpdatedData","JSON","stringify","some","Boolean","isQueryStale","currentRequestId","undefined","newOptions","limit","MAX_QUERY_CHANNELS_LIMIT","offset","length","skipInitialization","channelQueryResponse","newChannels","console","warn","Error","loadNextPage","refreshList","reloadList","filterStr","sortStr","user","id","channelsFromDB","currentUserId","hydrateActiveChannels","staticState","e","loadingChannels","loadingNextPage","refreshing"],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort } from 'stream-chat';\n\nimport { useActiveChannelsRefContext } from '../../../contexts/activeChannelsRefContext/ActiveChannelsRefContext';\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\n\nimport { getChannels } from '../../../store/apis/getChannels';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { ONE_SECOND_IN_MS } from '../../../utils/date';\nimport { MAX_QUERY_CHANNELS_LIMIT } from '../utils';\n\nconst waitSeconds = (seconds: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, seconds * ONE_SECOND_IN_MS);\n });\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n enableOfflineSupport: boolean;\n filters: ChannelFilters<StreamChatGenerics>;\n options: ChannelOptions;\n sort: ChannelSort<StreamChatGenerics>;\n };\n\nconst DEFAULT_OPTIONS = {\n message_limit: 10,\n};\n\nconst MAX_NUMBER_OF_RETRIES = 3;\nconst RETRY_INTERVAL_IN_MS = 5000;\n\ntype QueryType = 'queryLocalDB' | 'reload' | 'refresh' | 'loadChannels';\n\nexport type QueryChannels = (queryType?: QueryType, retryCount?: number) => Promise<void>;\n\nexport const usePaginatedChannels = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n enableOfflineSupport,\n filters = {},\n options = DEFAULT_OPTIONS,\n sort = {},\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const [channels, setChannels] = useState<Channel<StreamChatGenerics>[]>([]);\n const [staticChannelsActive, setStaticChannelsActive] = useState<boolean>(true);\n const activeChannels = useActiveChannelsRefContext();\n\n const [error, setError] = useState<Error>();\n const [hasNextPage, setHasNextPage] = useState(true);\n const lastRefresh = useRef(Date.now());\n const isQueryingRef = useRef(false);\n const [activeQueryType, setActiveQueryType] = useState<QueryType | null>('queryLocalDB');\n const isMountedRef = useIsMountedRef();\n const filtersRef = useRef<typeof filters | null>(null);\n const sortRef = useRef<typeof sort | null>(null);\n const activeRequestId = useRef<number>(0);\n\n const queryChannels: QueryChannels = async (\n queryType: QueryType = 'loadChannels',\n retryCount = 0,\n ): Promise<void> => {\n if (!client || !isMountedRef.current) return;\n\n const hasUpdatedData =\n queryType === 'loadChannels' ||\n queryType === 'refresh' ||\n [\n JSON.stringify(filtersRef.current) !== JSON.stringify(filters),\n JSON.stringify(sortRef.current) !== JSON.stringify(sort),\n ].some(Boolean);\n\n const isQueryStale = () => !isMountedRef || activeRequestId.current !== currentRequestId;\n\n /**\n * We don't need to make another call to query channels if we don't\n * have new data for the query to include\n * */\n if (!hasUpdatedData) {\n if (activeQueryType === null) return;\n }\n\n filtersRef.current = filters;\n sortRef.current = sort;\n isQueryingRef.current = true;\n setError(undefined);\n activeRequestId.current++;\n const currentRequestId = activeRequestId.current;\n setActiveQueryType(queryType);\n\n const newOptions = {\n limit: options?.limit ?? MAX_QUERY_CHANNELS_LIMIT,\n offset: queryType === 'loadChannels' && !staticChannelsActive ? channels.length : 0,\n ...options,\n };\n\n try {\n const channelQueryResponse = await client.queryChannels(filters, sort, newOptions, {\n skipInitialization: activeChannels.current,\n });\n\n if (isQueryStale() || !isMountedRef.current) {\n return;\n }\n const newChannels =\n queryType === 'loadChannels' && !staticChannelsActive\n ? [...channels, ...channelQueryResponse]\n : channelQueryResponse;\n\n setChannels(newChannels);\n setStaticChannelsActive(false);\n setHasNextPage(channelQueryResponse.length >= newOptions.limit);\n setError(undefined);\n isQueryingRef.current = false;\n } catch (err: unknown) {\n isQueryingRef.current = false;\n await waitSeconds(2);\n\n if (isQueryStale()) {\n return;\n }\n\n // querying.current check is needed in order to make sure the next query call doesnt flick an error\n // state and then succeed (reconnect case)\n if (retryCount === MAX_NUMBER_OF_RETRIES && !isQueryingRef.current) {\n setActiveQueryType(null);\n console.warn(err);\n\n setError(\n new Error(\n `Maximum number of retries reached in queryChannels. Last error message is: ${err}`,\n ),\n );\n return;\n }\n\n return queryChannels(queryType, retryCount + 1);\n }\n\n setActiveQueryType(null);\n };\n\n const loadNextPage = hasNextPage ? queryChannels : undefined;\n\n const refreshList = () => {\n const now = Date.now();\n // Only allow pull-to-refresh 5 seconds after last successful refresh.\n if (now - lastRefresh.current < RETRY_INTERVAL_IN_MS && error === undefined) {\n return;\n }\n\n lastRefresh.current = Date.now();\n return queryChannels('refresh');\n };\n\n const reloadList = () => queryChannels('reload');\n\n /**\n * Equality check using stringified filters/sort ensure that we don't make un-necessary queryChannels api calls\n * for the scenario:\n *\n * <ChannelList\n * filters={{\n * members: { $in: ['vishal'] }\n * }}\n * ...\n * />\n *\n * Here we have passed filters as inline object, which means on every re-render of\n * parent component, ChannelList will receive new object reference (even though value is same), which\n * in return will trigger useEffect. To avoid this, we can add a value check.\n */\n const filterStr = useMemo(() => JSON.stringify(filters), [filters]);\n const sortStr = useMemo(() => JSON.stringify(sort), [sort]);\n\n useEffect(() => {\n if (client?.user?.id) {\n if (enableOfflineSupport) {\n try {\n const channelsFromDB = getChannels({ currentUserId: client.user.id, filters, sort });\n setChannels(\n client.hydrateActiveChannels(channelsFromDB, {\n staticState: true,\n }),\n );\n } catch (e) {\n console.warn('Failed to get channels from database: ', e);\n }\n }\n\n reloadList();\n }\n }, [filterStr, sortStr, client]);\n\n return {\n channels,\n error,\n hasNextPage,\n loadingChannels:\n activeQueryType === 'queryLocalDB'\n ? true\n : activeQueryType === 'reload' && channels.length === 0,\n loadingNextPage: activeQueryType === 'loadChannels',\n loadNextPage,\n refreshing: activeQueryType === 'refresh',\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["usePaginatedChannels.ts"],"names":["waitSeconds","seconds","Promise","resolve","setTimeout","ONE_SECOND_IN_MS","DEFAULT_OPTIONS","message_limit","MAX_NUMBER_OF_RETRIES","RETRY_INTERVAL_IN_MS","usePaginatedChannels","enableOfflineSupport","filters","options","sort","client","channels","setChannels","staticChannelsActive","setStaticChannelsActive","activeChannels","error","setError","hasNextPage","setHasNextPage","lastRefresh","Date","now","isQueryingRef","activeQueryType","setActiveQueryType","isMountedRef","filtersRef","sortRef","activeRequestId","queryChannels","queryType","retryCount","current","hasUpdatedData","JSON","stringify","some","Boolean","isQueryStale","currentRequestId","undefined","newOptions","limit","MAX_QUERY_CHANNELS_LIMIT","offset","length","skipInitialization","channelQueryResponse","newChannels","console","warn","Error","loadNextPage","refreshList","reloadList","filterStr","sortStr","user","id","channelsFromDB","currentUserId","hydrateActiveChannels","staticState","e","loadingChannels","loadingNextPage","refreshing"],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort } from 'stream-chat';\n\nimport { useActiveChannelsRefContext } from '../../../contexts/activeChannelsRefContext/ActiveChannelsRefContext';\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\n\nimport { getChannels } from '../../../store/apis/getChannels';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { ONE_SECOND_IN_MS } from '../../../utils/date';\nimport { MAX_QUERY_CHANNELS_LIMIT } from '../utils';\n\nconst waitSeconds = (seconds: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, seconds * ONE_SECOND_IN_MS);\n });\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n enableOfflineSupport: boolean;\n filters: ChannelFilters<StreamChatGenerics>;\n options: ChannelOptions;\n sort: ChannelSort<StreamChatGenerics>;\n };\n\nconst DEFAULT_OPTIONS = {\n message_limit: 10,\n};\n\nconst MAX_NUMBER_OF_RETRIES = 3;\nconst RETRY_INTERVAL_IN_MS = 5000;\n\ntype QueryType = 'queryLocalDB' | 'reload' | 'refresh' | 'loadChannels';\n\nexport type QueryChannels = (queryType?: QueryType, retryCount?: number) => Promise<void>;\n\nexport const usePaginatedChannels = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n enableOfflineSupport,\n filters = {},\n options = DEFAULT_OPTIONS,\n sort = {},\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const [channels, setChannels] = useState<Channel<StreamChatGenerics>[]>([]);\n const [staticChannelsActive, setStaticChannelsActive] = useState<boolean>(true);\n const activeChannels = useActiveChannelsRefContext();\n\n const [error, setError] = useState<Error>();\n const [hasNextPage, setHasNextPage] = useState(true);\n const lastRefresh = useRef(Date.now());\n const isQueryingRef = useRef(false);\n const [activeQueryType, setActiveQueryType] = useState<QueryType | null>('queryLocalDB');\n const isMountedRef = useIsMountedRef();\n const filtersRef = useRef<typeof filters | null>(null);\n const sortRef = useRef<typeof sort | null>(null);\n const activeRequestId = useRef<number>(0);\n\n const queryChannels: QueryChannels = async (\n queryType: QueryType = 'loadChannels',\n retryCount = 0,\n ): Promise<void> => {\n if (!client || !isMountedRef.current) return;\n\n const hasUpdatedData =\n queryType === 'loadChannels' ||\n queryType === 'refresh' ||\n [\n JSON.stringify(filtersRef.current) !== JSON.stringify(filters),\n JSON.stringify(sortRef.current) !== JSON.stringify(sort),\n ].some(Boolean);\n\n const isQueryStale = () => !isMountedRef || activeRequestId.current !== currentRequestId;\n\n /**\n * We don't need to make another call to query channels if we don't\n * have new data for the query to include\n * */\n if (!hasUpdatedData) {\n if (activeQueryType === null) return;\n }\n\n filtersRef.current = filters;\n sortRef.current = sort;\n isQueryingRef.current = true;\n setError(undefined);\n activeRequestId.current++;\n const currentRequestId = activeRequestId.current;\n setActiveQueryType(queryType);\n\n const newOptions = {\n limit: options?.limit ?? MAX_QUERY_CHANNELS_LIMIT,\n offset: queryType === 'loadChannels' && !staticChannelsActive ? channels.length : 0,\n ...options,\n };\n\n try {\n const channelQueryResponse = await client.queryChannels(filters, sort, newOptions, {\n skipInitialization: activeChannels.current,\n });\n\n if (isQueryStale() || !isMountedRef.current) {\n return;\n }\n const newChannels =\n queryType === 'loadChannels' && !staticChannelsActive\n ? [...channels, ...channelQueryResponse]\n : channelQueryResponse;\n\n setChannels(newChannels);\n setStaticChannelsActive(false);\n setHasNextPage(channelQueryResponse.length >= newOptions.limit);\n setError(undefined);\n isQueryingRef.current = false;\n } catch (err: unknown) {\n isQueryingRef.current = false;\n await waitSeconds(2);\n\n if (isQueryStale()) {\n return;\n }\n\n // querying.current check is needed in order to make sure the next query call doesnt flick an error\n // state and then succeed (reconnect case)\n if (retryCount === MAX_NUMBER_OF_RETRIES && !isQueryingRef.current) {\n setActiveQueryType(null);\n console.warn(err);\n\n setError(\n new Error(\n `Maximum number of retries reached in queryChannels. Last error message is: ${err}`,\n ),\n );\n return;\n }\n\n return queryChannels(queryType, retryCount + 1);\n }\n\n setActiveQueryType(null);\n };\n\n const loadNextPage = hasNextPage ? queryChannels : undefined;\n\n const refreshList = () => {\n const now = Date.now();\n // Only allow pull-to-refresh 5 seconds after last successful refresh.\n if (now - lastRefresh.current < RETRY_INTERVAL_IN_MS && error === undefined) {\n return;\n }\n\n lastRefresh.current = Date.now();\n return queryChannels('refresh');\n };\n\n const reloadList = () => queryChannels('reload');\n\n /**\n * Equality check using stringified filters/sort ensure that we don't make un-necessary queryChannels api calls\n * for the scenario:\n *\n * <ChannelList\n * filters={{\n * members: { $in: ['vishal'] }\n * }}\n * ...\n * />\n *\n * Here we have passed filters as inline object, which means on every re-render of\n * parent component, ChannelList will receive new object reference (even though value is same), which\n * in return will trigger useEffect. To avoid this, we can add a value check.\n */\n const filterStr = useMemo(() => JSON.stringify(filters), [filters]);\n const sortStr = useMemo(() => JSON.stringify(sort), [sort]);\n\n useEffect(() => {\n if (client?.user?.id) {\n if (enableOfflineSupport) {\n try {\n const channelsFromDB = getChannels({ currentUserId: client.user.id, filters, sort });\n setChannels(\n client.hydrateActiveChannels(channelsFromDB, {\n staticState: true,\n }),\n );\n } catch (e) {\n console.warn('Failed to get channels from database: ', e);\n }\n }\n\n reloadList();\n }\n }, [filterStr, sortStr]);\n\n return {\n channels,\n error,\n hasNextPage,\n loadingChannels:\n activeQueryType === 'queryLocalDB'\n ? true\n : activeQueryType === 'reload' && channels.length === 0,\n loadingNextPage: activeQueryType === 'loadChannels',\n loadNextPage,\n refreshing: activeQueryType === 'refresh',\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n };\n};\n"]}
|
|
@@ -65,19 +65,26 @@ var ChannelPreviewWithContext = function ChannelPreviewWithContext(props) {
|
|
|
65
65
|
}
|
|
66
66
|
}, [channelLastMessageString]);
|
|
67
67
|
(0, _react.useEffect)(function () {
|
|
68
|
-
var
|
|
69
|
-
|
|
68
|
+
var handleNewMessageEvent = function handleNewMessageEvent(event) {
|
|
69
|
+
var message = event.message;
|
|
70
|
+
|
|
71
|
+
if (message && (!message.parent_id || message.show_in_channel)) {
|
|
70
72
|
setLastMessage(event.message);
|
|
73
|
+
setUnread(channel.countUnread());
|
|
71
74
|
}
|
|
75
|
+
};
|
|
72
76
|
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
|
|
78
|
+
var _event$message;
|
|
79
|
+
|
|
80
|
+
if (((_event$message = event.message) == null ? void 0 : _event$message.id) === (lastMessage == null ? void 0 : lastMessage.id)) {
|
|
81
|
+
setLastMessage(event.message);
|
|
75
82
|
}
|
|
76
83
|
};
|
|
77
84
|
|
|
78
|
-
var listeners = [channel.on('message.new',
|
|
85
|
+
var listeners = [channel.on('message.new', handleNewMessageEvent), channel.on('message.updated', handleUpdatedOrDeletedMessage), channel.on('message.deleted', handleUpdatedOrDeletedMessage)];
|
|
79
86
|
return function () {
|
|
80
|
-
listeners.forEach(function (l) {
|
|
87
|
+
return listeners.forEach(function (l) {
|
|
81
88
|
return l.unsubscribe();
|
|
82
89
|
});
|
|
83
90
|
};
|
|
@@ -107,7 +114,7 @@ var ChannelPreviewWithContext = function ChannelPreviewWithContext(props) {
|
|
|
107
114
|
__self: _this,
|
|
108
115
|
__source: {
|
|
109
116
|
fileName: _jsxFileName,
|
|
110
|
-
lineNumber:
|
|
117
|
+
lineNumber: 108,
|
|
111
118
|
columnNumber: 10
|
|
112
119
|
}
|
|
113
120
|
});
|
|
@@ -127,7 +134,7 @@ var ChannelPreview = function ChannelPreview(props) {
|
|
|
127
134
|
__self: _this,
|
|
128
135
|
__source: {
|
|
129
136
|
fileName: _jsxFileName,
|
|
130
|
-
lineNumber:
|
|
137
|
+
lineNumber: 124,
|
|
131
138
|
columnNumber: 10
|
|
132
139
|
}
|
|
133
140
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChannelPreview.tsx"],"names":["ChannelPreviewWithContext","props","channel","client","Preview","state","messages","length","lastMessage","setLastMessage","translatedLastMessage","forceUpdate","setForceUpdate","countUnread","unread","setUnread","latestMessagePreview","channelLastMessage","channelLastMessageString","id","updated_at","newUnreadCount","
|
|
1
|
+
{"version":3,"sources":["ChannelPreview.tsx"],"names":["ChannelPreviewWithContext","props","channel","client","Preview","state","messages","length","lastMessage","setLastMessage","translatedLastMessage","forceUpdate","setForceUpdate","countUnread","unread","setUnread","latestMessagePreview","channelLastMessage","channelLastMessageString","id","updated_at","newUnreadCount","handleNewMessageEvent","event","message","parent_id","show_in_channel","handleUpdatedOrDeletedMessage","listeners","on","forEach","l","unsubscribe","handleReadEvent","user","userID","prev","listener","ChannelPreview"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelState, Event, MessageResponse } from 'stream-chat';\n\nimport { useLatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTranslatedMessage } from '../../hooks/useTranslatedMessage';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nexport type ChannelPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ChannelsContextValue<StreamChatGenerics>, 'Preview'> & {\n /**\n * The previewed channel\n */\n channel: Channel<StreamChatGenerics>;\n };\n\n/**\n * This component manages state for the ChannelPreviewMessenger UI component and receives\n * all props from the ChannelListMessenger component.\n */\nconst ChannelPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { channel, client, Preview } = props;\n\n const [lastMessage, setLastMessage] = useState<\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>\n | undefined\n >(channel.state.messages[channel.state.messages.length - 1]);\n\n const translatedLastMessage = useTranslatedMessage<StreamChatGenerics>(\n lastMessage || ({} as MessageResponse<StreamChatGenerics>),\n );\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const [unread, setUnread] = useState(channel.countUnread());\n\n const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, translatedLastMessage);\n\n const channelLastMessage = channel.lastMessage();\n const channelLastMessageString = `${channelLastMessage?.id}${channelLastMessage?.updated_at}`;\n\n useEffect(() => {\n if (\n channelLastMessage &&\n (channelLastMessage.id !== lastMessage?.id ||\n channelLastMessage.updated_at !== lastMessage?.updated_at)\n ) {\n setLastMessage(channelLastMessage);\n }\n\n const newUnreadCount = channel.countUnread();\n\n if (newUnreadCount !== unread) {\n setUnread(newUnreadCount);\n }\n }, [channelLastMessageString]);\n\n useEffect(() => {\n const handleNewMessageEvent = (event: Event<StreamChatGenerics>) => {\n const message = event.message;\n if (message && (!message.parent_id || message.show_in_channel)) {\n setLastMessage(event.message);\n setUnread(channel.countUnread());\n }\n };\n\n const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {\n if (event.message?.id === lastMessage?.id) {\n setLastMessage(event.message);\n }\n };\n\n const listeners = [\n channel.on('message.new', handleNewMessageEvent),\n channel.on('message.updated', handleUpdatedOrDeletedMessage),\n channel.on('message.deleted', handleUpdatedOrDeletedMessage),\n ];\n\n return () => listeners.forEach((l) => l.unsubscribe());\n }, []);\n\n useEffect(() => {\n const handleReadEvent = (event: Event<StreamChatGenerics>) => {\n if (event.user?.id === client.userID) {\n setUnread(0);\n } else if (event.user?.id) {\n setForceUpdate((prev) => prev + 1);\n }\n };\n\n const listener = channel.on('message.read', handleReadEvent);\n return () => listener.unsubscribe();\n }, []);\n\n return <Preview channel={channel} latestMessagePreview={latestMessagePreview} unread={unread} />;\n};\n\nexport type ChannelPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>> &\n Pick<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>;\n\nexport const ChannelPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewProps<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const { Preview } = useChannelsContext<StreamChatGenerics>();\n\n return <ChannelPreviewWithContext {...{ client, Preview }} {...props} />;\n};\n"]}
|
|
@@ -347,18 +347,22 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
347
347
|
}
|
|
348
348
|
};
|
|
349
349
|
|
|
350
|
-
var handlePlayPause = function handlePlayPause() {
|
|
351
|
-
if (
|
|
352
|
-
videoRef.current.seek
|
|
353
|
-
|
|
350
|
+
var handlePlayPause = function handlePlayPause(status) {
|
|
351
|
+
if (status === undefined) {
|
|
352
|
+
if (progress === 1 && videoRef.current && videoRef.current.seek) {
|
|
353
|
+
videoRef.current.seek(0);
|
|
354
|
+
}
|
|
354
355
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {
|
|
357
|
+
videoRef.current.replayAsync();
|
|
358
|
+
}
|
|
358
359
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
360
|
+
setPaused(function (state) {
|
|
361
|
+
return !state;
|
|
362
|
+
});
|
|
363
|
+
} else {
|
|
364
|
+
setPaused(status);
|
|
365
|
+
}
|
|
362
366
|
};
|
|
363
367
|
|
|
364
368
|
var onProgressDrag = function onProgressDrag(progress) {
|
|
@@ -372,12 +376,13 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
372
376
|
};
|
|
373
377
|
|
|
374
378
|
return _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
379
|
+
accessibilityLabel: "Image Gallery",
|
|
375
380
|
pointerEvents: 'auto',
|
|
376
381
|
style: [_reactNative.StyleSheet.absoluteFillObject, showScreenStyle],
|
|
377
382
|
__self: _this,
|
|
378
383
|
__source: {
|
|
379
384
|
fileName: _jsxFileName,
|
|
380
|
-
lineNumber:
|
|
385
|
+
lineNumber: 504,
|
|
381
386
|
columnNumber: 5
|
|
382
387
|
}
|
|
383
388
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -385,7 +390,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
385
390
|
__self: _this,
|
|
386
391
|
__source: {
|
|
387
392
|
fileName: _jsxFileName,
|
|
388
|
-
lineNumber:
|
|
393
|
+
lineNumber: 509,
|
|
389
394
|
columnNumber: 7
|
|
390
395
|
}
|
|
391
396
|
}), _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
|
|
@@ -397,7 +402,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
397
402
|
__self: _this,
|
|
398
403
|
__source: {
|
|
399
404
|
fileName: _jsxFileName,
|
|
400
|
-
lineNumber:
|
|
405
|
+
lineNumber: 510,
|
|
401
406
|
columnNumber: 7
|
|
402
407
|
}
|
|
403
408
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -405,7 +410,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
405
410
|
__self: _this,
|
|
406
411
|
__source: {
|
|
407
412
|
fileName: _jsxFileName,
|
|
408
|
-
lineNumber:
|
|
413
|
+
lineNumber: 517,
|
|
409
414
|
columnNumber: 9
|
|
410
415
|
}
|
|
411
416
|
}, _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
|
|
@@ -419,7 +424,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
419
424
|
__self: _this,
|
|
420
425
|
__source: {
|
|
421
426
|
fileName: _jsxFileName,
|
|
422
|
-
lineNumber:
|
|
427
|
+
lineNumber: 518,
|
|
423
428
|
columnNumber: 11
|
|
424
429
|
}
|
|
425
430
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -427,7 +432,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
427
432
|
__self: _this,
|
|
428
433
|
__source: {
|
|
429
434
|
fileName: _jsxFileName,
|
|
430
|
-
lineNumber:
|
|
435
|
+
lineNumber: 527,
|
|
431
436
|
columnNumber: 13
|
|
432
437
|
}
|
|
433
438
|
}, _react["default"].createElement(_reactNativeGestureHandler.PinchGestureHandler, {
|
|
@@ -437,7 +442,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
437
442
|
__self: _this,
|
|
438
443
|
__source: {
|
|
439
444
|
fileName: _jsxFileName,
|
|
440
|
-
lineNumber:
|
|
445
|
+
lineNumber: 528,
|
|
441
446
|
columnNumber: 15
|
|
442
447
|
}
|
|
443
448
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -445,7 +450,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
445
450
|
__self: _this,
|
|
446
451
|
__source: {
|
|
447
452
|
fileName: _jsxFileName,
|
|
448
|
-
lineNumber:
|
|
453
|
+
lineNumber: 533,
|
|
449
454
|
columnNumber: 17
|
|
450
455
|
}
|
|
451
456
|
}, _react["default"].createElement(_reactNativeGestureHandler.PanGestureHandler, {
|
|
@@ -458,7 +463,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
458
463
|
__self: _this,
|
|
459
464
|
__source: {
|
|
460
465
|
fileName: _jsxFileName,
|
|
461
|
-
lineNumber:
|
|
466
|
+
lineNumber: 534,
|
|
462
467
|
columnNumber: 19
|
|
463
468
|
}
|
|
464
469
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -466,7 +471,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
466
471
|
__self: _this,
|
|
467
472
|
__source: {
|
|
468
473
|
fileName: _jsxFileName,
|
|
469
|
-
lineNumber:
|
|
474
|
+
lineNumber: 542,
|
|
470
475
|
columnNumber: 21
|
|
471
476
|
}
|
|
472
477
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -480,7 +485,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
480
485
|
__self: _this,
|
|
481
486
|
__source: {
|
|
482
487
|
fileName: _jsxFileName,
|
|
483
|
-
lineNumber:
|
|
488
|
+
lineNumber: 543,
|
|
484
489
|
columnNumber: 23
|
|
485
490
|
}
|
|
486
491
|
}, photos.map(function (photo, i) {
|
|
@@ -511,10 +516,11 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
511
516
|
__self: _this,
|
|
512
517
|
__source: {
|
|
513
518
|
fileName: _jsxFileName,
|
|
514
|
-
lineNumber:
|
|
519
|
+
lineNumber: 560,
|
|
515
520
|
columnNumber: 29
|
|
516
521
|
}
|
|
517
522
|
}) : _react["default"].createElement(_AnimatedGalleryImage.AnimatedGalleryImage, {
|
|
523
|
+
accessibilityLabel: 'Image Item',
|
|
518
524
|
index: i,
|
|
519
525
|
key: photo.uri + "-" + i,
|
|
520
526
|
offsetScale: offsetScale,
|
|
@@ -534,7 +540,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
534
540
|
__self: _this,
|
|
535
541
|
__source: {
|
|
536
542
|
fileName: _jsxFileName,
|
|
537
|
-
lineNumber:
|
|
543
|
+
lineNumber: 587,
|
|
538
544
|
columnNumber: 29
|
|
539
545
|
}
|
|
540
546
|
});
|
|
@@ -546,10 +552,11 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
546
552
|
__self: _this,
|
|
547
553
|
__source: {
|
|
548
554
|
fileName: _jsxFileName,
|
|
549
|
-
lineNumber:
|
|
555
|
+
lineNumber: 620,
|
|
550
556
|
columnNumber: 7
|
|
551
557
|
}
|
|
552
558
|
})), _react["default"].createElement(_ImageGalleryFooter.ImageGalleryFooter, (0, _extends2["default"])({
|
|
559
|
+
accessibilityLabel: 'Image Gallery Footer',
|
|
553
560
|
duration: duration,
|
|
554
561
|
onPlayPause: handlePlayPause,
|
|
555
562
|
onProgressDrag: onProgressDrag,
|
|
@@ -565,7 +572,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
565
572
|
__self: _this,
|
|
566
573
|
__source: {
|
|
567
574
|
fileName: _jsxFileName,
|
|
568
|
-
lineNumber:
|
|
575
|
+
lineNumber: 626,
|
|
569
576
|
columnNumber: 7
|
|
570
577
|
}
|
|
571
578
|
})), _react["default"].createElement(_ImageGalleryOverlay.ImageGalleryOverlay, {
|
|
@@ -575,14 +582,14 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
575
582
|
__self: _this,
|
|
576
583
|
__source: {
|
|
577
584
|
fileName: _jsxFileName,
|
|
578
|
-
lineNumber:
|
|
585
|
+
lineNumber: 642,
|
|
579
586
|
columnNumber: 7
|
|
580
587
|
}
|
|
581
588
|
}), _react["default"].createElement(_bottomSheet.BottomSheetModalProvider, {
|
|
582
589
|
__self: _this,
|
|
583
590
|
__source: {
|
|
584
591
|
fileName: _jsxFileName,
|
|
585
|
-
lineNumber:
|
|
592
|
+
lineNumber: 647,
|
|
586
593
|
columnNumber: 7
|
|
587
594
|
}
|
|
588
595
|
}, _react["default"].createElement(_bottomSheet.BottomSheetModal, {
|
|
@@ -595,7 +602,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
595
602
|
__self: _this,
|
|
596
603
|
__source: {
|
|
597
604
|
fileName: _jsxFileName,
|
|
598
|
-
lineNumber:
|
|
605
|
+
lineNumber: 652,
|
|
599
606
|
columnNumber: 13
|
|
600
607
|
}
|
|
601
608
|
}));
|
|
@@ -610,7 +617,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
610
617
|
__self: _this,
|
|
611
618
|
__source: {
|
|
612
619
|
fileName: _jsxFileName,
|
|
613
|
-
lineNumber:
|
|
620
|
+
lineNumber: 648,
|
|
614
621
|
columnNumber: 9
|
|
615
622
|
}
|
|
616
623
|
}, _react["default"].createElement(_ImageGrid.ImageGrid, (0, _extends2["default"])({
|
|
@@ -622,7 +629,7 @@ var ImageGallery = function ImageGallery(props) {
|
|
|
622
629
|
__self: _this,
|
|
623
630
|
__source: {
|
|
624
631
|
fileName: _jsxFileName,
|
|
625
|
-
lineNumber:
|
|
632
|
+
lineNumber: 663,
|
|
626
633
|
columnNumber: 11
|
|
627
634
|
}
|
|
628
635
|
})))));
|