stream-chat-react-native-core 7.0.0-rc.8 → 7.0.0
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/README.md +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js +19 -9
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +3 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +16 -3
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +2 -2
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +320 -310
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useChannelDataState.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +14 -7
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +70 -54
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +14 -6
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +3 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +25 -39
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +18 -15
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +96 -74
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js +4 -4
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +281 -223
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +65 -48
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getReadState.js +20 -0
- package/lib/commonjs/components/MessageList/utils/getReadState.js.map +1 -0
- package/lib/commonjs/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
- package/lib/commonjs/components/Poll/components/Button.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +2 -2
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +24 -6
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js +10 -6
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/commonjs/components/index.js +15 -4
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +5 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +535 -523
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/utils/utils.js +4 -4
- package/lib/commonjs/contexts/messageInputContext/utils/utils.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/pollContext/pollContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +23 -14
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/commonjs/hooks/index.js +22 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useAudioPlayer.js +60 -69
- package/lib/commonjs/hooks/useAudioPlayer.js.map +1 -1
- package/lib/commonjs/hooks/useStableCallback.js +13 -0
- package/lib/commonjs/hooks/useStableCallback.js.map +1 -0
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/i18n/en.json +3 -0
- package/lib/commonjs/i18n/es.json +3 -0
- package/lib/commonjs/i18n/fr.json +3 -0
- package/lib/commonjs/i18n/he.json +3 -0
- package/lib/commonjs/i18n/hi.json +2 -0
- package/lib/commonjs/i18n/it.json +3 -0
- package/lib/commonjs/i18n/ja.json +1 -0
- package/lib/commonjs/i18n/ko.json +1 -0
- package/lib/commonjs/i18n/nl.json +2 -0
- package/lib/commonjs/i18n/pt-br.json +3 -0
- package/lib/commonjs/i18n/ru.json +4 -0
- package/lib/commonjs/i18n/tr.json +2 -0
- package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/compressImage.js +1 -1
- package/lib/commonjs/utils/compressImage.js.map +1 -1
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -1
- package/lib/commonjs/utils/utils.js +17 -4
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +19 -9
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +3 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +16 -3
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +2 -2
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +320 -310
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useChannelDataState.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/module/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/Message/Message.js +14 -7
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +70 -54
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +14 -6
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +3 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +25 -39
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +18 -15
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +96 -74
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useAudioController.js +4 -4
- package/lib/module/components/MessageInput/hooks/useAudioController.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +281 -223
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +65 -48
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/module/components/MessageList/utils/getReadState.js +20 -0
- package/lib/module/components/MessageList/utils/getReadState.js.map +1 -0
- package/lib/module/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
- package/lib/module/components/Poll/components/Button.js.map +1 -1
- package/lib/module/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +2 -2
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +24 -6
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/module/components/UIComponents/BottomSheetModal.js +10 -6
- package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/module/components/index.js +15 -4
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js +5 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +535 -523
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messageInputContext/utils/utils.js +4 -4
- package/lib/module/contexts/messageInputContext/utils/utils.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/pollContext/pollContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +23 -14
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +2 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/module/hooks/index.js +22 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useAudioPlayer.js +60 -69
- package/lib/module/hooks/useAudioPlayer.js.map +1 -1
- package/lib/module/hooks/useStableCallback.js +13 -0
- package/lib/module/hooks/useStableCallback.js.map +1 -0
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/i18n/en.json +3 -0
- package/lib/module/i18n/es.json +3 -0
- package/lib/module/i18n/fr.json +3 -0
- package/lib/module/i18n/he.json +3 -0
- package/lib/module/i18n/hi.json +2 -0
- package/lib/module/i18n/it.json +3 -0
- package/lib/module/i18n/ja.json +1 -0
- package/lib/module/i18n/ko.json +1 -0
- package/lib/module/i18n/nl.json +2 -0
- package/lib/module/i18n/pt-br.json +3 -0
- package/lib/module/i18n/ru.json +4 -0
- package/lib/module/i18n/tr.json +2 -0
- package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/compressImage.js +1 -1
- package/lib/module/utils/compressImage.js.map +1 -1
- package/lib/module/utils/removeReservedFields.js.map +1 -1
- package/lib/module/utils/utils.js +17 -4
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +2 -2
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts +3 -3
- package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts +4 -3
- package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +2 -2
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts.map +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +2 -3
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +3 -4
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts +2 -3
- package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts +6 -6
- package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts +3 -3
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts +0 -9
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts +3 -0
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts.map +1 -1
- package/lib/typescript/components/Message/Message.d.ts +4 -5
- package/lib/typescript/components/Message/Message.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -3
- package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +2 -2
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +2 -2
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -4
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
- package/lib/typescript/components/MessageInput/InputButtons.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts +4 -4
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageSystem.d.ts +2 -2
- package/lib/typescript/components/MessageList/MessageSystem.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +14 -9
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts +2 -2
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts +2 -2
- package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getReadState.d.ts +9 -0
- package/lib/typescript/components/MessageList/utils/getReadState.d.ts.map +1 -0
- package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts +2 -3
- package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/Button.d.ts +2 -3
- package/lib/typescript/components/Poll/components/Button.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts +2 -3
- package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts.map +1 -1
- package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
- package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts.map +1 -1
- package/lib/typescript/components/ThreadList/ThreadListItem.d.ts.map +1 -1
- package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +2 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +3 -3
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts.map +1 -1
- package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts.map +1 -1
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts +2 -3
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts.map +1 -1
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +3 -3
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +6 -4
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +13 -15
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +3 -3
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts +2 -2
- package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts.map +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +25 -21
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
- package/lib/typescript/contexts/pollContext/pollContext.d.ts +2 -3
- package/lib/typescript/contexts/pollContext/pollContext.d.ts.map +1 -1
- package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
- package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +4 -5
- package/lib/typescript/contexts/threadContext/ThreadContext.d.ts.map +1 -1
- package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts +3 -4
- package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +2 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/useAudioPlayer.d.ts.map +1 -1
- package/lib/typescript/hooks/useStableCallback.d.ts +26 -0
- package/lib/typescript/hooks/useStableCallback.d.ts.map +1 -0
- package/lib/typescript/hooks/useTranslatedMessage.d.ts +59 -58
- package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/en.json +3 -0
- package/lib/typescript/i18n/es.json +3 -0
- package/lib/typescript/i18n/fr.json +3 -0
- package/lib/typescript/i18n/he.json +3 -0
- package/lib/typescript/i18n/hi.json +2 -0
- package/lib/typescript/i18n/it.json +3 -0
- package/lib/typescript/i18n/ja.json +1 -0
- package/lib/typescript/i18n/ko.json +1 -0
- package/lib/typescript/i18n/nl.json +2 -0
- package/lib/typescript/i18n/pt-br.json +3 -0
- package/lib/typescript/i18n/ru.json +4 -0
- package/lib/typescript/i18n/tr.json +2 -0
- package/lib/typescript/native.d.ts +8 -11
- package/lib/typescript/native.d.ts.map +1 -1
- package/lib/typescript/store/apis/insertReaction.d.ts +2 -2
- package/lib/typescript/store/apis/insertReaction.d.ts.map +1 -1
- package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
- package/lib/typescript/store/apis/updateMessage.d.ts.map +1 -1
- package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
- package/lib/typescript/store/apis/updateReaction.d.ts.map +1 -1
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +28 -50
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/compressImage.d.ts +2 -2
- package/lib/typescript/utils/compressImage.d.ts.map +1 -1
- package/lib/typescript/utils/i18n/Streami18n.d.ts +3 -0
- package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
- package/lib/typescript/utils/removeReservedFields.d.ts +2 -3
- package/lib/typescript/utils/removeReservedFields.d.ts.map +1 -1
- package/lib/typescript/utils/utils.d.ts +10 -10
- package/lib/typescript/utils/utils.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/components/Attachment/AudioAttachment.tsx +12 -6
- package/src/components/Attachment/FileAttachmentGroup.tsx +3 -1
- package/src/components/Attachment/Gallery.tsx +22 -7
- package/src/components/Attachment/ImageReloadIndicator.tsx +4 -5
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -10
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +9 -37
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +27 -23
- package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +12 -12
- package/src/components/Channel/Channel.tsx +423 -361
- package/src/components/Channel/__tests__/Channel.test.js +10 -3
- package/src/components/Channel/hooks/useChannelDataState.ts +2 -4
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
- package/src/components/Channel/hooks/useMessageListPagination.tsx +150 -150
- package/src/components/Chat/Chat.tsx +0 -9
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +8 -7
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +5 -4
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +5 -4
- package/src/components/ImageGallery/__tests__/ImageGalleryOverlay.test.tsx +3 -2
- package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx +12 -5
- package/src/components/Message/Message.tsx +16 -15
- package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -3
- package/src/components/Message/MessageSimple/MessageSimple.tsx +112 -70
- package/src/components/Message/MessageSimple/MessageStatus.tsx +19 -17
- package/src/components/Message/MessageSimple/MessageTextContainer.tsx +3 -3
- package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +11 -5
- package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.tsx +5 -4
- package/src/components/Message/MessageSimple/utils/renderText.tsx +2 -3
- package/src/components/Message/hooks/useCreateMessageContext.ts +3 -0
- package/src/components/Message/hooks/useMessageActionHandlers.ts +1 -3
- package/src/components/Message/hooks/useMessageActions.tsx +4 -3
- package/src/components/MessageInput/FileUploadPreview.tsx +41 -70
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
- package/src/components/MessageInput/InputButtons.tsx +14 -10
- package/src/components/MessageInput/MessageInput.tsx +28 -30
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +3 -1
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +1 -0
- package/src/components/MessageInput/hooks/useAudioController.tsx +6 -5
- package/src/components/MessageList/MessageList.tsx +253 -137
- package/src/components/MessageList/MessageSystem.tsx +2 -2
- package/src/components/MessageList/hooks/useMessageList.ts +82 -64
- package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +2 -2
- package/src/components/MessageList/utils/getGroupStyles.ts +7 -5
- package/src/components/MessageList/utils/getLastReceivedMessage.ts +3 -3
- package/src/components/MessageList/utils/getReadState.ts +27 -0
- package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +2 -3
- package/src/components/MessageMenu/hooks/useFetchReactions.ts +2 -3
- package/src/components/Poll/components/Button.tsx +2 -4
- package/src/components/Poll/components/PollResults/PollResultItem.tsx +2 -3
- package/src/components/Reply/Reply.tsx +1 -2
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +318 -847
- package/src/components/Thread/components/ThreadFooterComponent.tsx +31 -9
- package/src/components/ThreadList/ThreadListItem.tsx +6 -4
- package/src/components/UIComponents/BottomSheetModal.tsx +11 -7
- package/src/components/index.ts +2 -1
- package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +5 -4
- package/src/contexts/channelsStateContext/useChannelState.ts +5 -1
- package/src/contexts/debugContext/DebugContext.tsx +2 -4
- package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +5 -4
- package/src/contexts/messageContext/MessageContext.tsx +6 -4
- package/src/contexts/messageInputContext/MessageInputContext.tsx +295 -262
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -6
- package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +6 -5
- package/src/contexts/messageInputContext/__tests__/updateMessage.test.tsx +3 -5
- package/src/contexts/messageInputContext/__tests__/useMessageDetailsForState.test.tsx +14 -9
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +37 -40
- package/src/contexts/messageInputContext/utils/utils.ts +6 -8
- package/src/contexts/messagesContext/MessagesContext.tsx +26 -20
- package/src/contexts/pollContext/pollContext.tsx +2 -4
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +33 -14
- package/src/contexts/themeContext/utils/theme.ts +2 -0
- package/src/contexts/threadContext/ThreadContext.tsx +4 -6
- package/src/contexts/threadsContext/ThreadListItemContext.tsx +3 -5
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useAudioPlayer.ts +37 -31
- package/src/hooks/useStableCallback.ts +37 -0
- package/src/hooks/useTranslatedMessage.ts +2 -2
- package/src/i18n/en.json +3 -0
- package/src/i18n/es.json +3 -0
- package/src/i18n/fr.json +3 -0
- package/src/i18n/he.json +3 -0
- package/src/i18n/hi.json +2 -0
- package/src/i18n/it.json +3 -0
- package/src/i18n/ja.json +1 -0
- package/src/i18n/ko.json +1 -0
- package/src/i18n/nl.json +2 -0
- package/src/i18n/pt-br.json +3 -0
- package/src/i18n/ru.json +4 -0
- package/src/i18n/tr.json +2 -0
- package/src/mock-builders/api/channelMocks.tsx +2 -8
- package/src/native.ts +13 -8
- package/src/store/apis/insertReaction.ts +2 -2
- package/src/store/apis/updateMessage.ts +2 -2
- package/src/store/apis/updateReaction.ts +2 -2
- package/src/store/mappers/mapMessageToStorable.ts +2 -2
- package/src/types/stream-chat-common-custom-data.d.ts +22 -22
- package/src/types/types.ts +35 -54
- package/src/utils/compressImage.ts +3 -4
- package/src/utils/removeReservedFields.ts +3 -5
- package/src/utils/utils.ts +25 -16
- package/src/version.json +1 -1
- package/lib/commonjs/components/MessageList/hooks/useLastReadData.js +0 -20
- package/lib/commonjs/components/MessageList/hooks/useLastReadData.js.map +0 -1
- package/lib/commonjs/components/MessageList/utils/getReadStates.js +0 -34
- package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +0 -1
- package/lib/module/components/MessageList/hooks/useLastReadData.js +0 -20
- package/lib/module/components/MessageList/hooks/useLastReadData.js.map +0 -1
- package/lib/module/components/MessageList/utils/getReadStates.js +0 -34
- package/lib/module/components/MessageList/utils/getReadStates.js.map +0 -1
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts +0 -12
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts.map +0 -1
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +0 -5
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts.map +0 -1
- package/src/components/MessageList/hooks/useLastReadData.ts +0 -29
- package/src/components/MessageList/utils/getReadStates.ts +0 -55
|
@@ -114,7 +114,9 @@ const FileAttachmentGroupWithContext = (props: FileAttachmentGroupPropsWithConte
|
|
|
114
114
|
duration: file.duration,
|
|
115
115
|
file: {
|
|
116
116
|
name: file.title as string,
|
|
117
|
-
|
|
117
|
+
size: file.file_size || 0,
|
|
118
|
+
type: file.mime_type || '',
|
|
119
|
+
uri: file.asset_url || '',
|
|
118
120
|
waveform_data: file.waveform_data,
|
|
119
121
|
},
|
|
120
122
|
id: index.toString(),
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
3
|
|
|
4
|
-
import type { Attachment } from 'stream-chat';
|
|
4
|
+
import type { Attachment, LocalMessage } from 'stream-chat';
|
|
5
5
|
|
|
6
6
|
import { GalleryImage } from './GalleryImage';
|
|
7
|
-
import { ImageReloadIndicator } from './ImageReloadIndicator';
|
|
8
7
|
import { buildGallery } from './utils/buildGallery/buildGallery';
|
|
9
8
|
|
|
10
9
|
import type { Thumbnail } from './utils/buildGallery/types';
|
|
@@ -12,7 +11,7 @@ import { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius
|
|
|
12
11
|
|
|
13
12
|
import { openUrlSafely } from './utils/openUrlSafely';
|
|
14
13
|
|
|
15
|
-
import
|
|
14
|
+
import { useTranslationContext } from '../../contexts';
|
|
16
15
|
import { useChatConfigContext } from '../../contexts/chatConfigContext/ChatConfigContext';
|
|
17
16
|
import {
|
|
18
17
|
ImageGalleryContextValue,
|
|
@@ -59,6 +58,7 @@ export type GalleryPropsWithContext = Pick<
|
|
|
59
58
|
| 'VideoThumbnail'
|
|
60
59
|
| 'ImageLoadingIndicator'
|
|
61
60
|
| 'ImageLoadingFailedIndicator'
|
|
61
|
+
| 'ImageReloadIndicator'
|
|
62
62
|
| 'myMessageTheme'
|
|
63
63
|
> &
|
|
64
64
|
Pick<OverlayContextValue, 'setOverlay'> & {
|
|
@@ -76,7 +76,7 @@ export type GalleryPropsWithContext = Pick<
|
|
|
76
76
|
*
|
|
77
77
|
* TODO: Fix circular dependencies of imports
|
|
78
78
|
*/
|
|
79
|
-
message?:
|
|
79
|
+
message?: LocalMessage;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
const GalleryWithContext = (props: GalleryPropsWithContext) => {
|
|
@@ -87,6 +87,7 @@ const GalleryWithContext = (props: GalleryPropsWithContext) => {
|
|
|
87
87
|
hasThreadReplies,
|
|
88
88
|
ImageLoadingFailedIndicator,
|
|
89
89
|
ImageLoadingIndicator,
|
|
90
|
+
ImageReloadIndicator,
|
|
90
91
|
images,
|
|
91
92
|
legacyImageViewerSwipeBehaviour,
|
|
92
93
|
message,
|
|
@@ -204,6 +205,7 @@ const GalleryWithContext = (props: GalleryPropsWithContext) => {
|
|
|
204
205
|
colIndex={colIndex}
|
|
205
206
|
ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}
|
|
206
207
|
ImageLoadingIndicator={ImageLoadingIndicator}
|
|
208
|
+
ImageReloadIndicator={ImageReloadIndicator}
|
|
207
209
|
imagesAndVideos={imagesAndVideos}
|
|
208
210
|
invertedDirections={invertedDirections || false}
|
|
209
211
|
key={rowIndex}
|
|
@@ -241,7 +243,7 @@ type GalleryThumbnailProps = {
|
|
|
241
243
|
colIndex: number;
|
|
242
244
|
imagesAndVideos: Attachment[];
|
|
243
245
|
invertedDirections: boolean;
|
|
244
|
-
message:
|
|
246
|
+
message: LocalMessage;
|
|
245
247
|
numOfColumns: number;
|
|
246
248
|
numOfRows: number;
|
|
247
249
|
rowIndex: number;
|
|
@@ -253,6 +255,7 @@ type GalleryThumbnailProps = {
|
|
|
253
255
|
| 'VideoThumbnail'
|
|
254
256
|
| 'ImageLoadingIndicator'
|
|
255
257
|
| 'ImageLoadingFailedIndicator'
|
|
258
|
+
| 'ImageReloadIndicator'
|
|
256
259
|
> &
|
|
257
260
|
Pick<ImageGalleryContextValue, 'setSelectedMessage' | 'setMessages'> &
|
|
258
261
|
Pick<MessageContextValue, 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'> &
|
|
@@ -264,6 +267,7 @@ const GalleryThumbnail = ({
|
|
|
264
267
|
colIndex,
|
|
265
268
|
ImageLoadingFailedIndicator,
|
|
266
269
|
ImageLoadingIndicator,
|
|
270
|
+
ImageReloadIndicator,
|
|
267
271
|
imagesAndVideos,
|
|
268
272
|
invertedDirections,
|
|
269
273
|
legacyImageViewerSwipeBehaviour,
|
|
@@ -296,6 +300,7 @@ const GalleryThumbnail = ({
|
|
|
296
300
|
},
|
|
297
301
|
},
|
|
298
302
|
} = useTheme();
|
|
303
|
+
const { t } = useTranslationContext();
|
|
299
304
|
|
|
300
305
|
const openImageViewer = () => {
|
|
301
306
|
if (!legacyImageViewerSwipeBehaviour && message) {
|
|
@@ -387,6 +392,7 @@ const GalleryThumbnail = ({
|
|
|
387
392
|
borderRadius={imageBorderRadius ?? borderRadius}
|
|
388
393
|
ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}
|
|
389
394
|
ImageLoadingIndicator={ImageLoadingIndicator}
|
|
395
|
+
ImageReloadIndicator={ImageReloadIndicator}
|
|
390
396
|
thumbnail={thumbnail}
|
|
391
397
|
/>
|
|
392
398
|
</View>
|
|
@@ -401,7 +407,7 @@ const GalleryThumbnail = ({
|
|
|
401
407
|
]}
|
|
402
408
|
>
|
|
403
409
|
<Text style={[styles.moreImagesText, moreImagesText]}>
|
|
404
|
-
{
|
|
410
|
+
{String(t('+{{count}}', { count: imagesAndVideos.length - 4 }))}
|
|
405
411
|
</Text>
|
|
406
412
|
</View>
|
|
407
413
|
) : null}
|
|
@@ -413,10 +419,15 @@ const GalleryImageThumbnail = ({
|
|
|
413
419
|
borderRadius,
|
|
414
420
|
ImageLoadingFailedIndicator,
|
|
415
421
|
ImageLoadingIndicator,
|
|
422
|
+
ImageReloadIndicator,
|
|
416
423
|
thumbnail,
|
|
417
424
|
}: Pick<
|
|
418
425
|
GalleryThumbnailProps,
|
|
419
|
-
|
|
426
|
+
| 'ImageLoadingFailedIndicator'
|
|
427
|
+
| 'ImageLoadingIndicator'
|
|
428
|
+
| 'ImageReloadIndicator'
|
|
429
|
+
| 'thumbnail'
|
|
430
|
+
| 'borderRadius'
|
|
420
431
|
>) => {
|
|
421
432
|
const {
|
|
422
433
|
isLoadingImage,
|
|
@@ -564,6 +575,7 @@ export const Gallery = (props: GalleryProps) => {
|
|
|
564
575
|
hasThreadReplies,
|
|
565
576
|
ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,
|
|
566
577
|
ImageLoadingIndicator: PropImageLoadingIndicator,
|
|
578
|
+
ImageReloadIndicator: PropImageReloadIndicator,
|
|
567
579
|
images: propImages,
|
|
568
580
|
message: propMessage,
|
|
569
581
|
myMessageTheme: propMyMessageTheme,
|
|
@@ -595,6 +607,7 @@ export const Gallery = (props: GalleryProps) => {
|
|
|
595
607
|
additionalPressableProps: contextAdditionalPressableProps,
|
|
596
608
|
ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,
|
|
597
609
|
ImageLoadingIndicator: ContextImageLoadingIndicator,
|
|
610
|
+
ImageReloadIndicator: ContextImageReloadIndicator,
|
|
598
611
|
legacyImageViewerSwipeBehaviour,
|
|
599
612
|
myMessageTheme: contextMyMessageTheme,
|
|
600
613
|
VideoThumbnail: ContextVideoThumnbnail,
|
|
@@ -624,6 +637,7 @@ export const Gallery = (props: GalleryProps) => {
|
|
|
624
637
|
const ImageLoadingFailedIndicator =
|
|
625
638
|
PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;
|
|
626
639
|
const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;
|
|
640
|
+
const ImageReloadIndicator = PropImageReloadIndicator || ContextImageReloadIndicator;
|
|
627
641
|
const myMessageTheme = propMyMessageTheme || contextMyMessageTheme;
|
|
628
642
|
|
|
629
643
|
return (
|
|
@@ -636,6 +650,7 @@ export const Gallery = (props: GalleryProps) => {
|
|
|
636
650
|
hasThreadReplies: hasThreadReplies || !!message?.reply_count,
|
|
637
651
|
ImageLoadingFailedIndicator,
|
|
638
652
|
ImageLoadingIndicator,
|
|
653
|
+
ImageReloadIndicator,
|
|
639
654
|
images,
|
|
640
655
|
legacyImageViewerSwipeBehaviour,
|
|
641
656
|
message,
|
|
@@ -6,13 +6,12 @@ import { Refresh } from '../../icons';
|
|
|
6
6
|
|
|
7
7
|
const REFRESH_ICON_SIZE = 24;
|
|
8
8
|
|
|
9
|
-
export
|
|
10
|
-
onReloadImage,
|
|
11
|
-
style,
|
|
12
|
-
}: {
|
|
9
|
+
export type ImageReloadIndicatorProps = {
|
|
13
10
|
onReloadImage: () => void;
|
|
14
11
|
style: React.ComponentProps<typeof Pressable>['style'];
|
|
15
|
-
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const ImageReloadIndicator = ({ onReloadImage, style }: ImageReloadIndicatorProps) => {
|
|
16
15
|
const {
|
|
17
16
|
theme: {
|
|
18
17
|
colors: { grey_dark },
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import { useTheme } from '../../contexts/themeContext/ThemeContext';
|
|
19
19
|
import { useScreenDimensions } from '../../hooks/useScreenDimensions';
|
|
20
20
|
import { NativeHandlers } from '../../native';
|
|
21
|
-
import type {
|
|
21
|
+
import type { File } from '../../types/types';
|
|
22
22
|
import { BottomSheet } from '../BottomSheetCompatibility/BottomSheet';
|
|
23
23
|
import { BottomSheetFlatList } from '../BottomSheetCompatibility/BottomSheetFlatList';
|
|
24
24
|
|
|
@@ -108,7 +108,7 @@ export const AttachmentPicker = React.forwardRef(
|
|
|
108
108
|
const [iOSLimited, setIosLimited] = useState(false);
|
|
109
109
|
const hasNextPageRef = useRef(true);
|
|
110
110
|
const [loadingPhotos, setLoadingPhotos] = useState(false);
|
|
111
|
-
const [photos, setPhotos] = useState<
|
|
111
|
+
const [photos, setPhotos] = useState<File[]>([]);
|
|
112
112
|
const attemptedToLoadPhotosOnOpenRef = useRef(false);
|
|
113
113
|
|
|
114
114
|
const getMorePhotos = useCallback(async () => {
|
|
@@ -245,14 +245,8 @@ export const AttachmentPicker = React.forwardRef(
|
|
|
245
245
|
numberOfUploads: selectedFiles.length + selectedImages.length,
|
|
246
246
|
// `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
|
|
247
247
|
selected:
|
|
248
|
-
selectedImages.some((image) =>
|
|
249
|
-
|
|
250
|
-
? image.id === asset.id
|
|
251
|
-
: image.uri === asset.uri || image.originalUri === asset.uri,
|
|
252
|
-
) ||
|
|
253
|
-
selectedFiles.some((file) =>
|
|
254
|
-
file.id ? file.id === asset.id : file.uri === asset.uri || file.originalUri === asset.uri,
|
|
255
|
-
),
|
|
248
|
+
selectedImages.some((image) => image.uri === asset.uri) ||
|
|
249
|
+
selectedFiles.some((file) => file.uri === asset.uri),
|
|
256
250
|
selectedFiles,
|
|
257
251
|
selectedImages,
|
|
258
252
|
setSelectedFiles,
|
|
@@ -2,22 +2,19 @@ import React from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { Alert, ImageBackground, StyleSheet, Text, View } from 'react-native';
|
|
4
4
|
|
|
5
|
-
import { lookup } from 'mime-types';
|
|
6
|
-
|
|
7
5
|
import { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';
|
|
8
6
|
import { useTheme } from '../../../contexts/themeContext/ThemeContext';
|
|
9
7
|
import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
|
|
10
8
|
import { useViewport } from '../../../hooks/useViewport';
|
|
11
9
|
import { Recorder } from '../../../icons';
|
|
12
|
-
import type {
|
|
10
|
+
import type { File } from '../../../types/types';
|
|
13
11
|
import { getDurationLabelFromDuration } from '../../../utils/utils';
|
|
14
12
|
import { BottomSheetTouchableOpacity } from '../../BottomSheetCompatibility/BottomSheetTouchableOpacity';
|
|
15
|
-
|
|
16
13
|
type AttachmentPickerItemType = Pick<
|
|
17
14
|
AttachmentPickerContextValue,
|
|
18
15
|
'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'
|
|
19
16
|
> & {
|
|
20
|
-
asset:
|
|
17
|
+
asset: File;
|
|
21
18
|
ImageOverlaySelectedComponent: React.ComponentType;
|
|
22
19
|
numberOfUploads: number;
|
|
23
20
|
selected: boolean;
|
|
@@ -48,46 +45,25 @@ const AttachmentVideo = (props: AttachmentVideoProps) => {
|
|
|
48
45
|
},
|
|
49
46
|
} = useTheme();
|
|
50
47
|
|
|
51
|
-
const { duration: videoDuration,
|
|
48
|
+
const { duration: videoDuration, thumb_url, uri } = asset;
|
|
52
49
|
|
|
53
|
-
const durationLabel = getDurationLabelFromDuration(videoDuration);
|
|
50
|
+
const durationLabel = videoDuration ? getDurationLabelFromDuration(videoDuration) : '00:00';
|
|
54
51
|
|
|
55
52
|
const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
|
|
56
53
|
|
|
57
|
-
/* Patches video files with uri and mimetype */
|
|
58
|
-
const patchVideoFile = (files: File[]) => {
|
|
59
|
-
// We need a mime-type to upload a video file.
|
|
60
|
-
const mimeType = lookup(asset.name) || 'multipart/form-data';
|
|
61
|
-
return [
|
|
62
|
-
...files,
|
|
63
|
-
{
|
|
64
|
-
duration: asset.duration,
|
|
65
|
-
id: asset.id,
|
|
66
|
-
mimeType,
|
|
67
|
-
name: asset.name,
|
|
68
|
-
originalUri,
|
|
69
|
-
size: asset.size,
|
|
70
|
-
uri,
|
|
71
|
-
},
|
|
72
|
-
];
|
|
73
|
-
};
|
|
74
|
-
|
|
75
54
|
const updateSelectedFiles = () => {
|
|
76
55
|
if (numberOfUploads >= maxNumberOfFiles) {
|
|
77
56
|
Alert.alert(t('Maximum number of files reached'));
|
|
78
57
|
return;
|
|
79
58
|
}
|
|
80
|
-
|
|
81
|
-
setSelectedFiles(files);
|
|
59
|
+
setSelectedFiles([...selectedFiles, asset]);
|
|
82
60
|
};
|
|
83
61
|
|
|
84
62
|
const onPressVideo = () => {
|
|
85
63
|
if (selected) {
|
|
86
64
|
setSelectedFiles((files) =>
|
|
87
65
|
// `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
|
|
88
|
-
files.filter((file) =>
|
|
89
|
-
file.id ? file.id !== assetId : file.uri !== uri && file.originalUri !== uri,
|
|
90
|
-
),
|
|
66
|
+
files.filter((file) => file.uri !== uri),
|
|
91
67
|
);
|
|
92
68
|
} else {
|
|
93
69
|
updateSelectedFiles();
|
|
@@ -97,7 +73,7 @@ const AttachmentVideo = (props: AttachmentVideoProps) => {
|
|
|
97
73
|
return (
|
|
98
74
|
<BottomSheetTouchableOpacity onPress={onPressVideo}>
|
|
99
75
|
<ImageBackground
|
|
100
|
-
source={{ uri:
|
|
76
|
+
source={{ uri: thumb_url }}
|
|
101
77
|
style={[
|
|
102
78
|
{
|
|
103
79
|
height: size,
|
|
@@ -147,7 +123,7 @@ const AttachmentImage = (props: AttachmentImageProps) => {
|
|
|
147
123
|
|
|
148
124
|
const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
|
|
149
125
|
|
|
150
|
-
const {
|
|
126
|
+
const { uri } = asset;
|
|
151
127
|
|
|
152
128
|
const updateSelectedImages = () => {
|
|
153
129
|
if (numberOfUploads >= maxNumberOfFiles) {
|
|
@@ -160,11 +136,7 @@ const AttachmentImage = (props: AttachmentImageProps) => {
|
|
|
160
136
|
const onPressImage = () => {
|
|
161
137
|
if (selected) {
|
|
162
138
|
// `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
|
|
163
|
-
setSelectedImages((images) =>
|
|
164
|
-
images.filter((image) =>
|
|
165
|
-
assetId ? image.id !== assetId : image.uri !== uri && originalUri !== uri,
|
|
166
|
-
),
|
|
167
|
-
);
|
|
139
|
+
setSelectedImages((images) => images.filter((image) => image.uri !== uri));
|
|
168
140
|
} else {
|
|
169
141
|
updateSelectedImages();
|
|
170
142
|
}
|
|
@@ -3,10 +3,6 @@ import { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native
|
|
|
3
3
|
|
|
4
4
|
import throttle from 'lodash/throttle';
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
ChannelContextValue,
|
|
8
|
-
useChannelContext,
|
|
9
|
-
} from '../../contexts/channelContext/ChannelContext';
|
|
10
6
|
import {
|
|
11
7
|
MessageInputContextValue,
|
|
12
8
|
useMessageInputContext,
|
|
@@ -51,22 +47,22 @@ const computeCaretPosition = (token: string, startOfTokenPosition: number) =>
|
|
|
51
47
|
|
|
52
48
|
const isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;
|
|
53
49
|
|
|
54
|
-
type AutoCompleteInputPropsWithContext = Pick<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
50
|
+
type AutoCompleteInputPropsWithContext = Pick<
|
|
51
|
+
MessageInputContextValue,
|
|
52
|
+
| 'additionalTextInputProps'
|
|
53
|
+
| 'autoCompleteSuggestionsLimit'
|
|
54
|
+
| 'giphyActive'
|
|
55
|
+
| 'giphyEnabled'
|
|
56
|
+
| 'maxMessageLength'
|
|
57
|
+
| 'mentionAllAppUsersEnabled'
|
|
58
|
+
| 'mentionAllAppUsersQuery'
|
|
59
|
+
| 'numberOfLines'
|
|
60
|
+
| 'onChange'
|
|
61
|
+
| 'setGiphyActive'
|
|
62
|
+
| 'setInputBoxRef'
|
|
63
|
+
| 'text'
|
|
64
|
+
| 'triggerSettings'
|
|
65
|
+
> &
|
|
70
66
|
Pick<SuggestionsContextValue, 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'> &
|
|
71
67
|
Pick<TranslationContextValue, 't'> & {
|
|
72
68
|
/**
|
|
@@ -76,7 +72,15 @@ type AutoCompleteInputPropsWithContext = Pick<ChannelContextValue, 'giphyEnabled
|
|
|
76
72
|
cooldownActive?: boolean;
|
|
77
73
|
};
|
|
78
74
|
|
|
79
|
-
export type AutoCompleteInputProps = Partial<
|
|
75
|
+
export type AutoCompleteInputProps = Partial<
|
|
76
|
+
Omit<
|
|
77
|
+
AutoCompleteInputPropsWithContext,
|
|
78
|
+
| 'triggerSettings'
|
|
79
|
+
| 'mentionAllAppUsersQuery'
|
|
80
|
+
| 'mentionAllAppUsersEnabled'
|
|
81
|
+
| 'autoCompleteSuggestionsLimit'
|
|
82
|
+
>
|
|
83
|
+
>;
|
|
80
84
|
|
|
81
85
|
const AutoCompleteInputWithContext = (props: AutoCompleteInputPropsWithContext) => {
|
|
82
86
|
const {
|
|
@@ -86,9 +90,9 @@ const AutoCompleteInputWithContext = (props: AutoCompleteInputPropsWithContext)
|
|
|
86
90
|
cooldownActive = false,
|
|
87
91
|
giphyActive,
|
|
88
92
|
giphyEnabled,
|
|
89
|
-
maxMessageLength,
|
|
90
93
|
mentionAllAppUsersEnabled,
|
|
91
94
|
mentionAllAppUsersQuery,
|
|
95
|
+
maxMessageLength,
|
|
92
96
|
numberOfLines,
|
|
93
97
|
onChange,
|
|
94
98
|
openSuggestions,
|
|
@@ -463,8 +467,8 @@ const MemoizedAutoCompleteInput = React.memo(
|
|
|
463
467
|
) as typeof AutoCompleteInputWithContext;
|
|
464
468
|
|
|
465
469
|
export const AutoCompleteInput = (props: AutoCompleteInputProps) => {
|
|
466
|
-
const { giphyEnabled } = useChannelContext();
|
|
467
470
|
const {
|
|
471
|
+
giphyEnabled,
|
|
468
472
|
additionalTextInputProps,
|
|
469
473
|
autoCompleteSuggestionsLimit,
|
|
470
474
|
giphyActive,
|
|
@@ -9,6 +9,7 @@ import { generateChannelResponse } from '../../../mock-builders/generator/channe
|
|
|
9
9
|
import { generateUser } from '../../../mock-builders/generator/user';
|
|
10
10
|
import { getTestClientWithUser } from '../../../mock-builders/mock';
|
|
11
11
|
import { ACITriggerSettings } from '../../../utils/ACITriggerSettings';
|
|
12
|
+
import { Channel } from '../../Channel/Channel';
|
|
12
13
|
import { Chat } from '../../Chat/Chat';
|
|
13
14
|
import { AutoCompleteInput } from '../AutoCompleteInput';
|
|
14
15
|
|
|
@@ -19,18 +20,17 @@ describe('AutoCompleteInput', () => {
|
|
|
19
20
|
|
|
20
21
|
const getComponent = (props = {}) => (
|
|
21
22
|
<Chat client={chatClient}>
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
</SuggestionsProvider>
|
|
23
|
+
<Channel
|
|
24
|
+
channel={channel}
|
|
25
|
+
triggerSettings={ACITriggerSettings({
|
|
26
|
+
channel,
|
|
27
|
+
onMentionSelectItem: jest.fn(),
|
|
28
|
+
t: jest.fn(),
|
|
29
|
+
})}
|
|
30
|
+
>
|
|
31
|
+
<AutoCompleteInput giphyEnabled onChange={jest.fn} text={props.text} />
|
|
32
|
+
<SuggestionsProvider value={props} />
|
|
33
|
+
</Channel>
|
|
34
34
|
</Chat>
|
|
35
35
|
);
|
|
36
36
|
|