stream-chat-react-native-core 5.8.0-beta.5 → 5.8.0-beta.7
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/Attachment.js +45 -56
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/AttachmentActions.js +25 -43
- package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js +114 -191
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Card.js +53 -80
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +30 -57
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +19 -50
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileIcon.js +3 -45
- package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +121 -162
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +5 -23
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +76 -109
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +7 -23
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +3 -15
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +10 -20
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js +1 -10
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +8 -24
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +22 -35
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +1 -7
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +4 -7
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +5 -9
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/types.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/getAspectRatio.js +0 -2
- package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js +12 -14
- package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +0 -2
- package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/openUrlSafely.js +19 -33
- package/lib/commonjs/components/Attachment/utils/openUrlSafely.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +74 -123
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +4 -18
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +33 -56
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +2 -10
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +71 -117
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +33 -59
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +2 -10
- package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +2 -10
- package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +4 -14
- package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +4 -13
- package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +177 -285
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +6 -24
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +12 -30
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +30 -47
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +21 -49
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +22 -42
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +15 -33
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +1136 -1586
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +31 -34
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +40 -43
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +81 -84
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +1 -11
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js +9 -13
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js +9 -13
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js +0 -3
- package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js +3 -12
- package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +71 -110
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +2 -12
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +12 -24
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +9 -20
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +6 -17
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +55 -84
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelList/Skeleton.js +16 -33
- package/lib/commonjs/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +28 -50
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -14
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -14
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js +4 -12
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -16
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +28 -49
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -17
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +28 -50
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -12
- package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js +1 -12
- package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +29 -34
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +141 -219
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelList/utils.js +13 -26
- package/lib/commonjs/components/ChannelList/utils.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +3 -19
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +14 -44
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +4 -15
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +35 -60
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +7 -18
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +10 -24
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +4 -14
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +7 -17
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +4 -27
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +12 -36
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js +4 -21
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +22 -68
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +26 -69
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +0 -26
- package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js +42 -69
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +8 -11
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +19 -50
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useMutedUsers.js +3 -11
- package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +1 -8
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js +7 -21
- package/lib/commonjs/components/ImageBackground.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +53 -131
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +12 -27
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +21 -52
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +79 -125
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +26 -56
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +12 -32
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +14 -27
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +16 -38
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +12 -26
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +15 -52
- package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +10 -25
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDot.js +10 -21
- package/lib/commonjs/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDots.js +11 -21
- package/lib/commonjs/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +16 -33
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingIndicator.js +8 -26
- package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +9 -67
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +22 -68
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +246 -335
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +20 -40
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +113 -164
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +27 -49
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +55 -68
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +11 -34
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +37 -57
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +13 -30
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +37 -57
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +16 -40
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +30 -51
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +56 -84
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +23 -37
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +0 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +22 -66
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +97 -127
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +37 -42
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +108 -171
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +141 -225
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/Message/utils/messageActions.js +15 -30
- package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/AttachButton.js +15 -33
- package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CommandsButton.js +13 -31
- package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CooldownTimer.js +8 -20
- package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +48 -86
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +25 -57
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +47 -69
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +176 -236
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +9 -25
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js +15 -33
- package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +9 -20
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +27 -50
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +9 -28
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +14 -34
- package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +20 -41
- package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +14 -34
- package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +6 -24
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +3 -16
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -1
- package/lib/commonjs/components/MessageList/DateHeader.js +8 -18
- package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js +9 -22
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +3 -21
- package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +3 -21
- package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +3 -21
- package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +10 -26
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +239 -355
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageSystem.js +14 -27
- package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +9 -26
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +16 -27
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicator.js +8 -19
- package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +8 -29
- package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +10 -34
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useTypingString.js +4 -18
- package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/filterTypingUsers.js +2 -10
- package/lib/commonjs/components/MessageList/utils/filterTypingUsers.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +3 -11
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +5 -18
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +1 -9
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getReadStates.js +1 -22
- package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js +16 -39
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +16 -36
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +75 -127
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +3 -12
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +39 -77
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +31 -53
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +5 -14
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +2 -5
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/ProgressControl.js +9 -26
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +3 -13
- package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +37 -79
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Spinner/Spinner.js +6 -20
- package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
- package/lib/commonjs/components/Thread/Thread.js +28 -57
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +15 -43
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/docs/data.js +0 -7
- package/lib/commonjs/components/docs/data.js.map +1 -1
- package/lib/commonjs/components/index.js +0 -284
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -18
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +20 -50
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -23
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -23
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +4 -37
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +63 -81
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -23
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js +3 -17
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +7 -32
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/index.js +0 -48
- package/lib/commonjs/contexts/index.js.map +1 -1
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -20
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -20
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +531 -762
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +88 -91
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +19 -44
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -24
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js +3 -12
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +40 -52
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -23
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -20
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +76 -124
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +2 -18
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -23
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +11 -46
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/ThemeContext.js +5 -28
- package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +0 -4
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js +2 -23
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js +2 -26
- package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/commonjs/contexts/typingContext/TypingContext.js +2 -23
- package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/commonjs/contexts/utils/defaultBaseContextValue.js.map +1 -1
- package/lib/commonjs/contexts/utils/getDisplayName.js +0 -2
- package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/commonjs/contexts/utils/isTestEnvironment.js +0 -2
- package/lib/commonjs/contexts/utils/isTestEnvironment.js.map +1 -1
- package/lib/commonjs/emoji-data/compile.js +2 -4
- package/lib/commonjs/emoji-data/compile.js.map +1 -1
- package/lib/commonjs/emoji-data/compiled.js.map +1 -1
- package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
- package/lib/commonjs/emoji-data/emojis.js.map +1 -1
- package/lib/commonjs/emoji-data/index.js +1 -7
- package/lib/commonjs/emoji-data/index.js.map +1 -1
- package/lib/commonjs/hooks/index.js +0 -4
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useAppStateListener.js +0 -7
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
- package/lib/commonjs/hooks/useIsMountedRef.js +0 -3
- package/lib/commonjs/hooks/useIsMountedRef.js.map +1 -1
- package/lib/commonjs/hooks/useLoadingImage.js +7 -16
- package/lib/commonjs/hooks/useLoadingImage.js.map +1 -1
- package/lib/commonjs/hooks/useStreami18n.js +4 -16
- package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js +1 -11
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/icons/ArrowRight.js +1 -8
- package/lib/commonjs/icons/ArrowRight.js.map +1 -1
- package/lib/commonjs/icons/AtMentions.js +1 -8
- package/lib/commonjs/icons/AtMentions.js.map +1 -1
- package/lib/commonjs/icons/Attach.js +1 -8
- package/lib/commonjs/icons/Attach.js.map +1 -1
- package/lib/commonjs/icons/Audio.js +1 -9
- package/lib/commonjs/icons/Audio.js.map +1 -1
- package/lib/commonjs/icons/CSV.js +1 -8
- package/lib/commonjs/icons/CSV.js.map +1 -1
- package/lib/commonjs/icons/Camera.js +1 -8
- package/lib/commonjs/icons/Camera.js.map +1 -1
- package/lib/commonjs/icons/Check.js +1 -8
- package/lib/commonjs/icons/Check.js.map +1 -1
- package/lib/commonjs/icons/CheckAll.js +1 -8
- package/lib/commonjs/icons/CheckAll.js.map +1 -1
- package/lib/commonjs/icons/CheckSend.js +1 -8
- package/lib/commonjs/icons/CheckSend.js.map +1 -1
- package/lib/commonjs/icons/CircleClose.js +1 -8
- package/lib/commonjs/icons/CircleClose.js.map +1 -1
- package/lib/commonjs/icons/CirclePlus.js +1 -8
- package/lib/commonjs/icons/CirclePlus.js.map +1 -1
- package/lib/commonjs/icons/CircleRight.js +1 -8
- package/lib/commonjs/icons/CircleRight.js.map +1 -1
- package/lib/commonjs/icons/Close.js +1 -8
- package/lib/commonjs/icons/Close.js.map +1 -1
- package/lib/commonjs/icons/Copy.js +1 -8
- package/lib/commonjs/icons/Copy.js.map +1 -1
- package/lib/commonjs/icons/CurveLineLeftUp.js +1 -8
- package/lib/commonjs/icons/CurveLineLeftUp.js.map +1 -1
- package/lib/commonjs/icons/DOC.js +1 -9
- package/lib/commonjs/icons/DOC.js.map +1 -1
- package/lib/commonjs/icons/DOCX.js +1 -9
- package/lib/commonjs/icons/DOCX.js.map +1 -1
- package/lib/commonjs/icons/Delete.js +1 -8
- package/lib/commonjs/icons/Delete.js.map +1 -1
- package/lib/commonjs/icons/Down.js +1 -8
- package/lib/commonjs/icons/Down.js.map +1 -1
- package/lib/commonjs/icons/DownloadArrow.js +1 -8
- package/lib/commonjs/icons/DownloadArrow.js.map +1 -1
- package/lib/commonjs/icons/DownloadCloud.js +1 -8
- package/lib/commonjs/icons/DownloadCloud.js.map +1 -1
- package/lib/commonjs/icons/Edit.js +1 -8
- package/lib/commonjs/icons/Edit.js.map +1 -1
- package/lib/commonjs/icons/Error.js +1 -8
- package/lib/commonjs/icons/Error.js.map +1 -1
- package/lib/commonjs/icons/Eye.js +1 -8
- package/lib/commonjs/icons/Eye.js.map +1 -1
- package/lib/commonjs/icons/Flag.js +1 -8
- package/lib/commonjs/icons/Flag.js.map +1 -1
- package/lib/commonjs/icons/Folder.js +1 -8
- package/lib/commonjs/icons/Folder.js.map +1 -1
- package/lib/commonjs/icons/GenericFile.js +1 -9
- package/lib/commonjs/icons/GenericFile.js.map +1 -1
- package/lib/commonjs/icons/GiphyIcon.js +1 -8
- package/lib/commonjs/icons/GiphyIcon.js.map +1 -1
- package/lib/commonjs/icons/Grid.js +1 -8
- package/lib/commonjs/icons/Grid.js.map +1 -1
- package/lib/commonjs/icons/Group.js +1 -8
- package/lib/commonjs/icons/Group.js.map +1 -1
- package/lib/commonjs/icons/HTML.js +1 -8
- package/lib/commonjs/icons/HTML.js.map +1 -1
- package/lib/commonjs/icons/Imgur.js +1 -9
- package/lib/commonjs/icons/Imgur.js.map +1 -1
- package/lib/commonjs/icons/LOLReaction.js +1 -8
- package/lib/commonjs/icons/LOLReaction.js.map +1 -1
- package/lib/commonjs/icons/Lightning.js +1 -8
- package/lib/commonjs/icons/Lightning.js.map +1 -1
- package/lib/commonjs/icons/Link.js +1 -8
- package/lib/commonjs/icons/Link.js.map +1 -1
- package/lib/commonjs/icons/Loading.js +12 -20
- package/lib/commonjs/icons/Loading.js.map +1 -1
- package/lib/commonjs/icons/Logo.js +1 -8
- package/lib/commonjs/icons/Logo.js.map +1 -1
- package/lib/commonjs/icons/LoveReaction.js +1 -8
- package/lib/commonjs/icons/LoveReaction.js.map +1 -1
- package/lib/commonjs/icons/MD.js +1 -8
- package/lib/commonjs/icons/MD.js.map +1 -1
- package/lib/commonjs/icons/MailOpen.js +1 -8
- package/lib/commonjs/icons/MailOpen.js.map +1 -1
- package/lib/commonjs/icons/MenuPointHorizontal.js +1 -8
- package/lib/commonjs/icons/MenuPointHorizontal.js.map +1 -1
- package/lib/commonjs/icons/MenuPointVertical.js +1 -8
- package/lib/commonjs/icons/MenuPointVertical.js.map +1 -1
- package/lib/commonjs/icons/MessageFlag.js +1 -8
- package/lib/commonjs/icons/MessageFlag.js.map +1 -1
- package/lib/commonjs/icons/MessageIcon.js +1 -8
- package/lib/commonjs/icons/MessageIcon.js.map +1 -1
- package/lib/commonjs/icons/Mute.js +1 -8
- package/lib/commonjs/icons/Mute.js.map +1 -1
- package/lib/commonjs/icons/Notification.js +1 -8
- package/lib/commonjs/icons/Notification.js.map +1 -1
- package/lib/commonjs/icons/ODT.js +1 -8
- package/lib/commonjs/icons/ODT.js.map +1 -1
- package/lib/commonjs/icons/PDF.js +1 -8
- package/lib/commonjs/icons/PDF.js.map +1 -1
- package/lib/commonjs/icons/PPT.js +1 -9
- package/lib/commonjs/icons/PPT.js.map +1 -1
- package/lib/commonjs/icons/PPTX.js +1 -9
- package/lib/commonjs/icons/PPTX.js.map +1 -1
- package/lib/commonjs/icons/Pause.js +2 -10
- package/lib/commonjs/icons/Pause.js.map +1 -1
- package/lib/commonjs/icons/Picture.js +1 -8
- package/lib/commonjs/icons/Picture.js.map +1 -1
- package/lib/commonjs/icons/Pin.js +1 -8
- package/lib/commonjs/icons/Pin.js.map +1 -1
- package/lib/commonjs/icons/PinHeader.js +1 -8
- package/lib/commonjs/icons/PinHeader.js.map +1 -1
- package/lib/commonjs/icons/Play.js +1 -8
- package/lib/commonjs/icons/Play.js.map +1 -1
- package/lib/commonjs/icons/RAR.js +1 -8
- package/lib/commonjs/icons/RAR.js.map +1 -1
- package/lib/commonjs/icons/RTF.js +1 -8
- package/lib/commonjs/icons/RTF.js.map +1 -1
- package/lib/commonjs/icons/Recorder.js +1 -8
- package/lib/commonjs/icons/Recorder.js.map +1 -1
- package/lib/commonjs/icons/Refresh.js +1 -8
- package/lib/commonjs/icons/Refresh.js.map +1 -1
- package/lib/commonjs/icons/SEVEN_Z.js +1 -8
- package/lib/commonjs/icons/SEVEN_Z.js.map +1 -1
- package/lib/commonjs/icons/Search.js +1 -8
- package/lib/commonjs/icons/Search.js.map +1 -1
- package/lib/commonjs/icons/SendRight.js +1 -8
- package/lib/commonjs/icons/SendRight.js.map +1 -1
- package/lib/commonjs/icons/SendUp.js +1 -8
- package/lib/commonjs/icons/SendUp.js.map +1 -1
- package/lib/commonjs/icons/Share.js +1 -9
- package/lib/commonjs/icons/Share.js.map +1 -1
- package/lib/commonjs/icons/ShareRightArrow.js +1 -8
- package/lib/commonjs/icons/ShareRightArrow.js.map +1 -1
- package/lib/commonjs/icons/Smile.js +1 -8
- package/lib/commonjs/icons/Smile.js.map +1 -1
- package/lib/commonjs/icons/Sound.js +1 -8
- package/lib/commonjs/icons/Sound.js.map +1 -1
- package/lib/commonjs/icons/TAR.js +1 -8
- package/lib/commonjs/icons/TAR.js.map +1 -1
- package/lib/commonjs/icons/TXT.js +1 -8
- package/lib/commonjs/icons/TXT.js.map +1 -1
- package/lib/commonjs/icons/ThreadReply.js +1 -8
- package/lib/commonjs/icons/ThreadReply.js.map +1 -1
- package/lib/commonjs/icons/ThumbsDownReaction.js +1 -8
- package/lib/commonjs/icons/ThumbsDownReaction.js.map +1 -1
- package/lib/commonjs/icons/ThumbsUpReaction.js +1 -8
- package/lib/commonjs/icons/ThumbsUpReaction.js.map +1 -1
- package/lib/commonjs/icons/Time.js +1 -8
- package/lib/commonjs/icons/Time.js.map +1 -1
- package/lib/commonjs/icons/Unknown.js +1 -8
- package/lib/commonjs/icons/Unknown.js.map +1 -1
- package/lib/commonjs/icons/Unpin.js +1 -8
- package/lib/commonjs/icons/Unpin.js.map +1 -1
- package/lib/commonjs/icons/User.js +1 -8
- package/lib/commonjs/icons/User.js.map +1 -1
- package/lib/commonjs/icons/UserAdd.js +1 -8
- package/lib/commonjs/icons/UserAdd.js.map +1 -1
- package/lib/commonjs/icons/UserAdmin.js +3 -12
- package/lib/commonjs/icons/UserAdmin.js.map +1 -1
- package/lib/commonjs/icons/UserDelete.js +1 -8
- package/lib/commonjs/icons/UserDelete.js.map +1 -1
- package/lib/commonjs/icons/UserMinus.js +1 -8
- package/lib/commonjs/icons/UserMinus.js.map +1 -1
- package/lib/commonjs/icons/Video.js +1 -8
- package/lib/commonjs/icons/Video.js.map +1 -1
- package/lib/commonjs/icons/Warning.js +1 -8
- package/lib/commonjs/icons/Warning.js.map +1 -1
- package/lib/commonjs/icons/WutReaction.js +1 -8
- package/lib/commonjs/icons/WutReaction.js.map +1 -1
- package/lib/commonjs/icons/XLS.js +1 -9
- package/lib/commonjs/icons/XLS.js.map +1 -1
- package/lib/commonjs/icons/XLSX.js +1 -9
- package/lib/commonjs/icons/XLSX.js.map +1 -1
- package/lib/commonjs/icons/ZIP.js +1 -8
- package/lib/commonjs/icons/ZIP.js.map +1 -1
- package/lib/commonjs/icons/index.js +0 -168
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/icons/utils/base.js +11 -25
- package/lib/commonjs/icons/utils/base.js.map +1 -1
- package/lib/commonjs/index.js +0 -35
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +0 -3
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/consts.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js +0 -11
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/api/channelMocks.js +0 -2
- package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteMessage.js +0 -4
- package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteReaction.js +0 -4
- package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/error.js +0 -12
- package/lib/commonjs/mock-builders/api/error.js.map +1 -1
- package/lib/commonjs/mock-builders/api/getOrCreateChannel.js +0 -3
- package/lib/commonjs/mock-builders/api/getOrCreateChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/api/queryChannels.js +0 -3
- package/lib/commonjs/mock-builders/api/queryChannels.js.map +1 -1
- package/lib/commonjs/mock-builders/api/queryMembers.js +0 -3
- package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js +0 -4
- package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendReaction.js +0 -4
- package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/threadReplies.js +0 -3
- package/lib/commonjs/mock-builders/api/threadReplies.js.map +1 -1
- package/lib/commonjs/mock-builders/api/useMockedApis.js +1 -3
- package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/commonjs/mock-builders/api/utils.js +0 -2
- package/lib/commonjs/mock-builders/api/utils.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelDeleted.js +0 -2
- package/lib/commonjs/mock-builders/event/channelDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelHidden.js +0 -2
- package/lib/commonjs/mock-builders/event/channelHidden.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelTruncated.js +0 -2
- package/lib/commonjs/mock-builders/event/channelTruncated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelUpdated.js +0 -2
- package/lib/commonjs/mock-builders/event/channelUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/connectionChanged.js +0 -2
- package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/commonjs/mock-builders/event/connectionRecovered.js +0 -2
- package/lib/commonjs/mock-builders/event/connectionRecovered.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberAdded.js +0 -2
- package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberRemoved.js +0 -2
- package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberUpdated.js +0 -2
- package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageDeleted.js +0 -2
- package/lib/commonjs/mock-builders/event/messageDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageNew.js +0 -2
- package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageRead.js +0 -2
- package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageUpdated.js +0 -2
- package/lib/commonjs/mock-builders/event/messageUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js +0 -2
- package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMessageNew.js +0 -2
- package/lib/commonjs/mock-builders/event/notificationMessageNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js +0 -4
- package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js +0 -2
- package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionDeleted.js +0 -2
- package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionNew.js +0 -2
- package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionUpdated.js +0 -2
- package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/typing.js +0 -2
- package/lib/commonjs/mock-builders/event/typing.js.map +1 -1
- package/lib/commonjs/mock-builders/event/userPresence.js +0 -2
- package/lib/commonjs/mock-builders/event/userPresence.js.map +1 -1
- package/lib/commonjs/mock-builders/event/userUpdated.js +0 -2
- package/lib/commonjs/mock-builders/event/userUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/attachment.js +0 -24
- package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/channel.js +13 -28
- package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/member.js +0 -5
- package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/message.js +0 -8
- package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/reaction.js +0 -5
- package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/user.js +0 -10
- package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js +23 -47
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/native/react-native-mock.js.map +1 -1
- package/lib/commonjs/native.js +0 -23
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +2 -49
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient_v4.js +12 -41
- package/lib/commonjs/store/QuickSqliteClient_v4.js.map +1 -1
- package/lib/commonjs/store/apis/addPendingTask.js +3 -12
- package/lib/commonjs/store/apis/addPendingTask.js.map +1 -1
- package/lib/commonjs/store/apis/deleteChannel.js +2 -8
- package/lib/commonjs/store/apis/deleteChannel.js.map +1 -1
- package/lib/commonjs/store/apis/deleteMember.js +3 -9
- package/lib/commonjs/store/apis/deleteMember.js.map +1 -1
- package/lib/commonjs/store/apis/deleteMessage.js +2 -8
- package/lib/commonjs/store/apis/deleteMessage.js.map +1 -1
- package/lib/commonjs/store/apis/deleteMessagesForChannel.js +2 -8
- package/lib/commonjs/store/apis/deleteMessagesForChannel.js.map +1 -1
- package/lib/commonjs/store/apis/deletePendingTask.js +0 -6
- package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -1
- package/lib/commonjs/store/apis/deleteReaction.js +4 -10
- package/lib/commonjs/store/apis/deleteReaction.js.map +1 -1
- package/lib/commonjs/store/apis/deleteReactions.js +2 -8
- package/lib/commonjs/store/apis/deleteReactions.js.map +1 -1
- package/lib/commonjs/store/apis/getAllChannelIds.js +0 -3
- package/lib/commonjs/store/apis/getAllChannelIds.js.map +1 -1
- package/lib/commonjs/store/apis/getAppSettings.js +0 -7
- package/lib/commonjs/store/apis/getAppSettings.js.map +1 -1
- package/lib/commonjs/store/apis/getChannelMessages.js +1 -8
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/store/apis/getChannels.js +1 -10
- package/lib/commonjs/store/apis/getChannels.js.map +1 -1
- package/lib/commonjs/store/apis/getChannelsForFilterSort.js +2 -10
- package/lib/commonjs/store/apis/getChannelsForFilterSort.js.map +1 -1
- package/lib/commonjs/store/apis/getLastSyncedAt.js +0 -7
- package/lib/commonjs/store/apis/getLastSyncedAt.js.map +1 -1
- package/lib/commonjs/store/apis/getMembers.js +0 -5
- package/lib/commonjs/store/apis/getMembers.js.map +1 -1
- package/lib/commonjs/store/apis/getPendingTasks.js +0 -7
- package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -1
- package/lib/commonjs/store/apis/getReads.js +0 -5
- package/lib/commonjs/store/apis/getReads.js.map +1 -1
- package/lib/commonjs/store/apis/index.js +0 -46
- package/lib/commonjs/store/apis/index.js.map +1 -1
- package/lib/commonjs/store/apis/insertReaction.js +2 -9
- package/lib/commonjs/store/apis/insertReaction.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js +1 -9
- package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannels.js +1 -8
- package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMembersForChannels.js +0 -6
- package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js +0 -6
- package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js +0 -6
- package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReadsForChannels.js +0 -6
- package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/updateMessage.js +2 -22
- package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
- package/lib/commonjs/store/apis/updateReaction.js +4 -18
- package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
- package/lib/commonjs/store/apis/upsertAppSettings.js +3 -8
- package/lib/commonjs/store/apis/upsertAppSettings.js.map +1 -1
- package/lib/commonjs/store/apis/upsertChannelData.js +2 -9
- package/lib/commonjs/store/apis/upsertChannelData.js.map +1 -1
- package/lib/commonjs/store/apis/upsertChannels.js +8 -26
- package/lib/commonjs/store/apis/upsertChannels.js.map +1 -1
- package/lib/commonjs/store/apis/upsertCidsForQuery.js +4 -11
- package/lib/commonjs/store/apis/upsertCidsForQuery.js.map +1 -1
- package/lib/commonjs/store/apis/upsertLastSyncedAt.js +1 -6
- package/lib/commonjs/store/apis/upsertLastSyncedAt.js.map +1 -1
- package/lib/commonjs/store/apis/upsertMembers.js +3 -12
- package/lib/commonjs/store/apis/upsertMembers.js.map +1 -1
- package/lib/commonjs/store/apis/upsertMessages.js +2 -16
- package/lib/commonjs/store/apis/upsertMessages.js.map +1 -1
- package/lib/commonjs/store/apis/upsertReads.js +3 -12
- package/lib/commonjs/store/apis/upsertReads.js.map +1 -1
- package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js +1 -3
- package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
- package/lib/commonjs/store/constants.js.map +1 -1
- package/lib/commonjs/store/mappers/mapChannelDataToStorable.js +23 -29
- package/lib/commonjs/store/mappers/mapChannelDataToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapDateTimeToStorable.js +0 -2
- package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMemberToStorable.js +11 -14
- package/lib/commonjs/store/mappers/mapMemberToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js +12 -18
- package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapReactionToStorable.js +6 -12
- package/lib/commonjs/store/mappers/mapReactionToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapReadToStorable.js +3 -6
- package/lib/commonjs/store/mappers/mapReadToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToChannel.js +23 -27
- package/lib/commonjs/store/mappers/mapStorableToChannel.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToMember.js +11 -14
- package/lib/commonjs/store/mappers/mapStorableToMember.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToMessage.js +8 -17
- package/lib/commonjs/store/mappers/mapStorableToMessage.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToReaction.js +6 -11
- package/lib/commonjs/store/mappers/mapStorableToReaction.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToRead.js +2 -5
- package/lib/commonjs/store/mappers/mapStorableToRead.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToTask.js +4 -6
- package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToUser.js +7 -11
- package/lib/commonjs/store/mappers/mapStorableToUser.js.map +1 -1
- package/lib/commonjs/store/mappers/mapTaskToStorable.js +0 -4
- package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapUserToStorable.js +7 -12
- package/lib/commonjs/store/mappers/mapUserToStorable.js.map +1 -1
- package/lib/commonjs/store/schema.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +0 -5
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js +0 -8
- package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +2 -10
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js +0 -3
- package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +5 -14
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +3 -11
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +0 -5
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/printRow.js +0 -5
- package/lib/commonjs/store/sqlite-utils/printRow.js.map +1 -1
- package/lib/commonjs/store/types.js.map +1 -1
- package/lib/commonjs/test-utils/BetterSqlite.js +0 -11
- package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +217 -321
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/utils/Streami18n.js +74 -181
- package/lib/commonjs/utils/Streami18n.js.map +1 -1
- package/lib/commonjs/utils/addReactionToLocalState.js +4 -21
- package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -1
- package/lib/commonjs/utils/date.js +0 -2
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/getResizedImageUrl.js +4 -10
- package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -1
- package/lib/commonjs/utils/getUrlOfImageAttachment.js +0 -1
- package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -1
- package/lib/commonjs/utils/patchMessageTextCommand.js +0 -6
- package/lib/commonjs/utils/patchMessageTextCommand.js.map +1 -1
- package/lib/commonjs/utils/removeReactionFromLocalState.js +3 -9
- package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -1
- package/lib/commonjs/utils/removeReservedFields.js +0 -4
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -1
- package/lib/commonjs/utils/utils.js +86 -179
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +45 -56
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/AttachmentActions.js +25 -43
- package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +114 -191
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Card.js +53 -80
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +30 -57
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +19 -50
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/FileIcon.js +3 -45
- package/lib/module/components/Attachment/FileIcon.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +121 -162
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +5 -23
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +76 -109
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +7 -23
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
- package/lib/module/components/Attachment/ImageLoadingIndicator.js +3 -15
- package/lib/module/components/Attachment/ImageLoadingIndicator.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +10 -20
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js +1 -10
- package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +8 -24
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +22 -35
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +1 -7
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +4 -7
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +5 -9
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/types.js.map +1 -1
- package/lib/module/components/Attachment/utils/getAspectRatio.js +0 -2
- package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -1
- package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js +12 -14
- package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
- package/lib/module/components/Attachment/utils/getGiphyMimeType.js +0 -2
- package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -1
- package/lib/module/components/Attachment/utils/openUrlSafely.js +19 -33
- package/lib/module/components/Attachment/utils/openUrlSafely.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +74 -123
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +4 -18
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +33 -56
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +2 -10
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +71 -117
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +33 -59
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +2 -10
- package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +2 -10
- package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +4 -14
- package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +4 -13
- package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +177 -285
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +6 -24
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +12 -30
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +30 -47
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +21 -49
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js +22 -42
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +15 -33
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +1136 -1586
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +31 -34
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +40 -43
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +81 -84
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +1 -11
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js +9 -13
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js +9 -13
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateTypingContext.js +0 -3
- package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useTargetedMessage.js +3 -12
- package/lib/module/components/Channel/hooks/useTargetedMessage.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +71 -110
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +2 -12
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +12 -24
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +9 -20
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +6 -17
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +55 -84
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelList/Skeleton.js +16 -33
- package/lib/module/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +28 -50
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -14
- package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -14
- package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js +4 -12
- package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -16
- package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +28 -49
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -17
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +28 -50
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -12
- package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js +1 -12
- package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +29 -34
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +141 -219
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelList/utils.js +13 -26
- package/lib/module/components/ChannelList/utils.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +3 -19
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +14 -44
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +4 -15
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +35 -60
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +7 -18
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +10 -24
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +4 -14
- package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +7 -17
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +4 -27
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +12 -36
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js +4 -21
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +22 -68
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +26 -69
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +0 -26
- package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js +42 -69
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +8 -11
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +19 -50
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/Chat/hooks/useMutedUsers.js +3 -11
- package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js +1 -8
- package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/module/components/ImageBackground.js +7 -21
- package/lib/module/components/ImageBackground.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +53 -131
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +12 -27
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +21 -52
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +79 -125
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +26 -56
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +12 -32
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +14 -27
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +16 -38
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js +12 -26
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +15 -52
- package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +10 -25
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDot.js +10 -21
- package/lib/module/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDots.js +11 -21
- package/lib/module/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js +16 -33
- package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingIndicator.js +8 -26
- package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +9 -67
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +22 -68
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/module/components/Message/Message.js +246 -335
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +20 -40
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +113 -164
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js +27 -49
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js +55 -68
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +11 -34
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageReplies.js +37 -57
- package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +13 -30
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +37 -57
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +16 -40
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +30 -51
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +56 -84
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +23 -37
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +0 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +22 -66
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +97 -127
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +37 -42
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js +108 -171
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +141 -225
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/Message/utils/messageActions.js +15 -30
- package/lib/module/components/Message/utils/messageActions.js.map +1 -1
- package/lib/module/components/MessageInput/AttachButton.js +15 -33
- package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/module/components/MessageInput/CommandsButton.js +13 -31
- package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/module/components/MessageInput/CooldownTimer.js +8 -20
- package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +48 -86
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +25 -57
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +47 -69
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +176 -236
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/MoreOptionsButton.js +9 -25
- package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendButton.js +15 -33
- package/lib/module/components/MessageInput/SendButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +9 -20
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +27 -50
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js +9 -28
- package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +14 -34
- package/lib/module/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputGiphySearch.js +20 -41
- package/lib/module/components/MessageInput/components/InputGiphySearch.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +14 -34
- package/lib/module/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useCooldown.js +6 -24
- package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useCountdown.js +3 -16
- package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -1
- package/lib/module/components/MessageList/DateHeader.js +8 -18
- package/lib/module/components/MessageList/DateHeader.js.map +1 -1
- package/lib/module/components/MessageList/InlineDateSeparator.js +9 -22
- package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +3 -21
- package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +3 -21
- package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +3 -21
- package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js +10 -26
- package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +239 -355
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/MessageSystem.js +14 -27
- package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/module/components/MessageList/NetworkDownIndicator.js +9 -26
- package/lib/module/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +16 -27
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/module/components/MessageList/TypingIndicator.js +8 -19
- package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/module/components/MessageList/TypingIndicatorContainer.js +8 -29
- package/lib/module/components/MessageList/TypingIndicatorContainer.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +10 -34
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useTypingString.js +4 -18
- package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/module/components/MessageList/utils/filterTypingUsers.js +2 -10
- package/lib/module/components/MessageList/utils/filterTypingUsers.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +3 -11
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +5 -18
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +1 -9
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/module/components/MessageList/utils/getReadStates.js +1 -22
- package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js +16 -39
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +16 -36
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +75 -127
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js +3 -12
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionList.js +39 -77
- package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +31 -53
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +5 -14
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +2 -5
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
- package/lib/module/components/ProgressControl/ProgressControl.js +9 -26
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +3 -13
- package/lib/module/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +37 -79
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Spinner/Spinner.js +6 -20
- package/lib/module/components/Spinner/Spinner.js.map +1 -1
- package/lib/module/components/Thread/Thread.js +28 -57
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +15 -43
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/docs/data.js +0 -7
- package/lib/module/components/docs/data.js.map +1 -1
- package/lib/module/components/index.js +0 -284
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -18
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +20 -50
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -23
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -23
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +4 -37
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js +63 -81
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -23
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js +3 -17
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +7 -32
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/index.js +0 -48
- package/lib/module/contexts/index.js.map +1 -1
- package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -20
- package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +2 -20
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +531 -762
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +88 -91
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +19 -44
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -24
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js +3 -12
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +40 -52
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -23
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -20
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +76 -124
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +2 -18
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -23
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +11 -46
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/ThemeContext.js +5 -28
- package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +0 -4
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js +2 -23
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js +2 -26
- package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/module/contexts/typingContext/TypingContext.js +2 -23
- package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/module/contexts/utils/defaultBaseContextValue.js.map +1 -1
- package/lib/module/contexts/utils/getDisplayName.js +0 -2
- package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/module/contexts/utils/isTestEnvironment.js +0 -2
- package/lib/module/contexts/utils/isTestEnvironment.js.map +1 -1
- package/lib/module/emoji-data/compile.js +2 -4
- package/lib/module/emoji-data/compile.js.map +1 -1
- package/lib/module/emoji-data/compiled.js.map +1 -1
- package/lib/module/emoji-data/emojiNames.js.map +1 -1
- package/lib/module/emoji-data/emojis.js.map +1 -1
- package/lib/module/emoji-data/index.js +1 -7
- package/lib/module/emoji-data/index.js.map +1 -1
- package/lib/module/hooks/index.js +0 -4
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useAppStateListener.js +0 -7
- package/lib/module/hooks/useAppStateListener.js.map +1 -1
- package/lib/module/hooks/useIsMountedRef.js +0 -3
- package/lib/module/hooks/useIsMountedRef.js.map +1 -1
- package/lib/module/hooks/useLoadingImage.js +7 -16
- package/lib/module/hooks/useLoadingImage.js.map +1 -1
- package/lib/module/hooks/useStreami18n.js +4 -16
- package/lib/module/hooks/useStreami18n.js.map +1 -1
- package/lib/module/hooks/useTranslatedMessage.js +1 -11
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/icons/ArrowRight.js +1 -8
- package/lib/module/icons/ArrowRight.js.map +1 -1
- package/lib/module/icons/AtMentions.js +1 -8
- package/lib/module/icons/AtMentions.js.map +1 -1
- package/lib/module/icons/Attach.js +1 -8
- package/lib/module/icons/Attach.js.map +1 -1
- package/lib/module/icons/Audio.js +1 -9
- package/lib/module/icons/Audio.js.map +1 -1
- package/lib/module/icons/CSV.js +1 -8
- package/lib/module/icons/CSV.js.map +1 -1
- package/lib/module/icons/Camera.js +1 -8
- package/lib/module/icons/Camera.js.map +1 -1
- package/lib/module/icons/Check.js +1 -8
- package/lib/module/icons/Check.js.map +1 -1
- package/lib/module/icons/CheckAll.js +1 -8
- package/lib/module/icons/CheckAll.js.map +1 -1
- package/lib/module/icons/CheckSend.js +1 -8
- package/lib/module/icons/CheckSend.js.map +1 -1
- package/lib/module/icons/CircleClose.js +1 -8
- package/lib/module/icons/CircleClose.js.map +1 -1
- package/lib/module/icons/CirclePlus.js +1 -8
- package/lib/module/icons/CirclePlus.js.map +1 -1
- package/lib/module/icons/CircleRight.js +1 -8
- package/lib/module/icons/CircleRight.js.map +1 -1
- package/lib/module/icons/Close.js +1 -8
- package/lib/module/icons/Close.js.map +1 -1
- package/lib/module/icons/Copy.js +1 -8
- package/lib/module/icons/Copy.js.map +1 -1
- package/lib/module/icons/CurveLineLeftUp.js +1 -8
- package/lib/module/icons/CurveLineLeftUp.js.map +1 -1
- package/lib/module/icons/DOC.js +1 -9
- package/lib/module/icons/DOC.js.map +1 -1
- package/lib/module/icons/DOCX.js +1 -9
- package/lib/module/icons/DOCX.js.map +1 -1
- package/lib/module/icons/Delete.js +1 -8
- package/lib/module/icons/Delete.js.map +1 -1
- package/lib/module/icons/Down.js +1 -8
- package/lib/module/icons/Down.js.map +1 -1
- package/lib/module/icons/DownloadArrow.js +1 -8
- package/lib/module/icons/DownloadArrow.js.map +1 -1
- package/lib/module/icons/DownloadCloud.js +1 -8
- package/lib/module/icons/DownloadCloud.js.map +1 -1
- package/lib/module/icons/Edit.js +1 -8
- package/lib/module/icons/Edit.js.map +1 -1
- package/lib/module/icons/Error.js +1 -8
- package/lib/module/icons/Error.js.map +1 -1
- package/lib/module/icons/Eye.js +1 -8
- package/lib/module/icons/Eye.js.map +1 -1
- package/lib/module/icons/Flag.js +1 -8
- package/lib/module/icons/Flag.js.map +1 -1
- package/lib/module/icons/Folder.js +1 -8
- package/lib/module/icons/Folder.js.map +1 -1
- package/lib/module/icons/GenericFile.js +1 -9
- package/lib/module/icons/GenericFile.js.map +1 -1
- package/lib/module/icons/GiphyIcon.js +1 -8
- package/lib/module/icons/GiphyIcon.js.map +1 -1
- package/lib/module/icons/Grid.js +1 -8
- package/lib/module/icons/Grid.js.map +1 -1
- package/lib/module/icons/Group.js +1 -8
- package/lib/module/icons/Group.js.map +1 -1
- package/lib/module/icons/HTML.js +1 -8
- package/lib/module/icons/HTML.js.map +1 -1
- package/lib/module/icons/Imgur.js +1 -9
- package/lib/module/icons/Imgur.js.map +1 -1
- package/lib/module/icons/LOLReaction.js +1 -8
- package/lib/module/icons/LOLReaction.js.map +1 -1
- package/lib/module/icons/Lightning.js +1 -8
- package/lib/module/icons/Lightning.js.map +1 -1
- package/lib/module/icons/Link.js +1 -8
- package/lib/module/icons/Link.js.map +1 -1
- package/lib/module/icons/Loading.js +12 -20
- package/lib/module/icons/Loading.js.map +1 -1
- package/lib/module/icons/Logo.js +1 -8
- package/lib/module/icons/Logo.js.map +1 -1
- package/lib/module/icons/LoveReaction.js +1 -8
- package/lib/module/icons/LoveReaction.js.map +1 -1
- package/lib/module/icons/MD.js +1 -8
- package/lib/module/icons/MD.js.map +1 -1
- package/lib/module/icons/MailOpen.js +1 -8
- package/lib/module/icons/MailOpen.js.map +1 -1
- package/lib/module/icons/MenuPointHorizontal.js +1 -8
- package/lib/module/icons/MenuPointHorizontal.js.map +1 -1
- package/lib/module/icons/MenuPointVertical.js +1 -8
- package/lib/module/icons/MenuPointVertical.js.map +1 -1
- package/lib/module/icons/MessageFlag.js +1 -8
- package/lib/module/icons/MessageFlag.js.map +1 -1
- package/lib/module/icons/MessageIcon.js +1 -8
- package/lib/module/icons/MessageIcon.js.map +1 -1
- package/lib/module/icons/Mute.js +1 -8
- package/lib/module/icons/Mute.js.map +1 -1
- package/lib/module/icons/Notification.js +1 -8
- package/lib/module/icons/Notification.js.map +1 -1
- package/lib/module/icons/ODT.js +1 -8
- package/lib/module/icons/ODT.js.map +1 -1
- package/lib/module/icons/PDF.js +1 -8
- package/lib/module/icons/PDF.js.map +1 -1
- package/lib/module/icons/PPT.js +1 -9
- package/lib/module/icons/PPT.js.map +1 -1
- package/lib/module/icons/PPTX.js +1 -9
- package/lib/module/icons/PPTX.js.map +1 -1
- package/lib/module/icons/Pause.js +2 -10
- package/lib/module/icons/Pause.js.map +1 -1
- package/lib/module/icons/Picture.js +1 -8
- package/lib/module/icons/Picture.js.map +1 -1
- package/lib/module/icons/Pin.js +1 -8
- package/lib/module/icons/Pin.js.map +1 -1
- package/lib/module/icons/PinHeader.js +1 -8
- package/lib/module/icons/PinHeader.js.map +1 -1
- package/lib/module/icons/Play.js +1 -8
- package/lib/module/icons/Play.js.map +1 -1
- package/lib/module/icons/RAR.js +1 -8
- package/lib/module/icons/RAR.js.map +1 -1
- package/lib/module/icons/RTF.js +1 -8
- package/lib/module/icons/RTF.js.map +1 -1
- package/lib/module/icons/Recorder.js +1 -8
- package/lib/module/icons/Recorder.js.map +1 -1
- package/lib/module/icons/Refresh.js +1 -8
- package/lib/module/icons/Refresh.js.map +1 -1
- package/lib/module/icons/SEVEN_Z.js +1 -8
- package/lib/module/icons/SEVEN_Z.js.map +1 -1
- package/lib/module/icons/Search.js +1 -8
- package/lib/module/icons/Search.js.map +1 -1
- package/lib/module/icons/SendRight.js +1 -8
- package/lib/module/icons/SendRight.js.map +1 -1
- package/lib/module/icons/SendUp.js +1 -8
- package/lib/module/icons/SendUp.js.map +1 -1
- package/lib/module/icons/Share.js +1 -9
- package/lib/module/icons/Share.js.map +1 -1
- package/lib/module/icons/ShareRightArrow.js +1 -8
- package/lib/module/icons/ShareRightArrow.js.map +1 -1
- package/lib/module/icons/Smile.js +1 -8
- package/lib/module/icons/Smile.js.map +1 -1
- package/lib/module/icons/Sound.js +1 -8
- package/lib/module/icons/Sound.js.map +1 -1
- package/lib/module/icons/TAR.js +1 -8
- package/lib/module/icons/TAR.js.map +1 -1
- package/lib/module/icons/TXT.js +1 -8
- package/lib/module/icons/TXT.js.map +1 -1
- package/lib/module/icons/ThreadReply.js +1 -8
- package/lib/module/icons/ThreadReply.js.map +1 -1
- package/lib/module/icons/ThumbsDownReaction.js +1 -8
- package/lib/module/icons/ThumbsDownReaction.js.map +1 -1
- package/lib/module/icons/ThumbsUpReaction.js +1 -8
- package/lib/module/icons/ThumbsUpReaction.js.map +1 -1
- package/lib/module/icons/Time.js +1 -8
- package/lib/module/icons/Time.js.map +1 -1
- package/lib/module/icons/Unknown.js +1 -8
- package/lib/module/icons/Unknown.js.map +1 -1
- package/lib/module/icons/Unpin.js +1 -8
- package/lib/module/icons/Unpin.js.map +1 -1
- package/lib/module/icons/User.js +1 -8
- package/lib/module/icons/User.js.map +1 -1
- package/lib/module/icons/UserAdd.js +1 -8
- package/lib/module/icons/UserAdd.js.map +1 -1
- package/lib/module/icons/UserAdmin.js +3 -12
- package/lib/module/icons/UserAdmin.js.map +1 -1
- package/lib/module/icons/UserDelete.js +1 -8
- package/lib/module/icons/UserDelete.js.map +1 -1
- package/lib/module/icons/UserMinus.js +1 -8
- package/lib/module/icons/UserMinus.js.map +1 -1
- package/lib/module/icons/Video.js +1 -8
- package/lib/module/icons/Video.js.map +1 -1
- package/lib/module/icons/Warning.js +1 -8
- package/lib/module/icons/Warning.js.map +1 -1
- package/lib/module/icons/WutReaction.js +1 -8
- package/lib/module/icons/WutReaction.js.map +1 -1
- package/lib/module/icons/XLS.js +1 -9
- package/lib/module/icons/XLS.js.map +1 -1
- package/lib/module/icons/XLSX.js +1 -9
- package/lib/module/icons/XLSX.js.map +1 -1
- package/lib/module/icons/ZIP.js +1 -8
- package/lib/module/icons/ZIP.js.map +1 -1
- package/lib/module/icons/index.js +0 -168
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/icons/utils/base.js +11 -25
- package/lib/module/icons/utils/base.js.map +1 -1
- package/lib/module/index.js +0 -35
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +0 -3
- package/lib/module/init.js.map +1 -1
- package/lib/module/mock-builders/DB/consts.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js +0 -11
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/mock-builders/api/channelMocks.js +0 -2
- package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/module/mock-builders/api/deleteMessage.js +0 -4
- package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/module/mock-builders/api/deleteReaction.js +0 -4
- package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/module/mock-builders/api/error.js +0 -12
- package/lib/module/mock-builders/api/error.js.map +1 -1
- package/lib/module/mock-builders/api/getOrCreateChannel.js +0 -3
- package/lib/module/mock-builders/api/getOrCreateChannel.js.map +1 -1
- package/lib/module/mock-builders/api/queryChannels.js +0 -3
- package/lib/module/mock-builders/api/queryChannels.js.map +1 -1
- package/lib/module/mock-builders/api/queryMembers.js +0 -3
- package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
- package/lib/module/mock-builders/api/sendMessage.js +0 -4
- package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/module/mock-builders/api/sendReaction.js +0 -4
- package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/module/mock-builders/api/threadReplies.js +0 -3
- package/lib/module/mock-builders/api/threadReplies.js.map +1 -1
- package/lib/module/mock-builders/api/useMockedApis.js +1 -3
- package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/module/mock-builders/api/utils.js +0 -2
- package/lib/module/mock-builders/api/utils.js.map +1 -1
- package/lib/module/mock-builders/event/channelDeleted.js +0 -2
- package/lib/module/mock-builders/event/channelDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/channelHidden.js +0 -2
- package/lib/module/mock-builders/event/channelHidden.js.map +1 -1
- package/lib/module/mock-builders/event/channelTruncated.js +0 -2
- package/lib/module/mock-builders/event/channelTruncated.js.map +1 -1
- package/lib/module/mock-builders/event/channelUpdated.js +0 -2
- package/lib/module/mock-builders/event/channelUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/connectionChanged.js +0 -2
- package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/module/mock-builders/event/connectionRecovered.js +0 -2
- package/lib/module/mock-builders/event/connectionRecovered.js.map +1 -1
- package/lib/module/mock-builders/event/memberAdded.js +0 -2
- package/lib/module/mock-builders/event/memberAdded.js.map +1 -1
- package/lib/module/mock-builders/event/memberRemoved.js +0 -2
- package/lib/module/mock-builders/event/memberRemoved.js.map +1 -1
- package/lib/module/mock-builders/event/memberUpdated.js +0 -2
- package/lib/module/mock-builders/event/memberUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/messageDeleted.js +0 -2
- package/lib/module/mock-builders/event/messageDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/messageNew.js +0 -2
- package/lib/module/mock-builders/event/messageNew.js.map +1 -1
- package/lib/module/mock-builders/event/messageRead.js +0 -2
- package/lib/module/mock-builders/event/messageRead.js.map +1 -1
- package/lib/module/mock-builders/event/messageUpdated.js +0 -2
- package/lib/module/mock-builders/event/messageUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/notificationAddedToChannel.js +0 -2
- package/lib/module/mock-builders/event/notificationAddedToChannel.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMessageNew.js +0 -2
- package/lib/module/mock-builders/event/notificationMessageNew.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMutesUpdated.js +0 -4
- package/lib/module/mock-builders/event/notificationMutesUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/notificationRemovedFromChannel.js +0 -2
- package/lib/module/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
- package/lib/module/mock-builders/event/reactionDeleted.js +0 -2
- package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/reactionNew.js +0 -2
- package/lib/module/mock-builders/event/reactionNew.js.map +1 -1
- package/lib/module/mock-builders/event/reactionUpdated.js +0 -2
- package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/typing.js +0 -2
- package/lib/module/mock-builders/event/typing.js.map +1 -1
- package/lib/module/mock-builders/event/userPresence.js +0 -2
- package/lib/module/mock-builders/event/userPresence.js.map +1 -1
- package/lib/module/mock-builders/event/userUpdated.js +0 -2
- package/lib/module/mock-builders/event/userUpdated.js.map +1 -1
- package/lib/module/mock-builders/generator/attachment.js +0 -24
- package/lib/module/mock-builders/generator/attachment.js.map +1 -1
- package/lib/module/mock-builders/generator/channel.js +13 -28
- package/lib/module/mock-builders/generator/channel.js.map +1 -1
- package/lib/module/mock-builders/generator/member.js +0 -5
- package/lib/module/mock-builders/generator/member.js.map +1 -1
- package/lib/module/mock-builders/generator/message.js +0 -8
- package/lib/module/mock-builders/generator/message.js.map +1 -1
- package/lib/module/mock-builders/generator/reaction.js +0 -5
- package/lib/module/mock-builders/generator/reaction.js.map +1 -1
- package/lib/module/mock-builders/generator/user.js +0 -10
- package/lib/module/mock-builders/generator/user.js.map +1 -1
- package/lib/module/mock-builders/mock.js +23 -47
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/mock-builders/native/react-native-mock.js.map +1 -1
- package/lib/module/native.js +0 -23
- package/lib/module/native.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +2 -49
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/QuickSqliteClient_v4.js +12 -41
- package/lib/module/store/QuickSqliteClient_v4.js.map +1 -1
- package/lib/module/store/apis/addPendingTask.js +3 -12
- package/lib/module/store/apis/addPendingTask.js.map +1 -1
- package/lib/module/store/apis/deleteChannel.js +2 -8
- package/lib/module/store/apis/deleteChannel.js.map +1 -1
- package/lib/module/store/apis/deleteMember.js +3 -9
- package/lib/module/store/apis/deleteMember.js.map +1 -1
- package/lib/module/store/apis/deleteMessage.js +2 -8
- package/lib/module/store/apis/deleteMessage.js.map +1 -1
- package/lib/module/store/apis/deleteMessagesForChannel.js +2 -8
- package/lib/module/store/apis/deleteMessagesForChannel.js.map +1 -1
- package/lib/module/store/apis/deletePendingTask.js +0 -6
- package/lib/module/store/apis/deletePendingTask.js.map +1 -1
- package/lib/module/store/apis/deleteReaction.js +4 -10
- package/lib/module/store/apis/deleteReaction.js.map +1 -1
- package/lib/module/store/apis/deleteReactions.js +2 -8
- package/lib/module/store/apis/deleteReactions.js.map +1 -1
- package/lib/module/store/apis/getAllChannelIds.js +0 -3
- package/lib/module/store/apis/getAllChannelIds.js.map +1 -1
- package/lib/module/store/apis/getAppSettings.js +0 -7
- package/lib/module/store/apis/getAppSettings.js.map +1 -1
- package/lib/module/store/apis/getChannelMessages.js +1 -8
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/store/apis/getChannels.js +1 -10
- package/lib/module/store/apis/getChannels.js.map +1 -1
- package/lib/module/store/apis/getChannelsForFilterSort.js +2 -10
- package/lib/module/store/apis/getChannelsForFilterSort.js.map +1 -1
- package/lib/module/store/apis/getLastSyncedAt.js +0 -7
- package/lib/module/store/apis/getLastSyncedAt.js.map +1 -1
- package/lib/module/store/apis/getMembers.js +0 -5
- package/lib/module/store/apis/getMembers.js.map +1 -1
- package/lib/module/store/apis/getPendingTasks.js +0 -7
- package/lib/module/store/apis/getPendingTasks.js.map +1 -1
- package/lib/module/store/apis/getReads.js +0 -5
- package/lib/module/store/apis/getReads.js.map +1 -1
- package/lib/module/store/apis/index.js +0 -46
- package/lib/module/store/apis/index.js.map +1 -1
- package/lib/module/store/apis/insertReaction.js +2 -9
- package/lib/module/store/apis/insertReaction.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js +1 -9
- package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannels.js +1 -8
- package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMembersForChannels.js +0 -6
- package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMessagesForChannels.js +0 -6
- package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectReactionsForMessages.js +0 -6
- package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/module/store/apis/queries/selectReadsForChannels.js +0 -6
- package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/module/store/apis/updateMessage.js +2 -22
- package/lib/module/store/apis/updateMessage.js.map +1 -1
- package/lib/module/store/apis/updateReaction.js +4 -18
- package/lib/module/store/apis/updateReaction.js.map +1 -1
- package/lib/module/store/apis/upsertAppSettings.js +3 -8
- package/lib/module/store/apis/upsertAppSettings.js.map +1 -1
- package/lib/module/store/apis/upsertChannelData.js +2 -9
- package/lib/module/store/apis/upsertChannelData.js.map +1 -1
- package/lib/module/store/apis/upsertChannels.js +8 -26
- package/lib/module/store/apis/upsertChannels.js.map +1 -1
- package/lib/module/store/apis/upsertCidsForQuery.js +4 -11
- package/lib/module/store/apis/upsertCidsForQuery.js.map +1 -1
- package/lib/module/store/apis/upsertLastSyncedAt.js +1 -6
- package/lib/module/store/apis/upsertLastSyncedAt.js.map +1 -1
- package/lib/module/store/apis/upsertMembers.js +3 -12
- package/lib/module/store/apis/upsertMembers.js.map +1 -1
- package/lib/module/store/apis/upsertMessages.js +2 -16
- package/lib/module/store/apis/upsertMessages.js.map +1 -1
- package/lib/module/store/apis/upsertReads.js +3 -12
- package/lib/module/store/apis/upsertReads.js.map +1 -1
- package/lib/module/store/apis/utils/convertFilterSortToQuery.js +1 -3
- package/lib/module/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
- package/lib/module/store/constants.js.map +1 -1
- package/lib/module/store/mappers/mapChannelDataToStorable.js +23 -29
- package/lib/module/store/mappers/mapChannelDataToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapDateTimeToStorable.js +0 -2
- package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapMemberToStorable.js +11 -14
- package/lib/module/store/mappers/mapMemberToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapMessageToStorable.js +12 -18
- package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapReactionToStorable.js +6 -12
- package/lib/module/store/mappers/mapReactionToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapReadToStorable.js +3 -6
- package/lib/module/store/mappers/mapReadToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToChannel.js +23 -27
- package/lib/module/store/mappers/mapStorableToChannel.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToMember.js +11 -14
- package/lib/module/store/mappers/mapStorableToMember.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToMessage.js +8 -17
- package/lib/module/store/mappers/mapStorableToMessage.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToReaction.js +6 -11
- package/lib/module/store/mappers/mapStorableToReaction.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToRead.js +2 -5
- package/lib/module/store/mappers/mapStorableToRead.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToTask.js +4 -6
- package/lib/module/store/mappers/mapStorableToTask.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToUser.js +7 -11
- package/lib/module/store/mappers/mapStorableToUser.js.map +1 -1
- package/lib/module/store/mappers/mapTaskToStorable.js +0 -4
- package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapUserToStorable.js +7 -12
- package/lib/module/store/mappers/mapUserToStorable.js.map +1 -1
- package/lib/module/store/schema.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendOrderByClause.js +0 -5
- package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendWhereCluase.js +0 -8
- package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js +2 -10
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createDeleteQuery.js +0 -3
- package/lib/module/store/sqlite-utils/createDeleteQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js +5 -14
- package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpdateQuery.js +3 -11
- package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpsertQuery.js +0 -5
- package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/printRow.js +0 -5
- package/lib/module/store/sqlite-utils/printRow.js.map +1 -1
- package/lib/module/store/types.js.map +1 -1
- package/lib/module/test-utils/BetterSqlite.js +0 -11
- package/lib/module/test-utils/BetterSqlite.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +217 -321
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/utils/Streami18n.js +74 -181
- package/lib/module/utils/Streami18n.js.map +1 -1
- package/lib/module/utils/addReactionToLocalState.js +4 -21
- package/lib/module/utils/addReactionToLocalState.js.map +1 -1
- package/lib/module/utils/date.js +0 -2
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/getResizedImageUrl.js +4 -10
- package/lib/module/utils/getResizedImageUrl.js.map +1 -1
- package/lib/module/utils/getUrlOfImageAttachment.js +0 -1
- package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -1
- package/lib/module/utils/patchMessageTextCommand.js +0 -6
- package/lib/module/utils/patchMessageTextCommand.js.map +1 -1
- package/lib/module/utils/removeReactionFromLocalState.js +3 -9
- package/lib/module/utils/removeReactionFromLocalState.js.map +1 -1
- package/lib/module/utils/removeReservedFields.js +0 -4
- package/lib/module/utils/removeReservedFields.js.map +1 -1
- package/lib/module/utils/utils.js +86 -179
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts +1 -0
- package/lib/typescript/components/Attachment/AttachmentActions.d.ts +1 -0
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -0
- package/lib/typescript/components/Attachment/Card.d.ts +1 -0
- package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -0
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +1 -0
- package/lib/typescript/components/Attachment/Gallery.d.ts +1 -0
- package/lib/typescript/components/Attachment/Giphy.d.ts +1 -0
- package/lib/typescript/components/Attachment/ImageLoadingFailedIndicator.d.ts +1 -0
- package/lib/typescript/components/Attachment/ImageLoadingIndicator.d.ts +1 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +1 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +1 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +1 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +1 -0
- package/lib/typescript/components/ChannelList/ChannelListMessenger.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewTitle.d.ts +1 -0
- package/lib/typescript/components/ChannelPreview/ChannelPreviewUnreadCount.d.ts +1 -0
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -0
- package/lib/typescript/components/Message/Message.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageReplies.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +1 -0
- package/lib/typescript/components/MessageInput/AttachButton.d.ts +1 -0
- package/lib/typescript/components/MessageInput/CommandsButton.d.ts +1 -0
- package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +1 -0
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -0
- package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +1 -0
- package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -0
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -0
- package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +1 -0
- package/lib/typescript/components/MessageInput/SendButton.d.ts +1 -0
- package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
- package/lib/typescript/components/MessageInput/components/InputEditingStateHeader.d.ts +1 -0
- package/lib/typescript/components/MessageInput/components/InputGiphySearch.d.ts +1 -0
- package/lib/typescript/components/MessageInput/components/InputReplyStateHeader.d.ts +1 -0
- package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -0
- package/lib/typescript/components/MessageList/NetworkDownIndicator.d.ts +1 -0
- package/lib/typescript/components/MessageList/TypingIndicator.d.ts +1 -0
- package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +1 -0
- package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +1 -0
- package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +1 -0
- package/lib/typescript/components/Reply/Reply.d.ts +1 -0
- package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts +1 -0
- package/package.json +7 -4
- package/src/components/MessageInput/__tests__/__snapshots__/AttachButton.test.js.snap +6 -0
- package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +12 -0
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +9 -0
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageList.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flex","width","contentContainer","flexGrow","paddingBottom","invert","transform","scaleY","listContainer","messagePadding","paddingHorizontal","stickyHeader","position","top","keyExtractor","item","id","created_at","toISOString","Date","now","toString","flatListViewabilityConfig","viewAreaCoveragePercentThreshold","MessageListWithContext","props","LoadingMoreIndicator","threadList","InlineLoadingMoreThreadIndicator","InlineLoadingMoreIndicator","additionalFlatListProps","channel","client","closePicker","DateHeader","disabled","disableTypingIndicator","EmptyStateIndicator","FlatList","FooterComponent","hasNoMoreRecentMessagesToLoad","HeaderComponent","InlineLoadingMoreRecentIndicator","hideStickyDateHeader","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","inverted","isListActive","legacyImageViewerSwipeBehaviour","loadChannelAroundMessage","loading","LoadingIndicator","loadMore","loadMoreRecent","loadMoreThread","markRead","Message","MessageSystem","myMessageTheme","NetworkDownIndicator","noGroupByUser","onListScroll","onThreadSelect","overlay","reloadChannel","ScrollToBottomButton","scrollToFirstUnreadThreshold","selectedPicker","setFlatListRef","setMessages","setSelectedPicker","setTargetedMessage","StickyHeader","targetedMessage","tDateTimeParser","thread","TypingIndicator","TypingIndicatorContainer","theme","white_snow","colors","messageList","modifiedTheme","style","messageListLengthBeforeUpdate","messageListLengthAfterUpdate","length","topMessageBeforeUpdate","topMessageAfterUpdate","autoscrollToTop","setAutoscrollToTop","onStartReachedTracker","onEndReachedTracker","onStartReachedInPromise","onEndReachedInPromise","flatListRef","initialScrollSet","channelResyncScrollSet","scrollToDebounceTimeoutRef","messageIdToScrollToRef","messageIdLastScrolledToRef","hasMoved","setHasMoved","lastReceivedId","setLastReceivedId","scrollToBottomButtonVisible","setScrollToBottomButtonVisible","stickyHeaderDate","setStickyHeaderDate","stickyHeaderDateRef","isUnreadMessageRef","message","lastRead","channelLastReadRef","initialized","undefined","current","updateStickyHeaderDateIfNeeded","viewableItems","lastItem","pop","isMessageTypeDeleted","type","toDateString","onViewableItemsChanged","Platform","OS","resetPaginationTrackersRef","shouldMarkReadOnFirstLoad","countUnread","lastReceivedMessage","hasNewMessage","isMyMessage","user","userID","scrollToBottomIfNeeded","setTimeout","scrollToOffset","offset","maybeCallOnStartReached","renderItem","index","offlineMode","lastMessage","showUnreadUnderlay","insertInlineUnreadIndicator","wrapMessageInTheme","goToMessage","groupStyles","dateSeparator","quoted_message_id","limit","callback","Promise","resolve","onError","then","maybeCallOnEndReached","handleScroll","event","nativeEvent","contentOffset","y","visibleLength","layoutMeasurement","height","contentLength","contentSize","isScrollAtStart","isScrollAtEnd","isScrollAtBottom","showScrollToBottomButton","shouldMarkRead","goToNewMessages","onScrollToIndexFailedRef","info","animated","averageItemLength","scrollToIndex","viewPosition","messageId","indexOfParentInMessageList","findIndex","clearTimeout","messageIdToScroll","messagesWithImages","filter","attachments","some","attachment","title_link","og_scrape_url","image_url","thumb_url","imageString","map","join","numberOfMessagesWithImages","threadExists","stickyHeaderFormatDate","getFullYear","tStickyHeaderDate","stickyHeaderDateString","format","dismissImagePicker","onScrollBeginDrag","onScrollEndDrag","refCallback","ref","debugRef","isDebugModeEnabled","__DEV__","setEventType","setSendEventParams","action","data","renderListEmptyComponent","StickyHeaderComponent","backgroundColor","autoscrollToTopThreshold","minIndexForVisible","MessageList","enableMessageGroupingByUser","error","isChannelActive","t"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AAYA;;AAKA;;AACA;;AACA;;AACA;;AAEA;;AAIA;;AAIA;;AACA;;AACA;;AAIA;;AAIA;;AAIA;;AAIA;;AACA;;AACA;;;;;;;;;AAQA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,IAAI,EAAE,CAFG;AAGTC,IAAAA,KAAK,EAAE;AAHE,GADoB;AAM/BC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,QAAQ,EAAE,CADM;AAQhBC,IAAAA,aAAa,EAAE;AARC,GANa;AAgB/BJ,EAAAA,IAAI,EAAE;AAAEA,IAAAA,IAAI,EAAE;AAAR,GAhByB;AAiB/BK,EAAAA,MAAM,EAAE;AAAEC,IAAAA,SAAS,EAAE,CAAC;AAAEC,MAAAA,MAAM,EAAE,CAAC;AAAX,KAAD;AAAb,GAjBuB;AAkB/BC,EAAAA,aAAa,EAAE;AACbR,IAAAA,IAAI,EAAE,CADO;AAEbC,IAAAA,KAAK,EAAE;AAFM,GAlBgB;AAsB/BQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,iBAAiB,EAAE;AADL,GAtBe;AAyB/BC,EAAAA,YAAY,EAAE;AACZC,IAAAA,QAAQ,EAAE,UADE;AAEZC,IAAAA,GAAG,EAAE;AAFO;AAzBiB,CAAlB,CAAf;;AA+BA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAGnBC,IAHmB,EAIhB;AACH,MAAIA,IAAI,CAACC,EAAT,EAAa,OAAOD,IAAI,CAACC,EAAZ;AACb,MAAID,IAAI,CAACE,UAAT,EACE,OAAO,OAAOF,IAAI,CAACE,UAAZ,KAA2B,QAA3B,GAAsCF,IAAI,CAACE,UAA3C,GAAwDF,IAAI,CAACE,UAAL,CAAgBC,WAAhB,EAA/D;AACF,SAAOC,IAAI,CAACC,GAAL,GAAWC,QAAX,EAAP;AACD,CATD;;AAWA,IAAMC,yBAAyB,GAAG;AAChCC,EAAAA,gCAAgC,EAAE;AADF,CAAlC;;AAyHA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAG7BC,KAH6B,EAI1B;AAAA;;AACH,MAAMC,oBAAoB,GAAGD,KAAK,CAACE,UAAN,GACzBC,kEADyB,GAEzBC,sDAFJ;AAGA,MACEC,uBADF,GAkDIL,KAlDJ,CACEK,uBADF;AAAA,MAEEC,OAFF,GAkDIN,KAlDJ,CAEEM,OAFF;AAAA,MAGEC,MAHF,GAkDIP,KAlDJ,CAGEO,MAHF;AAAA,MAIEC,WAJF,GAkDIR,KAlDJ,CAIEQ,WAJF;AAAA,MAKEC,UALF,GAkDIT,KAlDJ,CAKES,UALF;AAAA,MAMEC,QANF,GAkDIV,KAlDJ,CAMEU,QANF;AAAA,MAOEC,sBAPF,GAkDIX,KAlDJ,CAOEW,sBAPF;AAAA,MAQEC,mBARF,GAkDIZ,KAlDJ,CAQEY,mBARF;AAAA,MASEC,QATF,GAkDIb,KAlDJ,CASEa,QATF;AAAA,8BAkDIb,KAlDJ,CAUEc,eAVF;AAAA,MAUEA,eAVF,sCAUoBb,oBAVpB;AAAA,MAWEc,6BAXF,GAkDIf,KAlDJ,CAWEe,6BAXF;AAAA,8BAkDIf,KAlDJ,CAYEgB,eAZF;AAAA,MAYEA,eAZF,sCAYoBC,kEAZpB;AAAA,MAaEC,oBAbF,GAkDIlB,KAlDJ,CAaEkB,oBAbF;AAAA,MAcEC,iCAdF,GAkDInB,KAlDJ,CAcEmB,iCAdF;AAAA,MAeEC,mBAfF,GAkDIpB,KAlDJ,CAeEoB,mBAfF;AAAA,MAgBEC,qBAhBF,GAkDIrB,KAlDJ,CAgBEqB,qBAhBF;AAAA,wBAkDIrB,KAlDJ,CAiBEsB,QAjBF;AAAA,MAiBEA,QAjBF,gCAiBa,IAjBb;AAAA,4BAkDItB,KAlDJ,CAkBEuB,YAlBF;AAAA,MAkBEA,YAlBF,oCAkBiB,KAlBjB;AAAA,MAmBEC,+BAnBF,GAkDIxB,KAlDJ,CAmBEwB,+BAnBF;AAAA,MAoBEC,wBApBF,GAkDIzB,KAlDJ,CAoBEyB,wBApBF;AAAA,MAqBEC,OArBF,GAkDI1B,KAlDJ,CAqBE0B,OArBF;AAAA,MAsBEC,gBAtBF,GAkDI3B,KAlDJ,CAsBE2B,gBAtBF;AAAA,MAuBEC,QAvBF,GAkDI5B,KAlDJ,CAuBE4B,QAvBF;AAAA,MAwBEC,cAxBF,GAkDI7B,KAlDJ,CAwBE6B,cAxBF;AAAA,MAyBEC,cAzBF,GAkDI9B,KAlDJ,CAyBE8B,cAzBF;AAAA,MA0BEC,QA1BF,GAkDI/B,KAlDJ,CA0BE+B,QA1BF;AAAA,MA2BEC,OA3BF,GAkDIhC,KAlDJ,CA2BEgC,OA3BF;AAAA,MA4BEC,aA5BF,GAkDIjC,KAlDJ,CA4BEiC,aA5BF;AAAA,MA6BEC,cA7BF,GAkDIlC,KAlDJ,CA6BEkC,cA7BF;AAAA,MA8BEC,oBA9BF,GAkDInC,KAlDJ,CA8BEmC,oBA9BF;AAAA,MA+BEC,aA/BF,GAkDIpC,KAlDJ,CA+BEoC,aA/BF;AAAA,MAgCEC,YAhCF,GAkDIrC,KAlDJ,CAgCEqC,YAhCF;AAAA,MAiCEC,cAjCF,GAkDItC,KAlDJ,CAiCEsC,cAjCF;AAAA,MAkCEC,OAlCF,GAkDIvC,KAlDJ,CAkCEuC,OAlCF;AAAA,MAmCEC,aAnCF,GAkDIxC,KAlDJ,CAmCEwC,aAnCF;AAAA,MAoCEC,oBApCF,GAkDIzC,KAlDJ,CAoCEyC,oBApCF;AAAA,MAqCEC,4BArCF,GAkDI1C,KAlDJ,CAqCE0C,4BArCF;AAAA,MAsCEC,cAtCF,GAkDI3C,KAlDJ,CAsCE2C,cAtCF;AAAA,MAuCEC,cAvCF,GAkDI5C,KAlDJ,CAuCE4C,cAvCF;AAAA,MAwCEC,WAxCF,GAkDI7C,KAlDJ,CAwCE6C,WAxCF;AAAA,MAyCEC,iBAzCF,GAkDI9C,KAlDJ,CAyCE8C,iBAzCF;AAAA,MA0CEC,kBA1CF,GAkDI/C,KAlDJ,CA0CE+C,kBA1CF;AAAA,MA2CEC,YA3CF,GAkDIhD,KAlDJ,CA2CEgD,YA3CF;AAAA,MA4CEC,eA5CF,GAkDIjD,KAlDJ,CA4CEiD,eA5CF;AAAA,MA6CEC,eA7CF,GAkDIlD,KAlDJ,CA6CEkD,eA7CF;AAAA,MA8CEC,MA9CF,GAkDInD,KAlDJ,CA8CEmD,MA9CF;AAAA,0BAkDInD,KAlDJ,CA+CEE,UA/CF;AAAA,MA+CEA,UA/CF,kCA+Ce,KA/Cf;AAAA,MAgDEkD,eAhDF,GAkDIpD,KAlDJ,CAgDEoD,eAhDF;AAAA,MAiDEC,wBAjDF,GAkDIrD,KAlDJ,CAiDEqD,wBAjDF;;AAoDA,kBAAkB,6BAAlB;AAAA,MAAQC,KAAR,aAAQA,KAAR;;AAEA,MACYC,UADZ,GAGID,KAHJ,CACEE,MADF,CACYD,UADZ;AAAA,2BAGID,KAHJ,CAEEG,WAFF;AAAA,MAEiBpF,SAFjB,sBAEiBA,SAFjB;AAAA,MAE4BI,gBAF5B,sBAE4BA,gBAF5B;AAAA,MAE8CM,aAF9C,sBAE8CA,aAF9C;AAKA,MAAM2E,aAAa,GAAG,oBACpB;AAAA,WAAM,+BAAY;AAAEC,MAAAA,KAAK,EAAEzB,cAAT;AAAyBoB,MAAAA,KAAK,EAALA;AAAzB,KAAZ,CAAN;AAAA,GADoB,EAEpB,CAACpB,cAAD,EAAiBoB,KAAjB,CAFoB,CAAtB;AAKA,MAAMG,WAAW,GAAG,oCAAmC;AACrDrB,IAAAA,aAAa,EAAbA,aADqD;AAErDlC,IAAAA,UAAU,EAAVA;AAFqD,GAAnC,CAApB;AAIA,MAAM0D,6BAA6B,GAAG,mBAAO,CAAP,CAAtC;AACA,MAAMC,4BAA4B,GAAGJ,WAAW,CAACK,MAAjD;AAMA,MAAMC,sBAAsB,GAAG,oBAA/B;AACA,MAAMC,qBAAqB,GAAGP,WAAW,CAACA,WAAW,CAACK,MAAZ,GAAqB,CAAtB,CAAzC;;AAEA,kBAA8C,qBAAS,KAAT,CAA9C;AAAA;AAAA,MAAOG,eAAP;AAAA,MAAwBC,kBAAxB;;AAMA,MAAMC,qBAAqB,GAAG,mBAAgC,EAAhC,CAA9B;AACA,MAAMC,mBAAmB,GAAG,mBAAgC,EAAhC,CAA5B;AAEA,MAAMC,uBAAuB,GAAG,mBAA6B,IAA7B,CAAhC;AACA,MAAMC,qBAAqB,GAAG,mBAA6B,IAA7B,CAA9B;AAEA,MAAMC,WAAW,GAAG,mBAA6D,IAA7D,CAApB;AAOA,MAAMC,gBAAgB,GAAG,mBAAgB,CAACrD,iCAAjB,CAAzB;AAEA,MAAMsD,sBAAsB,GAAG,mBAAgB,IAAhB,CAA/B;AAKA,MAAMC,0BAA0B,GAAG,oBAAnC;AAMA,MAAMC,sBAAsB,GAAG,oBAA/B;AAKA,MAAMC,0BAA0B,GAAG,oBAAnC;;AACA,mBAAgC,qBAAS,KAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAA4C,8CAAS,oDAAuBrB,WAAvB,CAAT,qBAAS,sBAAqClE,EAA9C,CAA5C;AAAA;AAAA,MAAOwF,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,mBAAsE,qBAAS,KAAT,CAAtE;AAAA;AAAA,MAAOC,2BAAP;AAAA,MAAoCC,8BAApC;;AAEA,mBAAgD,sBAAhD;AAAA;AAAA,MAAOC,gBAAP;AAAA,MAAyBC,mBAAzB;;AACA,MAAMC,mBAAmB,GAAG,oBAA5B;AAEA,MAAMC,kBAAkB,GAAG,mBACzB,UACEC,OADF,EAEEC,QAFF;AAAA,WAGKD,OAAO,IAAIC,QAAX,IAAuBD,OAAO,CAAC/F,UAA/B,IAA6CgG,QAAQ,GAAGD,OAAO,CAAC/F,UAHrE;AAAA,GADyB,CAA3B;AAOA,MAAMiG,kBAAkB,GAAG,mBAAOnF,OAAO,QAAP,IAAAA,OAAO,CAAEoF,WAAT,GAAuBpF,OAAO,CAACkF,QAAR,EAAvB,GAA4CG,SAAnD,CAA3B;AAEA,wBAAU,YAAM;AACdF,IAAAA,kBAAkB,CAACG,OAAnB,GAA6BtF,OAAO,QAAP,IAAAA,OAAO,CAAEoF,WAAT,GAAuBpF,OAAO,CAACkF,QAAR,EAAvB,GAA4CG,SAAzE;AACD,GAFD,EAEG,CAACrF,OAAD,CAFH;;AAIA,MAAMuF,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACC,aAAD,EAAgC;AACrE,QAAIA,aAAa,CAAChC,MAAlB,EAA0B;AAAA;;AACxB,UAAMiC,QAAQ,GAAGD,aAAa,CAACE,GAAd,EAAjB;AAIA,UAAMC,oBAAoB,GAAGF,QAAQ,CAACzG,IAAT,CAAc4G,IAAd,KAAuB,SAApD;;AAEA,UACEH,QAAQ,QAAR,sBAAAA,QAAQ,CAAEzG,IAAV,4BAAgBE,UAAhB,IACA,CAACyG,oBADD,IAEA,OAAOF,QAAQ,CAACzG,IAAT,CAAcE,UAArB,KAAoC,QAFpC,IAGAuG,QAAQ,CAACzG,IAAT,CAAcE,UAAd,CAAyB2G,YAAzB,iCAA4Cd,mBAAmB,CAACO,OAAhE,qBAA4C,sBAA6BO,YAA7B,EAA5C,CAJF,EAKE;AACAd,QAAAA,mBAAmB,CAACO,OAApB,GAA8BG,QAAQ,CAACzG,IAAT,CAAcE,UAA5C;AACA4F,QAAAA,mBAAmB,CAACW,QAAQ,CAACzG,IAAT,CAAcE,UAAf,CAAnB;AACD;AACF;AACF,GAlBD;;AAwBA,MAAM4G,sBAAsB,GAAG,mBAC7B,gBAAmE;AAAA,QAAhEN,aAAgE,QAAhEA,aAAgE;;AASjE,QACEO,sBAASC,EAAT,KAAgB,SAAhB,IACAR,aADA,YACAA,aAAa,CAAEhC,MADf,IAEA,CAAAgC,aAAa,QAAb,YAAAA,aAAa,CAAEhC,MAAf,KAAyBF,6BAA6B,CAACgC,OAHzD,EAIE;AACAtF,MAAAA,OAAO,CAACyB,QAAR;AACD;;AAED,QAAI+D,aAAa,IAAI,CAAC5E,oBAAtB,EAA4C;AAC1C2E,MAAAA,8BAA8B,CAACC,aAAD,CAA9B;AACD;AACF,GArB4B,CAA/B;AA2BA,MAAMS,0BAA0B,GAAG,mBAAO,YAAM;AAC9CpC,IAAAA,qBAAqB,CAACyB,OAAtB,GAAgC,EAAhC;AACAxB,IAAAA,mBAAmB,CAACwB,OAApB,GAA8B,EAA9B;AACD,GAHkC,CAAnC;AAKA,wBAAU,YAAM;AACdV,IAAAA,8BAA8B,CAAC,KAAD,CAA9B;AACD,GAFD,EAEG,CAACxE,QAAD,CAFH;AAIA,wBAAU,YAAM;AAad,QAAM8F,yBAAyB,GAC7B,CAAC9E,OAAD,IACApB,OADA,KAEE,CAACa,iCAAD,IAAsCb,OAAO,CAACmG,WAAR,KAAwB,CAA/D,IACEtF,iCAAiC,IAChCb,OAAO,CAACmG,WAAR,MAAyB/D,4BAJ7B,CADF;;AAOA,QAAI8D,yBAAJ,EAA+B;AAC7BzE,MAAAA,QAAQ;AACT;AACF,GAvBD,EAuBG,CAACL,OAAD,CAvBH;AAyBA,wBAAU,YAAM;AAAA;;AACd,QAAMgF,mBAAmB,GAAG,oDAAuBjD,WAAvB,CAA5B;AAEA,QAAMkD,aAAa,GAAG5B,cAAc,MAAK2B,mBAAL,oBAAKA,mBAAmB,CAAEnH,EAA1B,CAApC;AACA,QAAMqH,WAAW,GAAG,CAAAF,mBAAmB,QAAnB,qCAAAA,mBAAmB,CAAEG,IAArB,2CAA2BtH,EAA3B,MAAkCgB,MAAM,CAACuG,MAA7D;AAEA9B,IAAAA,iBAAiB,CAAC0B,mBAAD,oBAACA,mBAAmB,CAAEnH,EAAtB,CAAjB;;AAQA,QAAMwH,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AAAA;;AACnC,UAAI,CAACxG,MAAD,IAAW,CAACD,OAAZ,IAAuBmD,WAAW,CAACK,MAAZ,KAAuB,CAAlD,EAAqD;AACnD;AACD;;AACD,UACG6C,aAAa,IAAIC,WAAlB,IACA/C,4BAA4B,GAAGD,6BAA6B,CAACgC,OAD7D,IAEC,yBAAA7B,sBAAsB,CAAC6B,OAAvB,mCAAgCpG,UAAhC,IACCwE,qBADD,YACCA,qBAAqB,CAAExE,UADxB,IAECuE,sBAAsB,CAAC6B,OAAvB,CAA+BpG,UAA/B,GAA4CwE,qBAAqB,CAACxE,UALtE,EAME;AACAiF,QAAAA,sBAAsB,CAACmB,OAAvB,GAAiC,KAAjC;AACAV,QAAAA,8BAA8B,CAAC,KAAD,CAA9B;AACAqB,QAAAA,0BAA0B,CAACX,OAA3B;AAEAoB,QAAAA,UAAU,CAAC,YAAM;AAAA;;AACf,kCAAAzC,WAAW,CAACqB,OAAZ,0CAAqBqB,cAArB,CAAoC;AAClCC,YAAAA,MAAM,EAAE;AAD0B,WAApC;AAGD,SAJS,EAIP,EAJO,CAAV;AAKAF,QAAAA,UAAU,CAAC,YAAM;AACfvC,UAAAA,sBAAsB,CAACmB,OAAvB,GAAiC,IAAjC;;AACA,cAAItF,OAAO,CAACmG,WAAR,KAAwB,CAA5B,EAA+B;AAC7B1E,YAAAA,QAAQ;AACT;AACF,SALS,EAKP,GALO,CAAV;AAMD;AACF,KA3BD;;AA6BA,QAAI7B,UAAU,IAAIa,6BAAlB,EAAiD;AAC/CgG,MAAAA,sBAAsB;AACvB,KAFD,MAEO,IAAI,CAAC9B,2BAAL,EAAkC;AACvCC,MAAAA,8BAA8B,CAAC,IAAD,CAA9B;AACD;;AAED,QACE,CAACnE,6BAAD,IACAwD,WAAW,CAACqB,OADZ,IAEAhC,6BAA6B,CAACgC,OAA9B,KAA0C,CAF1C,IAGA/B,4BAA4B,GAAG,EAJjC,EAKE;AAKAsD,MAAAA,uBAAuB,CAAC,EAAD,CAAvB;AACD;;AAEDvD,IAAAA,6BAA6B,CAACgC,OAA9B,GAAwC/B,4BAAxC;AACAE,IAAAA,sBAAsB,CAAC6B,OAAvB,GAAiC5B,qBAAjC;AACD,GAhED,EAgEG,CAACH,4BAAD,EAA+BG,qBAA/B,oBAA+BA,qBAAqB,CAAEzE,EAAtD,CAhEH;AAkEA,wBAAU,YAAM;AACd2E,IAAAA,kBAAkB,CAACnD,6BAAD,CAAlB;AACD,GAFD,EAEG,CAAC0C,WAAD,EAAc1C,6BAAd,CAFH;;AAIA,MAAMqG,UAAU,GAAG,SAAbA,UAAa,QAMb;AAAA;;AAAA,QALJC,KAKI,SALJA,KAKI;AAAA,QAJE9B,OAIF,SAJJjG,IAII;AACJ,QAAI,CAACgB,OAAD,IAAa,CAACA,OAAO,CAACoF,WAAT,IAAwB,CAACpF,OAAO,CAACgH,WAAlD,EAAgE,OAAO,IAAP;AAEhE,QAAM9B,QAAQ,GAAGlF,OAAO,CAACkF,QAAR,EAAjB;AAEA,QAAM+B,WAAW,GAAG9D,WAAH,oBAAGA,WAAW,CAAG4D,KAAK,GAAG,CAAX,CAA/B;AAEA,QAAMG,kBAAkB,GACtB,CAAC,CAAClC,kBAAkB,CAACM,OAAnB,CAA2BL,OAA3B,EAAoCC,QAApC,CAAF,IAAmDP,2BADrD;AAEA,QAAMwC,2BAA2B,GAC/BD,kBAAkB,IAAI,CAAClC,kBAAkB,CAACM,OAAnB,CAA2B2B,WAA3B,EAAwC/B,QAAxC,CADzB;;AAGA,QAAID,OAAO,CAACW,IAAR,KAAiB,QAArB,EAA+B;AAC7B,aACE,kEACE,gCAAC,iBAAD;AAAM,QAAA,MAAM,yBAAuBmB,KAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SACE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE9B,OAAxB;AAAiC,QAAA,KAAK,EAAErH,MAAM,CAACc,cAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QADF,CADF,EAIGyI,2BAA2B,IAAI,gCAAC,qBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAJlC,CADF;AAQD;;AAED,QAAMC,kBAAkB,GAAGnH,MAAM,CAACuG,MAAP,uBAAkBvB,OAAO,CAACsB,IAA1B,qBAAkB,cAActH,EAAhC,KAAsC,CAAC,CAAC2C,cAAnE;AACA,WAAOwF,kBAAkB,GACvB,kEACE,gCAAC,2BAAD;AAAe,MAAA,WAAW,EAAEhE,aAA5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,iBAAD;AAAM,MAAA,MAAM,yBAAuB2D,KAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,OAAD;AACE,MAAA,WAAW,EAAEM,WADf;AAEE,MAAA,WAAW,EACT,+DAA0CpC,OAA1C,IAAqDA,OAAO,CAACqC,WAA7D,GAA2E,EAH/E;AAKE,MAAA,iBAAiB,EAAE3E,eAAe,KAAKsC,OAAO,CAAChG,EALjD;AAME,MAAA,cAAc,EAAEwF,cAAc,KAAKQ,OAAO,CAAChG,EAA3B,GAAgCwF,cAAhC,GAAiDY,SANnE;AAOE,MAAA,OAAO,EAAEJ,OAPX;AAQE,MAAA,cAAc,EAAEjD,cARlB;AASE,MAAA,kBAAkB,EAAEkF,kBATtB;AAUE,MAAA,KAAK,EAAEtJ,MAAM,CAACc,cAVhB;AAWE,MAAA,UAAU,EAAEkB,UAXd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,CADF,CADF,EAkBG,+DAA0CqF,OAA1C,KAAsDA,OAAO,CAACsC,aAA9D,IACC,gCAAC,mBAAD;AAAqB,MAAA,IAAI,EAAEtC,OAAO,CAACsC,aAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAnBJ,EAsBGJ,2BAA2B,IAAI,gCAAC,qBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAtBlC,CADuB,GA0BvB,kEACE,gCAAC,iBAAD;AAAM,MAAA,MAAM,yBAAuBJ,KAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,OAAD;AACE,MAAA,WAAW,EAAEM,WADf;AAEE,MAAA,WAAW,EACT,+DAA0CpC,OAA1C,IAAqDA,OAAO,CAACqC,WAA7D,GAA2E,EAH/E;AAKE,MAAA,iBAAiB,EAAE3E,eAAe,KAAKsC,OAAO,CAAChG,EALjD;AAME,MAAA,cAAc,EACZwF,cAAc,KAAKQ,OAAO,CAAChG,EAA3B,IAAiCgG,OAAO,CAACuC,iBAAzC,GACI/C,cADJ,GAEIY,SATR;AAWE,MAAA,OAAO,EAAEJ,OAXX;AAYE,MAAA,cAAc,EAAEjD,cAZlB;AAaE,MAAA,kBAAkB,EAAEkF,kBAbtB;AAcE,MAAA,KAAK,EAAEtJ,MAAM,CAACc,cAdhB;AAeE,MAAA,UAAU,EAAEkB,UAfd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,CADF,EAoBG,+DAA0CqF,OAA1C,KAAsDA,OAAO,CAACsC,aAA9D,IACC,gCAAC,mBAAD;AAAqB,MAAA,IAAI,EAAEtC,OAAO,CAACsC,aAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MArBJ,EAwBGJ,2BAA2B,IAAI,gCAAC,qBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAxBlC,CA1BF;AAqDD,GAnFD;;AA4GA,MAAMN,uBAAuB;AAAA,gFAAG,iBAAOY,KAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAE1BtE,WAAW,QAAX,IAAAA,WAAW,CAAEK,MAAb,IAAuBK,qBAAqB,CAACyB,OAAtB,CAA8BnC,WAAW,CAACK,MAA1C,CAFG;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAM9B,kBAAIL,WAAJ,YAAIA,WAAW,CAAEK,MAAjB,EAAyB;AACvBK,gBAAAA,qBAAqB,CAACyB,OAAtB,CAA8BnC,WAAW,CAACK,MAA1C,IAAoD,IAApD;AACD;;AAEKkE,cAAAA,QAVwB,GAUb,SAAXA,QAAW,GAAM;AACrB3D,gBAAAA,uBAAuB,CAACuB,OAAxB,GAAkC,IAAlC;AAEA,uBAAOqC,OAAO,CAACC,OAAR,EAAP;AACD,eAd6B;;AAgBxBC,cAAAA,OAhBwB,GAgBd,SAAVA,OAAU,GAAM;AAEpBnB,gBAAAA,UAAU,CAAC,YAAM;AACf7C,kBAAAA,qBAAqB,CAACyB,OAAtB,GAAgC,EAAhC;AACD,iBAFS,EAEP,IAFO,CAAV;AAGD,eArB6B;;AAAA,mBAwB1BtB,qBAAqB,CAACsB,OAxBI;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAyBtBtB,qBAAqB,CAACsB,OAzBA;;AAAA;AA0B5BvB,cAAAA,uBAAuB,CAACuB,OAAxB,GAAkC/D,cAAc,CAACkG,KAAD,CAAd,CAAsBK,IAAtB,CAA2BJ,QAA3B,WAA2CG,OAA3C,CAAlC;AA1B4B;AAAA;;AAAA;AA4B5B9D,cAAAA,uBAAuB,CAACuB,OAAxB,GAAkC/D,cAAc,CAACkG,KAAD,CAAd,CAAsBK,IAAtB,CAA2BJ,QAA3B,WAA2CG,OAA3C,CAAlC;;AA5B4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAvBhB,uBAAuB;AAAA;AAAA;AAAA,KAA7B;;AAqCA,MAAMkB,qBAAqB;AAAA,gFAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAExB5E,WAAW,QAAX,IAAAA,WAAW,CAAEK,MAAb,IAAuBM,mBAAmB,CAACwB,OAApB,CAA4BnC,WAAW,CAACK,MAAxC,CAFC;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAM5B,kBAAIL,WAAJ,YAAIA,WAAW,CAAEK,MAAjB,EAAyB;AACvBM,gBAAAA,mBAAmB,CAACwB,OAApB,CAA4BnC,WAAW,CAACK,MAAxC,IAAkD,IAAlD;AACD;;AAEKkE,cAAAA,QAVsB,GAUX,SAAXA,QAAW,GAAM;AACrB1D,gBAAAA,qBAAqB,CAACsB,OAAtB,GAAgC,IAAhC;AACA,uBAAOqC,OAAO,CAACC,OAAR,EAAP;AACD,eAb2B;;AAetBC,cAAAA,OAfsB,GAeZ,SAAVA,OAAU,GAAM;AAEpBnB,gBAAAA,UAAU,CAAC,YAAM;AACf5C,kBAAAA,mBAAmB,CAACwB,OAApB,GAA8B,EAA9B;AACD,iBAFS,EAEP,IAFO,CAAV;AAGD,eApB2B;;AAAA,mBAuBxBvB,uBAAuB,CAACuB,OAvBA;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAwBpBvB,uBAAuB,CAACuB,OAxBJ;;AAAA;AAyB1BtB,cAAAA,qBAAqB,CAACsB,OAAtB,GAAgC,CAAC1F,UAAU,GAAG4B,cAAc,EAAjB,GAAsBF,QAAQ,EAAzC,EAC7BwG,IAD6B,CACxBJ,QADwB,WAEvBG,OAFuB,CAAhC;AAzB0B;AAAA;;AAAA;AA6B1B7D,cAAAA,qBAAqB,CAACsB,OAAtB,GAAgC,CAAC1F,UAAU,GAAG4B,cAAc,EAAjB,GAAsBF,QAAQ,EAAzC,EAC7BwG,IAD6B,CACxBJ,QADwB,WAEvBG,OAFuB,CAAhC;;AA7B0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAArBE,qBAAqB;AAAA;AAAA;AAAA,KAA3B;;AA0CA,MAAMC,YAAyC,GAAG,SAA5CA,YAA4C,CAACC,KAAD,EAAW;AAC3D,QAAI,CAACjI,OAAD,IAAY,CAACmE,sBAAsB,CAACmB,OAAxC,EAAiD;AAC/C;AACD;;AAED,QAAMsB,MAAM,GAAGqB,KAAK,CAACC,WAAN,CAAkBC,aAAlB,CAAgCC,CAA/C;AACA,QAAMC,aAAa,GAAGJ,KAAK,CAACC,WAAN,CAAkBI,iBAAlB,CAAoCC,MAA1D;AACA,QAAMC,aAAa,GAAGP,KAAK,CAACC,WAAN,CAAkBO,WAAlB,CAA8BF,MAApD;AAEA,QAAMG,eAAe,GAAG9B,MAAM,GAAG,GAAjC;AACA,QAAM+B,aAAa,GAAGH,aAAa,GAAGH,aAAhB,GAAgCzB,MAAhC,GAAyC,GAA/D;;AAEA,QAAI8B,eAAJ,EAAqB;AACnB7B,MAAAA,uBAAuB;AACxB;;AAED,QAAI8B,aAAJ,EAAmB;AACjBZ,MAAAA,qBAAqB;AACtB;;AAGD,QAAMa,gBAAgB,GAAGhC,MAAM,IAAI,GAAnC;AACA,QAAMiC,wBAAwB,GAAG,CAACD,gBAAD,IAAqB,CAACnI,6BAAvD;AAEA,QAAMqI,cAAc,GAClB,CAAClJ,UAAD,IAAegH,MAAM,IAAI,CAAzB,IAA8BnG,6BAA9B,IAA+DT,OAAO,CAACmG,WAAR,KAAwB,CADzF;;AAGA,QAAI2C,cAAJ,EAAoB;AAClBrH,MAAAA,QAAQ;AACT;;AAEDmD,IAAAA,8BAA8B,CAACiE,wBAAD,CAA9B;;AAEA,QAAI9G,YAAJ,EAAkB;AAChBA,MAAAA,YAAY,CAACkG,KAAD,CAAZ;AACD;AACF,GApCD;;AAsCA,MAAMc,eAAe;AAAA,gFAAG;AAAA;AAAA;AAAA;AAAA;AAAA,kBACjBtI,6BADiB;AAAA;AAAA;AAAA;;AAEpBwF,cAAAA,0BAA0B,CAACX,OAA3B;AAFoB;AAAA,qBAGdpD,aAAa,EAHC;;AAAA;AAAA;AAAA;;AAAA;AAIf,kBAAI+B,WAAW,CAACqB,OAAhB,EAAyB;AAC9BrB,gBAAAA,WAAW,CAACqB,OAAZ,CAAoBqB,cAApB,CAAmC;AACjCC,kBAAAA,MAAM,EAAE;AADyB,iBAAnC;AAGD;;AARqB;AAUtBhC,cAAAA,8BAA8B,CAAC,KAAD,CAA9B;;AACA,kBAAI,CAAChF,UAAL,EAAiB;AACf6B,gBAAAA,QAAQ;AACT;;AAbqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAfsH,eAAe;AAAA;AAAA;AAAA,KAArB;;AAgBA,MAAMC,wBAAwB,GAAG,mBAE/B,UAACC,IAAD,EAAU;AAEV,QAAIhF,WAAW,CAACqB,OAAhB,EAAyB;AAEvBrB,MAAAA,WAAW,CAACqB,OAAZ,CAAoBqB,cAApB,CAAmC;AACjCuC,QAAAA,QAAQ,EAAE,KADuB;AAEjCtC,QAAAA,MAAM,EAAEqC,IAAI,CAACE,iBAAL,GAAyBF,IAAI,CAAClC;AAFL,OAAnC;AAMAL,MAAAA,UAAU,CAAC,YAAM;AAAA;;AACf,iCAAAzC,WAAW,CAACqB,OAAZ,2CAAqB8D,aAArB,CAAmC;AACjCF,UAAAA,QAAQ,EAAE,KADuB;AAEjCnC,UAAAA,KAAK,EAAEkC,IAAI,CAAClC,KAFqB;AAGjCsC,UAAAA,YAAY,EAAE;AAHmB,SAAnC;;AAKA,YAAI/E,0BAA0B,CAACgB,OAA/B,EAAwC;AACtC7C,UAAAA,kBAAkB,CAAC6B,0BAA0B,CAACgB,OAA5B,CAAlB;AACD;AACF,OATS,EASP,GATO,CAAV;AAUD;AACF,GAvBgC,CAAjC;AAyBA,MAAM+B,WAAW,GAAG,wBAClB,UAACiC,SAAD,EAAuB;AACrB,QAAMC,0BAA0B,GAAGpG,WAAW,CAACqG,SAAZ,CACjC,UAACvE,OAAD;AAAA,aAAa,CAAAA,OAAO,QAAP,YAAAA,OAAO,CAAEhG,EAAT,MAAgBqK,SAA7B;AAAA,KADiC,CAAnC;;AAGA,QAAIC,0BAA0B,KAAK,CAAC,CAAhC,IAAqCtF,WAAW,CAACqB,OAArD,EAA8D;AAC5DrB,MAAAA,WAAW,CAACqB,OAAZ,CAAoB8D,aAApB,CAAkC;AAChCF,QAAAA,QAAQ,EAAE,IADsB;AAEhCnC,QAAAA,KAAK,EAAEwC,0BAFyB;AAGhCF,QAAAA,YAAY,EAAE;AAHkB,OAAlC;AAMA/E,MAAAA,0BAA0B,CAACgB,OAA3B,GAAqCgE,SAArC;AACA7G,MAAAA,kBAAkB,CAAC6G,SAAD,CAAlB;AACA;AACD;;AACDjF,IAAAA,sBAAsB,CAACiB,OAAvB,GAAiCgE,SAAjC;AACAnI,IAAAA,wBAAwB,CAAC;AAAEmI,MAAAA,SAAS,EAATA;AAAF,KAAD,CAAxB;AACArD,IAAAA,0BAA0B,CAACX,OAA3B;AACD,GAnBiB,EAoBlB,CAACnC,WAAD,CApBkB,CAApB;AA2BA,wBAAU,YAAM;AACd,QAAIiB,0BAA0B,CAACkB,OAA/B,EAAwCmE,YAAY,CAACrF,0BAA0B,CAACkB,OAA5B,CAAZ;AACxClB,IAAAA,0BAA0B,CAACkB,OAA3B,GAAqCoB,UAAU,CAAC,YAAM;AAEpD,UAAIgD,iBAAqC,GAAGrF,sBAAsB,CAACiB,OAAnE;;AACA,UAAI,CAACpB,gBAAgB,CAACoB,OAAlB,IAA6BzE,iCAAjC,EAAoE;AAElE,aAAK,IAAIkG,KAAK,GAAG5D,WAAW,CAACK,MAAZ,GAAqB,CAAtC,EAAyCuD,KAAK,IAAI,CAAlD,EAAqDA,KAAK,EAA1D,EAA8D;AAC5D,cAAI/B,kBAAkB,CAACM,OAAnB,CAA2BnC,WAAW,CAAC4D,KAAD,CAAtC,EAA+C5B,kBAAkB,CAACG,OAAlE,CAAJ,EAAgF;AAC9EoE,YAAAA,iBAAiB,GAAGvG,WAAW,CAAC4D,KAAD,CAAX,CAAmB9H,EAAvC;AACA;AACD;AACF;AACF,OARD,MAQO,IAAI0D,eAAe,IAAI2B,0BAA0B,CAACgB,OAA3B,KAAuC3C,eAA9D,EAA+E;AAGpF+G,QAAAA,iBAAiB,GAAG/G,eAApB;AACD;;AACD,UAAI,CAAC+G,iBAAL,EAAwB;AACxB,UAAMH,0BAA0B,GAAGpG,WAAW,CAACqG,SAAZ,CACjC,UAACvE,OAAD;AAAA,eAAa,CAAAA,OAAO,QAAP,YAAAA,OAAO,CAAEhG,EAAT,MAAgByK,iBAA7B;AAAA,OADiC,CAAnC;;AAGA,UAAIH,0BAA0B,KAAK,CAAC,CAAhC,IAAqCtF,WAAW,CAACqB,OAArD,EAA8D;AAC5DrB,QAAAA,WAAW,CAACqB,OAAZ,CAAoB8D,aAApB,CAAkC;AAChCF,UAAAA,QAAQ,EAAE,KADsB;AAEhCnC,UAAAA,KAAK,EAAEwC,0BAFyB;AAGhCF,UAAAA,YAAY,EAAE;AAHkB,SAAlC;AAMAhF,QAAAA,sBAAsB,CAACiB,OAAvB,GAAiCD,SAAjC;AAEAf,QAAAA,0BAA0B,CAACgB,OAA3B,GAAqCoE,iBAArC;;AACA,YAAI,CAACxF,gBAAgB,CAACoB,OAAlB,IAA6BzE,iCAAjC,EAAoE;AAClEqD,UAAAA,gBAAgB,CAACoB,OAAjB,GAA2B,IAA3B;AACD,SAFD,MAEO;AACL7C,UAAAA,kBAAkB,CAACiH,iBAAD,CAAlB;AACD;AACF;AACF,KApC8C,EAoC5C,GApC4C,CAA/C;AAqCD,GAvCD,EAuCG,CAACvG,WAAD,EAAcR,eAAd,EAA+B9B,iCAA/B,CAvCH;AAyCA,MAAM8I,kBAAkB,GACtBzI,+BAA+B,IAC/BiC,WAAW,CAACyG,MAAZ,CAAmB,UAAC3E,OAAD,EAAa;AAC9B,QAAMU,oBAAoB,GAAGV,OAAO,CAACW,IAAR,KAAiB,SAA9C;;AACA,QAAI,CAACD,oBAAD,IAAyBV,OAAO,CAAC4E,WAArC,EAAkD;AAChD,aAAO5E,OAAO,CAAC4E,WAAR,CAAoBC,IAApB,CACL,UAACC,UAAD;AAAA,eACEA,UAAU,CAACnE,IAAX,KAAoB,OAApB,IACA,CAACmE,UAAU,CAACC,UADZ,IAEA,CAACD,UAAU,CAACE,aAFZ,KAGCF,UAAU,CAACG,SAAX,IAAwBH,UAAU,CAACI,SAHpC,CADF;AAAA,OADK,CAAP;AAOD;;AACD,WAAO,KAAP;AACD,GAZD,CAFF;AAoBA,MAAMC,WAAW,GACflJ,+BAA+B,IAC/ByI,kBADA,IAEAA,kBAAkB,CACfU,GADH,CACO,UAACpF,OAAD;AAAA;;AAAA,mCACHA,OAAO,CAAC4E,WADL,qBACH,qBACIQ,GADJ,CACQ,UAACN,UAAD;AAAA,aAAgBA,UAAU,CAACG,SAAX,IAAwBH,UAAU,CAACI,SAAnC,IAAgD,EAAhE;AAAA,KADR,EAEGG,IAFH,EADG;AAAA,GADP,EAMGA,IANH,EAHF;AAWA,MAAMC,0BAA0B,GAC9BrJ,+BAA+B,IAAIyI,kBAAnC,IAAyDA,kBAAkB,CAACnG,MAD9E;AAEA,MAAMgH,YAAY,GAAG,CAAC,CAAC3H,MAAvB;AAEA,wBAAU,YAAM;AACd,QACE3B,+BAA+B,IAC/BD,YADA,KAEErB,UAAU,IAAIiD,MAAf,IAA2B,CAACjD,UAAD,IAAe,CAACiD,MAF5C,CADF,EAIE;AACAN,MAAAA,WAAW,CAACoH,kBAAD,CAAX;AACD;AACF,GARD,EAQG,CACDS,WADC,EAEDnJ,YAFC,EAGDC,+BAHC,EAIDqJ,0BAJC,EAKDC,YALC,EAMD5K,UANC,CARH;AAiBA,MAAM6K,sBAAsB,GAC1B,CAAA5F,gBAAgB,QAAhB,YAAAA,gBAAgB,CAAE6F,WAAlB,QAAoC,IAAItL,IAAJ,GAAWsL,WAAX,EAApC,GAA+D,OAA/D,GAAyE,aAD3E;AAEA,MAAMC,iBAAiB,GACrB9F,gBAAgB,IAAI,CAACjE,oBAArB,GAA4CgC,eAAe,CAACiC,gBAAD,CAA3D,GAAgF,IADlF;AAGA,MAAM+F,sBAAsB,GAAG,oBAAQ,YAAM;AAC3C,QAAID,iBAAiB,KAAK,IAAtB,IAA8B/J,oBAAlC,EAAwD,OAAO,IAAP;AACxD,QAAI,uCAAc+J,iBAAd,CAAJ,EAAsC,OAAOA,iBAAiB,CAACE,MAAlB,CAAyBJ,sBAAzB,CAAP;AAEtC,WAAO,IAAIrL,IAAJ,CAASuL,iBAAT,EAA4B9E,YAA5B,EAAP;AACD,GAL8B,EAK5B,CAAC8E,iBAAD,EAAoBF,sBAApB,EAA4C7J,oBAA5C,CAL4B,CAA/B;;AAOA,MAAMkK,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,QAAI,CAACvG,QAAD,IAAalC,cAAjB,EAAiC;AAC/BG,MAAAA,iBAAiB,CAAC6C,SAAD,CAAjB;AACAnF,MAAAA,WAAW;AACZ;AACF,GALD;;AAMA,MAAM6K,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,WAAM,CAACxG,QAAD,IAAalC,cAAb,IAA+BmC,WAAW,CAAC,IAAD,CAAhD;AAAA,GAA1B;;AACA,MAAMwG,eAAe,GAAG,SAAlBA,eAAkB;AAAA,WAAMzG,QAAQ,IAAIlC,cAAZ,IAA8BmC,WAAW,CAAC,KAAD,CAA/C;AAAA,GAAxB;;AAEA,MAAMyG,WAAW,GAAG,SAAdA,WAAc,CAACC,GAAD,EAAwD;AAC1EjH,IAAAA,WAAW,CAACqB,OAAZ,GAAsB4F,GAAtB;;AAEA,QAAI5I,cAAJ,EAAoB;AAClBA,MAAAA,cAAc,CAAC4I,GAAD,CAAd;AACD;AACF,GAND;;AAQA,MAAMC,QAAQ,GAAG,oCAAjB;AAEA,MAAMC,kBAAkB,GAAGC,OAAO,IAAIF,QAAX,IAAuBA,QAAQ,CAAC7F,OAA3D;;AAEA,MAAI8F,kBAAJ,EAAwB;AACtB,QAAID,QAAQ,CAAC7F,OAAT,CAAiBgG,YAArB,EAAmCH,QAAQ,CAAC7F,OAAT,CAAiBgG,YAAjB,CAA8B,MAA9B;AACnC,QAAIH,QAAQ,CAAC7F,OAAT,CAAiBiG,kBAArB,EACEJ,QAAQ,CAAC7F,OAAT,CAAiBiG,kBAAjB,CAAoC;AAClCC,MAAAA,MAAM,EAAE3I,MAAM,GAAG,YAAH,GAAkB,UADE;AAElC4I,MAAAA,IAAI,EAAEtI;AAF4B,KAApC;AAIH;;AAED,MAAMuI,wBAAwB,GAAG,SAA3BA,wBAA2B;AAAA,WAC/B,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAAC9N,MAAM,CAACK,IAAR,EAAcL,MAAM,CAACU,MAArB,CAAb;AAA2C,MAAA,MAAM,EAAC,aAAlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,mBAAD;AAAqB,MAAA,QAAQ,EAAC,SAA9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,CAD+B;AAAA,GAAjC;;AAMA,MAAI,CAACiC,QAAL,EAAe,OAAO,IAAP;;AAEf,MAAIa,OAAJ,EAAa;AACX,WACE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAExD,MAAM,CAACK,IAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,gBAAD;AAAkB,MAAA,QAAQ,EAAC,SAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,CADF;AAKD;;AAED,MAAM0N,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,QAAI,CAACf,sBAAL,EAA6B,OAAO,IAAP;AAC7B,QAAIlI,YAAJ,EAAkB,OAAO,gCAAC,YAAD;AAAc,MAAA,UAAU,EAAEkI,sBAA1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAP;AAClB,QAAIrH,4BAAJ,EAAkC,OAAO,gCAAC,UAAD;AAAY,MAAA,UAAU,EAAEqH,sBAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAP;AAClC,WAAO,IAAP;AACD,GALD;;AAOA,SACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAAChN,MAAM,CAACG,SAAR,EAAmB;AAAE6N,MAAAA,eAAe,EAAE3I;AAAnB,KAAnB,EAAoDlF,SAApD,CADT;AAEE,IAAA,MAAM,EAAC,2BAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAIE,gCAAC,QAAD;AACE,IAAA,qBAAqB,EAAE,CAACH,MAAM,CAACO,gBAAR,EAA0BA,gBAA1B,CADzB;AAEE,IAAA,IAAI,EAAEgF,WAFR;AAIE,IAAA,SAAS,EAAE/C,QAAQ,IAAI,CAACK,6BAJ1B;AAKE,IAAA,QAAQ,EAAEO,QALZ;AAME,IAAA,yBAAyB,EAAC,SAN5B;AAOE,IAAA,YAAY,EAAEjC,YAPhB;AAQE,IAAA,kBAAkB,EAAE2M,wBARtB;AASE,IAAA,mBAAmB,EAAElL,eATvB;AAUE,IAAA,mBAAmB,EAAEE,eAVvB;AAWE,IAAA,8BAA8B,EAAE;AAC9BmL,MAAAA,wBAAwB,EAAElI,eAAe,GAAG,EAAH,GAAQ0B,SADnB;AAE9ByG,MAAAA,kBAAkB,EAAE;AAFU,KAXlC;AAeE,IAAA,mBAAmB,EAAE,EAfvB;AAgBE,IAAA,QAAQ,EAAE9D,YAhBZ;AAiBE,IAAA,iBAAiB,EAAE+C,iBAjBrB;AAkBE,IAAA,eAAe,EAAEC,eAlBnB;AAmBE,IAAA,qBAAqB,EAAEhC,wBAAwB,CAAC1D,OAnBlD;AAoBE,IAAA,UAAU,EAAEwF,kBApBd;AAqBE,IAAA,sBAAsB,EAAEhF,sBAAsB,CAACR,OArBjD;AAsBE,IAAA,GAAG,EAAE2F,WAtBP;AAuBE,IAAA,UAAU,EAAEnE,UAvBd;AAwBE,IAAA,aAAa,EAAE7E,OAAO,KAAK,MAxB7B;AAyBE,IAAA,KAAK,EAAE,CAACrE,MAAM,CAACa,aAAR,EAAuBA,aAAvB,CAzBT;AA0BE,IAAA,MAAM,EAAC,mBA1BT;AA2BE,IAAA,iBAAiB,EAAEc;AA3BrB,KA4BMQ,uBA5BN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAJF,EAkCG,CAACqB,OAAD,IACC,kEACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAExD,MAAM,CAACgB,YAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,qBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CADF,EAIG,CAACyB,sBAAD,IAA2ByC,eAA3B,IACC,gCAAC,wBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,eAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CALJ,EASE,gCAAC,oBAAD;AACE,IAAA,OAAO,EAAEiG,eADX;AAEE,IAAA,gBAAgB,EAAEpE,2BAFpB;AAGE,IAAA,WAAW,EAAE/E,UAAU,GAAG,CAAH,GAAOI,OAAP,oBAAOA,OAAO,CAAEmG,WAAT,EAHhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IATF,CAnCJ,EAmDE,gCAAC,oBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAnDF,CADF;AAuDD,CAryBD;;AA2yBO,IAAM4F,WAAW,GAAG,SAAdA,WAAc,CAGzBrM,KAHyB,EAItB;AACH,8BAA2D,0DAA3D;AAAA,MAAQQ,WAAR,yBAAQA,WAAR;AAAA,MAAqBmC,cAArB,yBAAqBA,cAArB;AAAA,MAAqCG,iBAArC,yBAAqCA,iBAArC;;AACA,2BAkBI,wCAlBJ;AAAA,MACExC,OADF,sBACEA,OADF;AAAA,MAEEI,QAFF,sBAEEA,QAFF;AAAA,MAGEE,mBAHF,sBAGEA,mBAHF;AAAA,MAIE0L,2BAJF,sBAIEA,2BAJF;AAAA,MAKEC,KALF,sBAKEA,KALF;AAAA,MAMErL,oBANF,sBAMEA,oBANF;AAAA,MAOEsL,eAPF,sBAOEA,eAPF;AAAA,MAQE/K,wBARF,sBAQEA,wBARF;AAAA,MASEC,OATF,sBASEA,OATF;AAAA,MAUEC,gBAVF,sBAUEA,gBAVF;AAAA,MAWEI,QAXF,sBAWEA,QAXF;AAAA,MAYEI,oBAZF,sBAYEA,oBAZF;AAAA,MAaEK,aAbF,sBAaEA,aAbF;AAAA,MAcEE,4BAdF,sBAcEA,4BAdF;AAAA,MAeEK,kBAfF,sBAeEA,kBAfF;AAAA,MAgBEC,YAhBF,sBAgBEA,YAhBF;AAAA,MAiBEC,eAjBF,sBAiBEA,eAjBF;;AAmBA,wBAAmB,kCAAnB;AAAA,MAAQ1C,MAAR,mBAAQA,MAAR;;AACA,8BAAwB,kDAAxB;AAAA,MAAQsC,WAAR,yBAAQA,WAAR;;AACA,4BAcI,0CAdJ;AAAA,MACEpC,UADF,uBACEA,UADF;AAAA,MAEEE,sBAFF,uBAEEA,sBAFF;AAAA,MAGEE,QAHF,uBAGEA,QAHF;AAAA,MAIEM,iCAJF,uBAIEA,iCAJF;AAAA,MAKEC,mBALF,uBAKEA,mBALF;AAAA,MAMEC,qBANF,uBAMEA,qBANF;AAAA,MAOEG,+BAPF,uBAOEA,+BAPF;AAAA,MAQEQ,OARF,uBAQEA,OARF;AAAA,MASEC,aATF,uBASEA,aATF;AAAA,MAUEC,cAVF,uBAUEA,cAVF;AAAA,MAWEO,oBAXF,uBAWEA,oBAXF;AAAA,MAYEW,eAZF,uBAYEA,eAZF;AAAA,MAaEC,wBAbF,uBAaEA,wBAbF;;AAeA,8BACE,kEADF;AAAA,MAAQtC,6BAAR,yBAAQA,6BAAR;AAAA,MAAuCa,QAAvC,yBAAuCA,QAAvC;AAAA,MAAiDC,cAAjD,yBAAiDA,cAAjD;;AAEA,2BAAoB,wCAApB;AAAA,MAAQU,OAAR,sBAAQA,OAAR;;AACA,0BAAmC,sCAAnC;AAAA,MAAQT,cAAR,qBAAQA,cAAR;AAAA,MAAwBqB,MAAxB,qBAAwBA,MAAxB;;AACA,8BAA+B,gDAA/B;AAAA,MAAQsJ,CAAR,yBAAQA,CAAR;AAAA,MAAWvJ,eAAX,yBAAWA,eAAX;;AAEA,SACE,gCAAC,sBAAD;AAEI5C,IAAAA,OAAO,EAAPA,OAFJ;AAGIC,IAAAA,MAAM,EAANA,MAHJ;AAIIC,IAAAA,WAAW,EAAXA,WAJJ;AAKIC,IAAAA,UAAU,EAAVA,UALJ;AAMIC,IAAAA,QAAQ,EAARA,QANJ;AAOIC,IAAAA,sBAAsB,EAAtBA,sBAPJ;AAQIC,IAAAA,mBAAmB,EAAnBA,mBARJ;AASI0L,IAAAA,2BAA2B,EAA3BA,2BATJ;AAUIC,IAAAA,KAAK,EAALA,KAVJ;AAWI1L,IAAAA,QAAQ,EAARA,QAXJ;AAYIE,IAAAA,6BAA6B,EAA7BA,6BAZJ;AAaIG,IAAAA,oBAAoB,EAApBA,oBAbJ;AAcIC,IAAAA,iCAAiC,EAAjCA,iCAdJ;AAeIC,IAAAA,mBAAmB,EAAnBA,mBAfJ;AAgBIC,IAAAA,qBAAqB,EAArBA,qBAhBJ;AAiBIE,IAAAA,YAAY,EAAEiL,eAjBlB;AAkBIhL,IAAAA,+BAA+B,EAA/BA,+BAlBJ;AAmBIC,IAAAA,wBAAwB,EAAxBA,wBAnBJ;AAoBIC,IAAAA,OAAO,EAAPA,OApBJ;AAqBIC,IAAAA,gBAAgB,EAAhBA,gBArBJ;AAsBIC,IAAAA,QAAQ,EAARA,QAtBJ;AAuBIC,IAAAA,cAAc,EAAdA,cAvBJ;AAwBIC,IAAAA,cAAc,EAAdA,cAxBJ;AAyBIC,IAAAA,QAAQ,EAARA,QAzBJ;AA0BIC,IAAAA,OAAO,EAAPA,OA1BJ;AA2BIC,IAAAA,aAAa,EAAbA,aA3BJ;AA4BIC,IAAAA,cAAc,EAAdA,cA5BJ;AA6BIC,IAAAA,oBAAoB,EAApBA,oBA7BJ;AA8BII,IAAAA,OAAO,EAAPA,OA9BJ;AA+BIC,IAAAA,aAAa,EAAbA,aA/BJ;AAgCIC,IAAAA,oBAAoB,EAApBA,oBAhCJ;AAiCIC,IAAAA,4BAA4B,EAA5BA,4BAjCJ;AAkCIC,IAAAA,cAAc,EAAdA,cAlCJ;AAmCIE,IAAAA,WAAW,EAAXA,WAnCJ;AAoCIC,IAAAA,iBAAiB,EAAjBA,iBApCJ;AAqCIC,IAAAA,kBAAkB,EAAlBA,kBArCJ;AAsCIC,IAAAA,YAAY,EAAZA,YAtCJ;AAuCIyJ,IAAAA,CAAC,EAADA,CAvCJ;AAwCIxJ,IAAAA,eAAe,EAAfA,eAxCJ;AAyCIC,IAAAA,eAAe,EAAfA,eAzCJ;AA0CIC,IAAAA,MAAM,EAANA,MA1CJ;AA2CIC,IAAAA,eAAe,EAAfA,eA3CJ;AA4CIC,IAAAA,wBAAwB,EAAxBA;AA5CJ,KA8CMrD,KA9CN;AA+CE,IAAA,aAAa,EAAE,CAACsM,2BAAD,IAAgCtM,KAAK,CAACoC,aA/CvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAmDD,CAnGM","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n FlatListProps,\n FlatList as FlatListType,\n Platform,\n ScrollViewProps,\n StyleSheet,\n View,\n ViewToken,\n} from 'react-native';\n\nimport type { Channel as StreamChannel } from 'stream-chat';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n useMessageList,\n} from './hooks/useMessageList';\nimport { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';\nimport { InlineLoadingMoreRecentIndicator } from './InlineLoadingMoreRecentIndicator';\nimport { InlineLoadingMoreThreadIndicator } from './InlineLoadingMoreThreadIndicator';\nimport { getLastReceivedMessage } from './utils/getLastReceivedMessage';\n\nimport {\n AttachmentPickerContextValue,\n useAttachmentPickerContext,\n} from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport {\n PaginatedMessageListContextValue,\n usePaginatedMessageListContext,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n isDayOrMoment,\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n width: '100%',\n },\n contentContainer: {\n flexGrow: 1,\n /**\n * paddingBottom is set to 4 to account for the default date\n * header and inline indicator alignment. The top margin is 8\n * on the header but 4 on the inline date, this adjusts the spacing\n * to allow the \"first\" inline date to align with the date header.\n */\n paddingBottom: 4,\n },\n flex: { flex: 1 },\n invert: { transform: [{ scaleY: -1 }] },\n listContainer: {\n flex: 1,\n width: '100%',\n },\n messagePadding: {\n paddingHorizontal: 8,\n },\n stickyHeader: {\n position: 'absolute',\n top: 0,\n },\n});\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: MessageType<StreamChatGenerics>,\n) => {\n if (item.id) return item.id;\n if (item.created_at)\n return typeof item.created_at === 'string' ? item.created_at : item.created_at.toISOString();\n return Date.now().toString();\n};\n\nconst flatListViewabilityConfig = {\n viewAreaCoveragePercentThreshold: 1,\n};\n\ntype MessageListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<AttachmentPickerContextValue, 'closePicker' | 'selectedPicker' | 'setSelectedPicker'> &\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'channel'\n | 'disabled'\n | 'EmptyStateIndicator'\n | 'hideStickyDateHeader'\n | 'loadChannelAroundMessage'\n | 'loading'\n | 'LoadingIndicator'\n | 'markRead'\n | 'NetworkDownIndicator'\n | 'reloadChannel'\n | 'scrollToFirstUnreadThreshold'\n | 'setTargetedMessage'\n | 'StickyHeader'\n | 'targetedMessage'\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setMessages'> &\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'hasNoMoreRecentMessagesToLoad' | 'loadMore' | 'loadMoreRecent'\n > &\n Pick<OverlayContextValue, 'overlay'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'DateHeader'\n | 'disableTypingIndicator'\n | 'FlatList'\n | 'initialScrollToFirstUnreadMessage'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'legacyImageViewerSwipeBehaviour'\n | 'Message'\n | 'ScrollToBottomButton'\n | 'MessageSystem'\n | 'myMessageTheme'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'loadMoreThread' | 'thread'> &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n /**\n * Besides existing (default) UX behavior of underlying FlatList of MessageList component, if you want\n * to attach some additional props to underlying FlatList, you can add it to following prop.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **NOTE** Don't use `additionalFlatListProps` to get access to ref of flatlist. Use `setFlatListRef` instead.\n *\n * e.g.\n * ```js\n * <MessageList\n * additionalFlatListProps={{ bounces: true, keyboardDismissMode: true }} />\n * ```\n */\n additionalFlatListProps?: Partial<FlatListProps<MessageType<StreamChatGenerics>>>;\n /**\n * UI component for footer of message list. By default message list will use `InlineLoadingMoreIndicator`\n * as FooterComponent. If you want to implement your own inline loading indicator, you can access `loadingMore`\n * from context.\n *\n * This is a [ListHeaderComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header by default if inverted is true or defaulted\n */\n FooterComponent?: React.ComponentType;\n /**\n * UI component for header of message list. By default message list will use `InlineLoadingMoreRecentIndicator`\n * as HeaderComponent. If you want to implement your own inline loading indicator, you can access `loadingMoreRecent`\n * from context.\n *\n * This is a [ListFooterComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header if inverted is false\n */\n HeaderComponent?: React.ComponentType;\n /** Whether or not the FlatList is inverted. Defaults to true */\n inverted?: boolean;\n isListActive?: boolean;\n /** Turn off grouping of messages by user */\n noGroupByUser?: boolean;\n onListScroll?: ScrollViewProps['onScroll'];\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: ThreadContextValue<StreamChatGenerics>['thread']) => void;\n /**\n * Use `setFlatListRef` to get access to ref to inner FlatList.\n *\n * e.g.\n * ```js\n * <MessageList\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef?: (ref: FlatListType<MessageType<StreamChatGenerics>> | null) => void;\n /**\n * Boolean whether or not the Messages in the MessageList are part of a Thread\n **/\n threadList?: boolean;\n };\n\n/**\n * The message list component renders a list of messages. It consumes the following contexts:\n *\n * [ChannelContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/)\n * [ChatContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/)\n * [MessagesContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/messages-context/)\n * [ThreadContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/thread-context/)\n * [TranslationContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nconst MessageListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListPropsWithContext<StreamChatGenerics>,\n) => {\n const LoadingMoreIndicator = props.threadList\n ? InlineLoadingMoreThreadIndicator\n : InlineLoadingMoreIndicator;\n const {\n additionalFlatListProps,\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n FlatList,\n FooterComponent = LoadingMoreIndicator,\n hasNoMoreRecentMessagesToLoad,\n HeaderComponent = InlineLoadingMoreRecentIndicator,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n inverted = true,\n isListActive = false,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n noGroupByUser,\n onListScroll,\n onThreadSelect,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setFlatListRef,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n tDateTimeParser,\n thread,\n threadList = false,\n TypingIndicator,\n TypingIndicatorContainer,\n } = props;\n\n const { theme } = useTheme();\n\n const {\n colors: { white_snow },\n messageList: { container, contentContainer, listContainer },\n } = theme;\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageTheme, theme],\n );\n\n const messageList = useMessageList<StreamChatGenerics>({\n noGroupByUser,\n threadList,\n });\n const messageListLengthBeforeUpdate = useRef(0);\n const messageListLengthAfterUpdate = messageList.length;\n\n /**\n * We need topMessage and channelLastRead values to set the initial scroll position.\n * So these values only get used if `initialScrollToFirstUnreadMessage` prop is true.\n */\n const topMessageBeforeUpdate = useRef<MessageType<StreamChatGenerics>>();\n const topMessageAfterUpdate = messageList[messageList.length - 1];\n\n const [autoscrollToTop, setAutoscrollToTop] = useState(false);\n\n /**\n * We want to call onEndReached and onStartReached only once, per content length.\n * We keep track of calls to these functions per content length, with following trackers.\n */\n const onStartReachedTracker = useRef<Record<number, boolean>>({});\n const onEndReachedTracker = useRef<Record<number, boolean>>({});\n\n const onStartReachedInPromise = useRef<Promise<void> | null>(null);\n const onEndReachedInPromise = useRef<Promise<void> | null>(null);\n\n const flatListRef = useRef<FlatListType<MessageType<StreamChatGenerics>> | null>(null);\n\n /**\n * Flag to track if the initial scroll has been set\n * If the prop `initialScrollToFirstUnreadMessage` was enabled, then we scroll to the unread msg and set it to true\n * If not, the default offset of 0 for flatList means that it has been set already\n */\n const initialScrollSet = useRef<boolean>(!initialScrollToFirstUnreadMessage);\n\n const channelResyncScrollSet = useRef<boolean>(true);\n\n /**\n * The timeout id used to debounce our scrollToIndex calls on messageList updates\n */\n const scrollToDebounceTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * If a messageId was requested to scroll to but was unloaded,\n * this flag keeps track of it to scroll to it after loading the message\n */\n const messageIdToScrollToRef = useRef<string>();\n /**\n * Last messageID that was scrolled to after loading a new message list,\n * this flag keeps track of it so that we dont scroll to it again on target message set\n */\n const messageIdLastScrolledToRef = useRef<string>();\n const [hasMoved, setHasMoved] = useState(false);\n const [lastReceivedId, setLastReceivedId] = useState(getLastReceivedMessage(messageList)?.id);\n const [scrollToBottomButtonVisible, setScrollToBottomButtonVisible] = useState(false);\n\n const [stickyHeaderDate, setStickyHeaderDate] = useState<Date | undefined>();\n const stickyHeaderDateRef = useRef<Date | undefined>();\n\n const isUnreadMessageRef = useRef(\n (\n message: MessageType<StreamChatGenerics> | undefined,\n lastRead?: ReturnType<StreamChannel<StreamChatGenerics>['lastRead']>,\n ) => message && lastRead && message.created_at && lastRead < message.created_at,\n );\n\n const channelLastReadRef = useRef(channel?.initialized ? channel.lastRead() : undefined);\n\n useEffect(() => {\n channelLastReadRef.current = channel?.initialized ? channel.lastRead() : undefined;\n }, [channel]);\n\n const updateStickyHeaderDateIfNeeded = (viewableItems: ViewToken[]) => {\n if (viewableItems.length) {\n const lastItem = viewableItems.pop() as {\n item: MessageType<StreamChatGenerics>;\n };\n\n const isMessageTypeDeleted = lastItem.item.type === 'deleted';\n\n if (\n lastItem?.item?.created_at &&\n !isMessageTypeDeleted &&\n typeof lastItem.item.created_at !== 'string' &&\n lastItem.item.created_at.toDateString() !== stickyHeaderDateRef.current?.toDateString()\n ) {\n stickyHeaderDateRef.current = lastItem.item.created_at;\n setStickyHeaderDate(lastItem.item.created_at);\n }\n }\n };\n\n /**\n * FlatList doesn't accept changeable function for onViewableItemsChanged prop.\n * Thus useRef.\n */\n const onViewableItemsChanged = useRef(\n ({ viewableItems }: { viewableItems: ViewToken[] | undefined }) => {\n /**\n * When a new message comes in, list scrolls down to the bottom automatically (using prop `maintainVisibleContentPosition`)\n * and we mark the channel as read from handleScroll function.\n * Although this logic is dependent on the fact that `onScroll` event gets triggered during this process.\n * But for Android, this event is not triggered when messages length is lesser than visible screen height.\n *\n * And thus we need to check if the message list length is lesser than visible screen height and mark the channel as read.\n */\n if (\n Platform.OS === 'android' &&\n viewableItems?.length &&\n viewableItems?.length >= messageListLengthBeforeUpdate.current\n ) {\n channel.markRead();\n }\n\n if (viewableItems && !hideStickyDateHeader) {\n updateStickyHeaderDateIfNeeded(viewableItems);\n }\n },\n );\n\n /**\n * Resets the pagination trackers, doing so cancels currently scheduled loading more calls\n */\n const resetPaginationTrackersRef = useRef(() => {\n onStartReachedTracker.current = {};\n onEndReachedTracker.current = {};\n });\n\n useEffect(() => {\n setScrollToBottomButtonVisible(false);\n }, [disabled]);\n\n useEffect(() => {\n /**\n * 1. !initialScrollToFirstUnreadMessage && channel.countUnread() > 0\n *\n * In this case MessageList won't scroll to first unread message when opened, so we can mark\n * the channel as read right after opening.\n *\n * 2. initialScrollToFirstUnreadMessage && channel.countUnread() <= scrollToFirstUnreadThreshold\n *\n * In this case MessageList will be opened to first unread message.\n * But if there are not enough (scrollToFirstUnreadThreshold) unread messages, then MessageList\n * won't need to scroll up. So we can safely mark the channel as read right after opening.\n */\n const shouldMarkReadOnFirstLoad =\n !loading &&\n channel &&\n ((!initialScrollToFirstUnreadMessage && channel.countUnread() > 0) ||\n (initialScrollToFirstUnreadMessage &&\n channel.countUnread() <= scrollToFirstUnreadThreshold));\n\n if (shouldMarkReadOnFirstLoad) {\n markRead();\n }\n }, [loading]);\n\n useEffect(() => {\n const lastReceivedMessage = getLastReceivedMessage(messageList);\n\n const hasNewMessage = lastReceivedId !== lastReceivedMessage?.id;\n const isMyMessage = lastReceivedMessage?.user?.id === client.userID;\n\n setLastReceivedId(lastReceivedMessage?.id);\n\n /**\n * Scroll down when\n * 1. you send a new message to channel\n * 2. new message list is small than the one before update - channel has resynced\n * 3. created_at timestamp of top message before update is lesser than created_at timestamp of top message after update - channel has resynced\n */\n const scrollToBottomIfNeeded = () => {\n if (!client || !channel || messageList.length === 0) {\n return;\n }\n if (\n (hasNewMessage && isMyMessage) ||\n messageListLengthAfterUpdate < messageListLengthBeforeUpdate.current ||\n (topMessageBeforeUpdate.current?.created_at &&\n topMessageAfterUpdate?.created_at &&\n topMessageBeforeUpdate.current.created_at < topMessageAfterUpdate.created_at)\n ) {\n channelResyncScrollSet.current = false;\n setScrollToBottomButtonVisible(false);\n resetPaginationTrackersRef.current();\n\n setTimeout(() => {\n flatListRef.current?.scrollToOffset({\n offset: 0,\n });\n }, 50);\n setTimeout(() => {\n channelResyncScrollSet.current = true;\n if (channel.countUnread() > 0) {\n markRead();\n }\n }, 500);\n }\n };\n\n if (threadList || hasNoMoreRecentMessagesToLoad) {\n scrollToBottomIfNeeded();\n } else if (!scrollToBottomButtonVisible) {\n setScrollToBottomButtonVisible(true);\n }\n\n if (\n !hasNoMoreRecentMessagesToLoad &&\n flatListRef.current &&\n messageListLengthBeforeUpdate.current === 0 &&\n messageListLengthAfterUpdate < 10\n ) {\n /**\n * Trigger onStartReached on first load, if messages are not enough to fill the screen.\n * This is important especially for android, where you can't overscroll.\n */\n maybeCallOnStartReached(10);\n }\n\n messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;\n topMessageBeforeUpdate.current = topMessageAfterUpdate;\n }, [messageListLengthAfterUpdate, topMessageAfterUpdate?.id]);\n\n useEffect(() => {\n setAutoscrollToTop(hasNoMoreRecentMessagesToLoad);\n }, [messageList, hasNoMoreRecentMessagesToLoad]);\n\n const renderItem = ({\n index,\n item: message,\n }: {\n index: number;\n item: MessageType<StreamChatGenerics>;\n }) => {\n if (!channel || (!channel.initialized && !channel.offlineMode)) return null;\n\n const lastRead = channel.lastRead();\n\n const lastMessage = messageList?.[index + 1];\n\n const showUnreadUnderlay =\n !!isUnreadMessageRef.current(message, lastRead) && scrollToBottomButtonVisible;\n const insertInlineUnreadIndicator =\n showUnreadUnderlay && !isUnreadMessageRef.current(lastMessage, lastRead);\n\n if (message.type === 'system') {\n return (\n <>\n <View testID={`message-list-item-${index}`}>\n <MessageSystem message={message} style={styles.messagePadding} />\n </View>\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n }\n\n const wrapMessageInTheme = client.userID === message.user?.id && !!myMessageTheme;\n return wrapMessageInTheme ? (\n <>\n <ThemeProvider mergedStyle={modifiedTheme}>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={lastReceivedId === message.id ? lastReceivedId : undefined}\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n </ThemeProvider>\n {isMessageWithStylesReadByAndDateSeparator(message) && message.dateSeparator && (\n <InlineDateSeparator date={message.dateSeparator} />\n )}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n ) : (\n <>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={\n lastReceivedId === message.id || message.quoted_message_id\n ? lastReceivedId\n : undefined\n }\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n {isMessageWithStylesReadByAndDateSeparator(message) && message.dateSeparator && (\n <InlineDateSeparator date={message.dateSeparator} />\n )}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n };\n\n /**\n * We are keeping full control on message pagination, and not relying on react-native for it.\n * The reasons being,\n * 1. FlatList doesn't support onStartReached prop\n * 2. `onEndReached` function prop available on react-native, gets executed\n * once per content length (and thats actually a nice optimization strategy).\n * But it also means, we always need to prioritize onEndReached above our\n * logic for `onStartReached`.\n * 3. `onEndReachedThreshold` prop decides - at which scroll position to call `onEndReached`.\n * Its a factor of content length (which is necessary for \"real\" infinite scroll). But on\n * the other hand, it also makes calls to `onEndReached` (and this `channel.query`) way\n * too early during scroll, which we don't really need. So we are going to instead\n * keep some fixed offset distance, to decide when to call `loadMore` or `loadMoreRecent`.\n *\n * We are still gonna keep the optimization, which react-native does - only call onEndReached\n * once per content length.\n */\n\n /**\n * 1. Makes a call to `loadMoreRecent` function, which queries more recent messages.\n * 2. Ensures that we call `loadMoreRecent`, once per content length\n * 3. If the call to `loadMore` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnStartReached = async (limit?: number) => {\n // If onStartReached has already been called for given data length, then ignore.\n if (messageList?.length && onStartReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onStartReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onStartReachedInPromise.current = null;\n\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onStartReached trigger after 2 seconds, to try again */\n setTimeout(() => {\n onStartReachedTracker.current = {};\n }, 2000);\n };\n\n // If onEndReached is in progress, better to wait for it to finish for smooth UX\n if (onEndReachedInPromise.current) {\n await onEndReachedInPromise.current;\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n } else {\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n }\n };\n\n /**\n * 1. Makes a call to `loadMore` function, which queries more older messages.\n * 2. Ensures that we call `loadMore`, once per content length\n * 3. If the call to `loadMoreRecent` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnEndReached = async () => {\n // If onEndReached has already been called for given messageList length, then ignore.\n if (messageList?.length && onEndReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onEndReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onEndReachedInPromise.current = null;\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onEndReachedTracker trigger after 2 seconds, to try again */\n setTimeout(() => {\n onEndReachedTracker.current = {};\n }, 2000);\n };\n\n // If onStartReached is in progress, better to wait for it to finish for smooth UX\n if (onStartReachedInPromise.current) {\n await onStartReachedInPromise.current;\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n } else {\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n }\n };\n\n /**\n * Following if condition covers following cases:\n * 1. If I scroll up -> show scrollToBottom button.\n * 2. If I scroll to bottom of screen\n * |-> hide scrollToBottom button.\n * |-> if channel is unread, call markRead().\n */\n const handleScroll: ScrollViewProps['onScroll'] = (event) => {\n if (!channel || !channelResyncScrollSet.current) {\n return;\n }\n\n const offset = event.nativeEvent.contentOffset.y;\n const visibleLength = event.nativeEvent.layoutMeasurement.height;\n const contentLength = event.nativeEvent.contentSize.height;\n // Check if scroll has reached either start of end of list.\n const isScrollAtStart = offset < 100;\n const isScrollAtEnd = contentLength - visibleLength - offset < 100;\n\n if (isScrollAtStart) {\n maybeCallOnStartReached();\n }\n\n if (isScrollAtEnd) {\n maybeCallOnEndReached();\n }\n\n // Show scrollToBottom button once scroll position goes beyond 300.\n const isScrollAtBottom = offset <= 300;\n const showScrollToBottomButton = !isScrollAtBottom || !hasNoMoreRecentMessagesToLoad;\n\n const shouldMarkRead =\n !threadList && offset <= 0 && hasNoMoreRecentMessagesToLoad && channel.countUnread() > 0;\n\n if (shouldMarkRead) {\n markRead();\n }\n\n setScrollToBottomButtonVisible(showScrollToBottomButton);\n\n if (onListScroll) {\n onListScroll(event);\n }\n };\n\n const goToNewMessages = async () => {\n if (!hasNoMoreRecentMessagesToLoad) {\n resetPaginationTrackersRef.current();\n await reloadChannel();\n } else if (flatListRef.current) {\n flatListRef.current.scrollToOffset({\n offset: 0,\n });\n }\n\n setScrollToBottomButtonVisible(false);\n if (!threadList) {\n markRead();\n }\n };\n\n const onScrollToIndexFailedRef = useRef<\n FlatListProps<MessageType<StreamChatGenerics>>['onScrollToIndexFailed']\n >((info) => {\n // We got a failure as we tried to scroll to an item that was outside the render length\n if (flatListRef.current) {\n // we dont know the actual size of all items but we can see the average, so scroll to the closest offset\n flatListRef.current.scrollToOffset({\n animated: false,\n offset: info.averageItemLength * info.index,\n });\n // since we used only an average offset.. we wont go to the center of the item yet\n // with a little delay to wait for scroll to offset to complete, we can then scroll to the index\n setTimeout(() => {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: info.index,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n if (messageIdLastScrolledToRef.current) {\n setTargetedMessage(messageIdLastScrolledToRef.current);\n }\n }, 150);\n }\n });\n\n const goToMessage = useCallback(\n (messageId: string) => {\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageId,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: true,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // keep track of this messageId, so that we dont scroll to again in useEffect for targeted message change\n messageIdLastScrolledToRef.current = messageId;\n setTargetedMessage(messageId);\n return;\n }\n messageIdToScrollToRef.current = messageId; // keep track of the id to scroll afterwards\n loadChannelAroundMessage({ messageId }); // now try to load the message and whats around it\n resetPaginationTrackersRef.current();\n },\n [messageList],\n );\n\n /**\n * Check if a messageId needs to be scrolled to after list loads, and scroll to it\n * Note: This effect fires on every list change with a small debounce so that scrolling isnt abrupted by an immediate rerender\n */\n useEffect(() => {\n if (scrollToDebounceTimeoutRef.current) clearTimeout(scrollToDebounceTimeoutRef.current);\n scrollToDebounceTimeoutRef.current = setTimeout(() => {\n // goToMessage method might have requested to scroll to a message\n let messageIdToScroll: string | undefined = messageIdToScrollToRef.current;\n if (!initialScrollSet.current && initialScrollToFirstUnreadMessage) {\n // find the first unread message, if we have to initially scroll to an unread message\n for (let index = messageList.length - 1; index >= 0; index--) {\n if (isUnreadMessageRef.current(messageList[index], channelLastReadRef.current)) {\n messageIdToScroll = messageList[index].id;\n break;\n }\n }\n } else if (targetedMessage && messageIdLastScrolledToRef.current !== targetedMessage) {\n // if some messageId was targeted but not scrolledTo yet\n // we have scroll to there after loading completes\n messageIdToScroll = targetedMessage;\n }\n if (!messageIdToScroll) return;\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageIdToScroll,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: false,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // reset the messageId tracker to not scroll to that again\n messageIdToScrollToRef.current = undefined;\n // keep track of this messageId, so that we dont scroll to again for targeted message change\n messageIdLastScrolledToRef.current = messageIdToScroll;\n if (!initialScrollSet.current && initialScrollToFirstUnreadMessage) {\n initialScrollSet.current = true;\n } else {\n setTargetedMessage(messageIdToScroll);\n }\n }\n }, 150);\n }, [messageList, targetedMessage, initialScrollToFirstUnreadMessage]);\n\n const messagesWithImages =\n legacyImageViewerSwipeBehaviour &&\n messageList.filter((message) => {\n const isMessageTypeDeleted = message.type === 'deleted';\n if (!isMessageTypeDeleted && message.attachments) {\n return message.attachments.some(\n (attachment) =>\n attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n (attachment.image_url || attachment.thumb_url),\n );\n }\n return false;\n });\n\n /**\n * This is for the useEffect to run again in the case that a message\n * gets edited with more or the same number of images\n */\n const imageString =\n legacyImageViewerSwipeBehaviour &&\n messagesWithImages &&\n messagesWithImages\n .map((message) =>\n message.attachments\n ?.map((attachment) => attachment.image_url || attachment.thumb_url || '')\n .join(),\n )\n .join();\n\n const numberOfMessagesWithImages =\n legacyImageViewerSwipeBehaviour && messagesWithImages && messagesWithImages.length;\n const threadExists = !!thread;\n\n useEffect(() => {\n if (\n legacyImageViewerSwipeBehaviour &&\n isListActive &&\n ((threadList && thread) || (!threadList && !thread))\n ) {\n setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);\n }\n }, [\n imageString,\n isListActive,\n legacyImageViewerSwipeBehaviour,\n numberOfMessagesWithImages,\n threadExists,\n threadList,\n ]);\n\n const stickyHeaderFormatDate =\n stickyHeaderDate?.getFullYear() === new Date().getFullYear() ? 'MMM D' : 'MMM D, YYYY';\n const tStickyHeaderDate =\n stickyHeaderDate && !hideStickyDateHeader ? tDateTimeParser(stickyHeaderDate) : null;\n\n const stickyHeaderDateString = useMemo(() => {\n if (tStickyHeaderDate === null || hideStickyDateHeader) return null;\n if (isDayOrMoment(tStickyHeaderDate)) return tStickyHeaderDate.format(stickyHeaderFormatDate);\n\n return new Date(tStickyHeaderDate).toDateString();\n }, [tStickyHeaderDate, stickyHeaderFormatDate, hideStickyDateHeader]);\n\n const dismissImagePicker = () => {\n if (!hasMoved && selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n }\n };\n const onScrollBeginDrag = () => !hasMoved && selectedPicker && setHasMoved(true);\n const onScrollEndDrag = () => hasMoved && selectedPicker && setHasMoved(false);\n\n const refCallback = (ref: FlatListType<MessageType<StreamChatGenerics>>) => {\n flatListRef.current = ref;\n\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n };\n\n const debugRef = useDebugContext();\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: thread ? 'ThreadList' : 'Messages',\n data: messageList,\n });\n }\n\n const renderListEmptyComponent = () => (\n <View style={[styles.flex, styles.invert]} testID='empty-state'>\n <EmptyStateIndicator listType='message' />\n </View>\n );\n\n if (!FlatList) return null;\n\n if (loading) {\n return (\n <View style={styles.flex}>\n <LoadingIndicator listType='message' />\n </View>\n );\n }\n\n const StickyHeaderComponent = () => {\n if (!stickyHeaderDateString) return null;\n if (StickyHeader) return <StickyHeader dateString={stickyHeaderDateString} />;\n if (messageListLengthAfterUpdate) return <DateHeader dateString={stickyHeaderDateString} />;\n return null;\n };\n\n return (\n <View\n style={[styles.container, { backgroundColor: white_snow }, container]}\n testID='message-flat-list-wrapper'\n >\n <FlatList\n contentContainerStyle={[styles.contentContainer, contentContainer]}\n data={messageList}\n /** Disables the MessageList UI. Which means, message actions, reactions won't work. */\n extraData={disabled || !hasNoMoreRecentMessagesToLoad}\n inverted={inverted}\n keyboardShouldPersistTaps='handled'\n keyExtractor={keyExtractor}\n ListEmptyComponent={renderListEmptyComponent}\n ListFooterComponent={FooterComponent}\n ListHeaderComponent={HeaderComponent}\n maintainVisibleContentPosition={{\n autoscrollToTopThreshold: autoscrollToTop ? 10 : undefined,\n minIndexForVisible: 1,\n }}\n maxToRenderPerBatch={30}\n onScroll={handleScroll}\n onScrollBeginDrag={onScrollBeginDrag}\n onScrollEndDrag={onScrollEndDrag}\n onScrollToIndexFailed={onScrollToIndexFailedRef.current}\n onTouchEnd={dismissImagePicker}\n onViewableItemsChanged={onViewableItemsChanged.current}\n ref={refCallback}\n renderItem={renderItem}\n scrollEnabled={overlay === 'none'}\n style={[styles.listContainer, listContainer]}\n testID='message-flat-list'\n viewabilityConfig={flatListViewabilityConfig}\n {...additionalFlatListProps}\n />\n {!loading && (\n <>\n <View style={styles.stickyHeader}>\n <StickyHeaderComponent />\n </View>\n {!disableTypingIndicator && TypingIndicator && (\n <TypingIndicatorContainer>\n <TypingIndicator />\n </TypingIndicatorContainer>\n )}\n <ScrollToBottomButton\n onPress={goToNewMessages}\n showNotification={scrollToBottomButtonVisible}\n unreadCount={threadList ? 0 : channel?.countUnread()}\n />\n </>\n )}\n <NetworkDownIndicator />\n </View>\n );\n};\n\nexport type MessageListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageListPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListProps<StreamChatGenerics>,\n) => {\n const { closePicker, selectedPicker, setSelectedPicker } = useAttachmentPickerContext();\n const {\n channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n hideStickyDateHeader,\n isChannelActive,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n markRead,\n NetworkDownIndicator,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n } = useChannelContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { setMessages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n DateHeader,\n disableTypingIndicator,\n FlatList,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n Message,\n MessageSystem,\n myMessageTheme,\n ScrollToBottomButton,\n TypingIndicator,\n TypingIndicatorContainer,\n } = useMessagesContext<StreamChatGenerics>();\n const { hasNoMoreRecentMessagesToLoad, loadMore, loadMoreRecent } =\n usePaginatedMessageListContext<StreamChatGenerics>();\n const { overlay } = useOverlayContext();\n const { loadMoreThread, thread } = useThreadContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MessageListWithContext\n {...{\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n FlatList,\n hasNoMoreRecentMessagesToLoad,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isListActive: isChannelActive,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n t,\n targetedMessage,\n tDateTimeParser,\n thread,\n TypingIndicator,\n TypingIndicatorContainer,\n }}\n {...props}\n noGroupByUser={!enableMessageGroupingByUser || props.noGroupByUser}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"names":["styles","StyleSheet","create","container","alignItems","flex","width","contentContainer","flexGrow","paddingBottom","invert","transform","scaleY","listContainer","messagePadding","paddingHorizontal","stickyHeader","position","top","keyExtractor","item","id","created_at","toISOString","Date","now","toString","flatListViewabilityConfig","viewAreaCoveragePercentThreshold","MessageListWithContext","props","LoadingMoreIndicator","threadList","InlineLoadingMoreThreadIndicator","InlineLoadingMoreIndicator","additionalFlatListProps","channel","client","closePicker","DateHeader","disabled","disableTypingIndicator","EmptyStateIndicator","FlatList","FooterComponent","hasNoMoreRecentMessagesToLoad","HeaderComponent","InlineLoadingMoreRecentIndicator","hideStickyDateHeader","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","inverted","isListActive","legacyImageViewerSwipeBehaviour","loadChannelAroundMessage","loading","LoadingIndicator","loadMore","loadMoreRecent","loadMoreThread","markRead","Message","MessageSystem","myMessageTheme","NetworkDownIndicator","noGroupByUser","onListScroll","onThreadSelect","overlay","reloadChannel","ScrollToBottomButton","scrollToFirstUnreadThreshold","selectedPicker","setFlatListRef","setMessages","setSelectedPicker","setTargetedMessage","StickyHeader","targetedMessage","tDateTimeParser","thread","TypingIndicator","TypingIndicatorContainer","useTheme","theme","white_snow","colors","messageList","modifiedTheme","useMemo","mergeThemes","style","useMessageList","messageListLengthBeforeUpdate","useRef","messageListLengthAfterUpdate","length","topMessageBeforeUpdate","topMessageAfterUpdate","useState","autoscrollToTop","setAutoscrollToTop","onStartReachedTracker","onEndReachedTracker","onStartReachedInPromise","onEndReachedInPromise","flatListRef","initialScrollSet","channelResyncScrollSet","scrollToDebounceTimeoutRef","messageIdToScrollToRef","messageIdLastScrolledToRef","hasMoved","setHasMoved","getLastReceivedMessage","lastReceivedId","setLastReceivedId","scrollToBottomButtonVisible","setScrollToBottomButtonVisible","stickyHeaderDate","setStickyHeaderDate","stickyHeaderDateRef","isUnreadMessageRef","message","lastRead","channelLastReadRef","initialized","undefined","useEffect","current","updateStickyHeaderDateIfNeeded","viewableItems","lastItem","pop","isMessageTypeDeleted","type","toDateString","onViewableItemsChanged","Platform","OS","resetPaginationTrackersRef","shouldMarkReadOnFirstLoad","countUnread","lastReceivedMessage","hasNewMessage","isMyMessage","user","userID","scrollToBottomIfNeeded","setTimeout","scrollToOffset","offset","maybeCallOnStartReached","renderItem","index","offlineMode","lastMessage","showUnreadUnderlay","insertInlineUnreadIndicator","wrapMessageInTheme","goToMessage","isMessageWithStylesReadByAndDateSeparator","groupStyles","dateSeparator","quoted_message_id","limit","callback","Promise","resolve","onError","then","maybeCallOnEndReached","handleScroll","event","nativeEvent","contentOffset","y","visibleLength","layoutMeasurement","height","contentLength","contentSize","isScrollAtStart","isScrollAtEnd","isScrollAtBottom","showScrollToBottomButton","shouldMarkRead","goToNewMessages","onScrollToIndexFailedRef","info","animated","averageItemLength","scrollToIndex","viewPosition","useCallback","messageId","indexOfParentInMessageList","findIndex","clearTimeout","messageIdToScroll","messagesWithImages","filter","attachments","some","attachment","title_link","og_scrape_url","image_url","thumb_url","imageString","map","join","numberOfMessagesWithImages","threadExists","stickyHeaderFormatDate","getFullYear","tStickyHeaderDate","stickyHeaderDateString","isDayOrMoment","format","dismissImagePicker","onScrollBeginDrag","onScrollEndDrag","refCallback","ref","debugRef","useDebugContext","isDebugModeEnabled","__DEV__","setEventType","setSendEventParams","action","data","renderListEmptyComponent","StickyHeaderComponent","backgroundColor","autoscrollToTopThreshold","minIndexForVisible","MessageList","useAttachmentPickerContext","useChannelContext","enableMessageGroupingByUser","error","isChannelActive","useChatContext","useImageGalleryContext","useMessagesContext","usePaginatedMessageListContext","useOverlayContext","useThreadContext","useTranslationContext","t"],"sources":["MessageList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n FlatListProps,\n FlatList as FlatListType,\n Platform,\n ScrollViewProps,\n StyleSheet,\n View,\n ViewToken,\n} from 'react-native';\n\nimport type { Channel as StreamChannel } from 'stream-chat';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n useMessageList,\n} from './hooks/useMessageList';\nimport { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';\nimport { InlineLoadingMoreRecentIndicator } from './InlineLoadingMoreRecentIndicator';\nimport { InlineLoadingMoreThreadIndicator } from './InlineLoadingMoreThreadIndicator';\nimport { getLastReceivedMessage } from './utils/getLastReceivedMessage';\n\nimport {\n AttachmentPickerContextValue,\n useAttachmentPickerContext,\n} from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport {\n PaginatedMessageListContextValue,\n usePaginatedMessageListContext,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n isDayOrMoment,\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n width: '100%',\n },\n contentContainer: {\n flexGrow: 1,\n /**\n * paddingBottom is set to 4 to account for the default date\n * header and inline indicator alignment. The top margin is 8\n * on the header but 4 on the inline date, this adjusts the spacing\n * to allow the \"first\" inline date to align with the date header.\n */\n paddingBottom: 4,\n },\n flex: { flex: 1 },\n invert: { transform: [{ scaleY: -1 }] },\n listContainer: {\n flex: 1,\n width: '100%',\n },\n messagePadding: {\n paddingHorizontal: 8,\n },\n stickyHeader: {\n position: 'absolute',\n top: 0,\n },\n});\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: MessageType<StreamChatGenerics>,\n) => {\n if (item.id) return item.id;\n if (item.created_at)\n return typeof item.created_at === 'string' ? item.created_at : item.created_at.toISOString();\n return Date.now().toString();\n};\n\nconst flatListViewabilityConfig = {\n viewAreaCoveragePercentThreshold: 1,\n};\n\ntype MessageListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<AttachmentPickerContextValue, 'closePicker' | 'selectedPicker' | 'setSelectedPicker'> &\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'channel'\n | 'disabled'\n | 'EmptyStateIndicator'\n | 'hideStickyDateHeader'\n | 'loadChannelAroundMessage'\n | 'loading'\n | 'LoadingIndicator'\n | 'markRead'\n | 'NetworkDownIndicator'\n | 'reloadChannel'\n | 'scrollToFirstUnreadThreshold'\n | 'setTargetedMessage'\n | 'StickyHeader'\n | 'targetedMessage'\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setMessages'> &\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'hasNoMoreRecentMessagesToLoad' | 'loadMore' | 'loadMoreRecent'\n > &\n Pick<OverlayContextValue, 'overlay'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'DateHeader'\n | 'disableTypingIndicator'\n | 'FlatList'\n | 'initialScrollToFirstUnreadMessage'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'legacyImageViewerSwipeBehaviour'\n | 'Message'\n | 'ScrollToBottomButton'\n | 'MessageSystem'\n | 'myMessageTheme'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'loadMoreThread' | 'thread'> &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n /**\n * Besides existing (default) UX behavior of underlying FlatList of MessageList component, if you want\n * to attach some additional props to underlying FlatList, you can add it to following prop.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **NOTE** Don't use `additionalFlatListProps` to get access to ref of flatlist. Use `setFlatListRef` instead.\n *\n * e.g.\n * ```js\n * <MessageList\n * additionalFlatListProps={{ bounces: true, keyboardDismissMode: true }} />\n * ```\n */\n additionalFlatListProps?: Partial<FlatListProps<MessageType<StreamChatGenerics>>>;\n /**\n * UI component for footer of message list. By default message list will use `InlineLoadingMoreIndicator`\n * as FooterComponent. If you want to implement your own inline loading indicator, you can access `loadingMore`\n * from context.\n *\n * This is a [ListHeaderComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header by default if inverted is true or defaulted\n */\n FooterComponent?: React.ComponentType;\n /**\n * UI component for header of message list. By default message list will use `InlineLoadingMoreRecentIndicator`\n * as HeaderComponent. If you want to implement your own inline loading indicator, you can access `loadingMoreRecent`\n * from context.\n *\n * This is a [ListFooterComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header if inverted is false\n */\n HeaderComponent?: React.ComponentType;\n /** Whether or not the FlatList is inverted. Defaults to true */\n inverted?: boolean;\n isListActive?: boolean;\n /** Turn off grouping of messages by user */\n noGroupByUser?: boolean;\n onListScroll?: ScrollViewProps['onScroll'];\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: ThreadContextValue<StreamChatGenerics>['thread']) => void;\n /**\n * Use `setFlatListRef` to get access to ref to inner FlatList.\n *\n * e.g.\n * ```js\n * <MessageList\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef?: (ref: FlatListType<MessageType<StreamChatGenerics>> | null) => void;\n /**\n * Boolean whether or not the Messages in the MessageList are part of a Thread\n **/\n threadList?: boolean;\n };\n\n/**\n * The message list component renders a list of messages. It consumes the following contexts:\n *\n * [ChannelContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/)\n * [ChatContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/)\n * [MessagesContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/messages-context/)\n * [ThreadContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/thread-context/)\n * [TranslationContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nconst MessageListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListPropsWithContext<StreamChatGenerics>,\n) => {\n const LoadingMoreIndicator = props.threadList\n ? InlineLoadingMoreThreadIndicator\n : InlineLoadingMoreIndicator;\n const {\n additionalFlatListProps,\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n FlatList,\n FooterComponent = LoadingMoreIndicator,\n hasNoMoreRecentMessagesToLoad,\n HeaderComponent = InlineLoadingMoreRecentIndicator,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n inverted = true,\n isListActive = false,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n noGroupByUser,\n onListScroll,\n onThreadSelect,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setFlatListRef,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n tDateTimeParser,\n thread,\n threadList = false,\n TypingIndicator,\n TypingIndicatorContainer,\n } = props;\n\n const { theme } = useTheme();\n\n const {\n colors: { white_snow },\n messageList: { container, contentContainer, listContainer },\n } = theme;\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageTheme, theme],\n );\n\n const messageList = useMessageList<StreamChatGenerics>({\n noGroupByUser,\n threadList,\n });\n const messageListLengthBeforeUpdate = useRef(0);\n const messageListLengthAfterUpdate = messageList.length;\n\n /**\n * We need topMessage and channelLastRead values to set the initial scroll position.\n * So these values only get used if `initialScrollToFirstUnreadMessage` prop is true.\n */\n const topMessageBeforeUpdate = useRef<MessageType<StreamChatGenerics>>();\n const topMessageAfterUpdate = messageList[messageList.length - 1];\n\n const [autoscrollToTop, setAutoscrollToTop] = useState(false);\n\n /**\n * We want to call onEndReached and onStartReached only once, per content length.\n * We keep track of calls to these functions per content length, with following trackers.\n */\n const onStartReachedTracker = useRef<Record<number, boolean>>({});\n const onEndReachedTracker = useRef<Record<number, boolean>>({});\n\n const onStartReachedInPromise = useRef<Promise<void> | null>(null);\n const onEndReachedInPromise = useRef<Promise<void> | null>(null);\n\n const flatListRef = useRef<FlatListType<MessageType<StreamChatGenerics>> | null>(null);\n\n /**\n * Flag to track if the initial scroll has been set\n * If the prop `initialScrollToFirstUnreadMessage` was enabled, then we scroll to the unread msg and set it to true\n * If not, the default offset of 0 for flatList means that it has been set already\n */\n const initialScrollSet = useRef<boolean>(!initialScrollToFirstUnreadMessage);\n\n const channelResyncScrollSet = useRef<boolean>(true);\n\n /**\n * The timeout id used to debounce our scrollToIndex calls on messageList updates\n */\n const scrollToDebounceTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * If a messageId was requested to scroll to but was unloaded,\n * this flag keeps track of it to scroll to it after loading the message\n */\n const messageIdToScrollToRef = useRef<string>();\n /**\n * Last messageID that was scrolled to after loading a new message list,\n * this flag keeps track of it so that we dont scroll to it again on target message set\n */\n const messageIdLastScrolledToRef = useRef<string>();\n const [hasMoved, setHasMoved] = useState(false);\n const [lastReceivedId, setLastReceivedId] = useState(getLastReceivedMessage(messageList)?.id);\n const [scrollToBottomButtonVisible, setScrollToBottomButtonVisible] = useState(false);\n\n const [stickyHeaderDate, setStickyHeaderDate] = useState<Date | undefined>();\n const stickyHeaderDateRef = useRef<Date | undefined>();\n\n const isUnreadMessageRef = useRef(\n (\n message: MessageType<StreamChatGenerics> | undefined,\n lastRead?: ReturnType<StreamChannel<StreamChatGenerics>['lastRead']>,\n ) => message && lastRead && message.created_at && lastRead < message.created_at,\n );\n\n const channelLastReadRef = useRef(channel?.initialized ? channel.lastRead() : undefined);\n\n useEffect(() => {\n channelLastReadRef.current = channel?.initialized ? channel.lastRead() : undefined;\n }, [channel]);\n\n const updateStickyHeaderDateIfNeeded = (viewableItems: ViewToken[]) => {\n if (viewableItems.length) {\n const lastItem = viewableItems.pop() as {\n item: MessageType<StreamChatGenerics>;\n };\n\n const isMessageTypeDeleted = lastItem.item.type === 'deleted';\n\n if (\n lastItem?.item?.created_at &&\n !isMessageTypeDeleted &&\n typeof lastItem.item.created_at !== 'string' &&\n lastItem.item.created_at.toDateString() !== stickyHeaderDateRef.current?.toDateString()\n ) {\n stickyHeaderDateRef.current = lastItem.item.created_at;\n setStickyHeaderDate(lastItem.item.created_at);\n }\n }\n };\n\n /**\n * FlatList doesn't accept changeable function for onViewableItemsChanged prop.\n * Thus useRef.\n */\n const onViewableItemsChanged = useRef(\n ({ viewableItems }: { viewableItems: ViewToken[] | undefined }) => {\n /**\n * When a new message comes in, list scrolls down to the bottom automatically (using prop `maintainVisibleContentPosition`)\n * and we mark the channel as read from handleScroll function.\n * Although this logic is dependent on the fact that `onScroll` event gets triggered during this process.\n * But for Android, this event is not triggered when messages length is lesser than visible screen height.\n *\n * And thus we need to check if the message list length is lesser than visible screen height and mark the channel as read.\n */\n if (\n Platform.OS === 'android' &&\n viewableItems?.length &&\n viewableItems?.length >= messageListLengthBeforeUpdate.current\n ) {\n channel.markRead();\n }\n\n if (viewableItems && !hideStickyDateHeader) {\n updateStickyHeaderDateIfNeeded(viewableItems);\n }\n },\n );\n\n /**\n * Resets the pagination trackers, doing so cancels currently scheduled loading more calls\n */\n const resetPaginationTrackersRef = useRef(() => {\n onStartReachedTracker.current = {};\n onEndReachedTracker.current = {};\n });\n\n useEffect(() => {\n setScrollToBottomButtonVisible(false);\n }, [disabled]);\n\n useEffect(() => {\n /**\n * 1. !initialScrollToFirstUnreadMessage && channel.countUnread() > 0\n *\n * In this case MessageList won't scroll to first unread message when opened, so we can mark\n * the channel as read right after opening.\n *\n * 2. initialScrollToFirstUnreadMessage && channel.countUnread() <= scrollToFirstUnreadThreshold\n *\n * In this case MessageList will be opened to first unread message.\n * But if there are not enough (scrollToFirstUnreadThreshold) unread messages, then MessageList\n * won't need to scroll up. So we can safely mark the channel as read right after opening.\n */\n const shouldMarkReadOnFirstLoad =\n !loading &&\n channel &&\n ((!initialScrollToFirstUnreadMessage && channel.countUnread() > 0) ||\n (initialScrollToFirstUnreadMessage &&\n channel.countUnread() <= scrollToFirstUnreadThreshold));\n\n if (shouldMarkReadOnFirstLoad) {\n markRead();\n }\n }, [loading]);\n\n useEffect(() => {\n const lastReceivedMessage = getLastReceivedMessage(messageList);\n\n const hasNewMessage = lastReceivedId !== lastReceivedMessage?.id;\n const isMyMessage = lastReceivedMessage?.user?.id === client.userID;\n\n setLastReceivedId(lastReceivedMessage?.id);\n\n /**\n * Scroll down when\n * 1. you send a new message to channel\n * 2. new message list is small than the one before update - channel has resynced\n * 3. created_at timestamp of top message before update is lesser than created_at timestamp of top message after update - channel has resynced\n */\n const scrollToBottomIfNeeded = () => {\n if (!client || !channel || messageList.length === 0) {\n return;\n }\n if (\n (hasNewMessage && isMyMessage) ||\n messageListLengthAfterUpdate < messageListLengthBeforeUpdate.current ||\n (topMessageBeforeUpdate.current?.created_at &&\n topMessageAfterUpdate?.created_at &&\n topMessageBeforeUpdate.current.created_at < topMessageAfterUpdate.created_at)\n ) {\n channelResyncScrollSet.current = false;\n setScrollToBottomButtonVisible(false);\n resetPaginationTrackersRef.current();\n\n setTimeout(() => {\n flatListRef.current?.scrollToOffset({\n offset: 0,\n });\n }, 50);\n setTimeout(() => {\n channelResyncScrollSet.current = true;\n if (channel.countUnread() > 0) {\n markRead();\n }\n }, 500);\n }\n };\n\n if (threadList || hasNoMoreRecentMessagesToLoad) {\n scrollToBottomIfNeeded();\n } else if (!scrollToBottomButtonVisible) {\n setScrollToBottomButtonVisible(true);\n }\n\n if (\n !hasNoMoreRecentMessagesToLoad &&\n flatListRef.current &&\n messageListLengthBeforeUpdate.current === 0 &&\n messageListLengthAfterUpdate < 10\n ) {\n /**\n * Trigger onStartReached on first load, if messages are not enough to fill the screen.\n * This is important especially for android, where you can't overscroll.\n */\n maybeCallOnStartReached(10);\n }\n\n messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;\n topMessageBeforeUpdate.current = topMessageAfterUpdate;\n }, [messageListLengthAfterUpdate, topMessageAfterUpdate?.id]);\n\n useEffect(() => {\n setAutoscrollToTop(hasNoMoreRecentMessagesToLoad);\n }, [messageList, hasNoMoreRecentMessagesToLoad]);\n\n const renderItem = ({\n index,\n item: message,\n }: {\n index: number;\n item: MessageType<StreamChatGenerics>;\n }) => {\n if (!channel || (!channel.initialized && !channel.offlineMode)) return null;\n\n const lastRead = channel.lastRead();\n\n const lastMessage = messageList?.[index + 1];\n\n const showUnreadUnderlay =\n !!isUnreadMessageRef.current(message, lastRead) && scrollToBottomButtonVisible;\n const insertInlineUnreadIndicator =\n showUnreadUnderlay && !isUnreadMessageRef.current(lastMessage, lastRead);\n\n if (message.type === 'system') {\n return (\n <>\n <View testID={`message-list-item-${index}`}>\n <MessageSystem message={message} style={styles.messagePadding} />\n </View>\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n }\n\n const wrapMessageInTheme = client.userID === message.user?.id && !!myMessageTheme;\n return wrapMessageInTheme ? (\n <>\n <ThemeProvider mergedStyle={modifiedTheme}>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={lastReceivedId === message.id ? lastReceivedId : undefined}\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n </ThemeProvider>\n {isMessageWithStylesReadByAndDateSeparator(message) && message.dateSeparator && (\n <InlineDateSeparator date={message.dateSeparator} />\n )}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n ) : (\n <>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={\n lastReceivedId === message.id || message.quoted_message_id\n ? lastReceivedId\n : undefined\n }\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n {isMessageWithStylesReadByAndDateSeparator(message) && message.dateSeparator && (\n <InlineDateSeparator date={message.dateSeparator} />\n )}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n };\n\n /**\n * We are keeping full control on message pagination, and not relying on react-native for it.\n * The reasons being,\n * 1. FlatList doesn't support onStartReached prop\n * 2. `onEndReached` function prop available on react-native, gets executed\n * once per content length (and thats actually a nice optimization strategy).\n * But it also means, we always need to prioritize onEndReached above our\n * logic for `onStartReached`.\n * 3. `onEndReachedThreshold` prop decides - at which scroll position to call `onEndReached`.\n * Its a factor of content length (which is necessary for \"real\" infinite scroll). But on\n * the other hand, it also makes calls to `onEndReached` (and this `channel.query`) way\n * too early during scroll, which we don't really need. So we are going to instead\n * keep some fixed offset distance, to decide when to call `loadMore` or `loadMoreRecent`.\n *\n * We are still gonna keep the optimization, which react-native does - only call onEndReached\n * once per content length.\n */\n\n /**\n * 1. Makes a call to `loadMoreRecent` function, which queries more recent messages.\n * 2. Ensures that we call `loadMoreRecent`, once per content length\n * 3. If the call to `loadMore` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnStartReached = async (limit?: number) => {\n // If onStartReached has already been called for given data length, then ignore.\n if (messageList?.length && onStartReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onStartReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onStartReachedInPromise.current = null;\n\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onStartReached trigger after 2 seconds, to try again */\n setTimeout(() => {\n onStartReachedTracker.current = {};\n }, 2000);\n };\n\n // If onEndReached is in progress, better to wait for it to finish for smooth UX\n if (onEndReachedInPromise.current) {\n await onEndReachedInPromise.current;\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n } else {\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n }\n };\n\n /**\n * 1. Makes a call to `loadMore` function, which queries more older messages.\n * 2. Ensures that we call `loadMore`, once per content length\n * 3. If the call to `loadMoreRecent` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnEndReached = async () => {\n // If onEndReached has already been called for given messageList length, then ignore.\n if (messageList?.length && onEndReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onEndReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onEndReachedInPromise.current = null;\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onEndReachedTracker trigger after 2 seconds, to try again */\n setTimeout(() => {\n onEndReachedTracker.current = {};\n }, 2000);\n };\n\n // If onStartReached is in progress, better to wait for it to finish for smooth UX\n if (onStartReachedInPromise.current) {\n await onStartReachedInPromise.current;\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n } else {\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n }\n };\n\n /**\n * Following if condition covers following cases:\n * 1. If I scroll up -> show scrollToBottom button.\n * 2. If I scroll to bottom of screen\n * |-> hide scrollToBottom button.\n * |-> if channel is unread, call markRead().\n */\n const handleScroll: ScrollViewProps['onScroll'] = (event) => {\n if (!channel || !channelResyncScrollSet.current) {\n return;\n }\n\n const offset = event.nativeEvent.contentOffset.y;\n const visibleLength = event.nativeEvent.layoutMeasurement.height;\n const contentLength = event.nativeEvent.contentSize.height;\n // Check if scroll has reached either start of end of list.\n const isScrollAtStart = offset < 100;\n const isScrollAtEnd = contentLength - visibleLength - offset < 100;\n\n if (isScrollAtStart) {\n maybeCallOnStartReached();\n }\n\n if (isScrollAtEnd) {\n maybeCallOnEndReached();\n }\n\n // Show scrollToBottom button once scroll position goes beyond 300.\n const isScrollAtBottom = offset <= 300;\n const showScrollToBottomButton = !isScrollAtBottom || !hasNoMoreRecentMessagesToLoad;\n\n const shouldMarkRead =\n !threadList && offset <= 0 && hasNoMoreRecentMessagesToLoad && channel.countUnread() > 0;\n\n if (shouldMarkRead) {\n markRead();\n }\n\n setScrollToBottomButtonVisible(showScrollToBottomButton);\n\n if (onListScroll) {\n onListScroll(event);\n }\n };\n\n const goToNewMessages = async () => {\n if (!hasNoMoreRecentMessagesToLoad) {\n resetPaginationTrackersRef.current();\n await reloadChannel();\n } else if (flatListRef.current) {\n flatListRef.current.scrollToOffset({\n offset: 0,\n });\n }\n\n setScrollToBottomButtonVisible(false);\n if (!threadList) {\n markRead();\n }\n };\n\n const onScrollToIndexFailedRef = useRef<\n FlatListProps<MessageType<StreamChatGenerics>>['onScrollToIndexFailed']\n >((info) => {\n // We got a failure as we tried to scroll to an item that was outside the render length\n if (flatListRef.current) {\n // we dont know the actual size of all items but we can see the average, so scroll to the closest offset\n flatListRef.current.scrollToOffset({\n animated: false,\n offset: info.averageItemLength * info.index,\n });\n // since we used only an average offset.. we wont go to the center of the item yet\n // with a little delay to wait for scroll to offset to complete, we can then scroll to the index\n setTimeout(() => {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: info.index,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n if (messageIdLastScrolledToRef.current) {\n setTargetedMessage(messageIdLastScrolledToRef.current);\n }\n }, 150);\n }\n });\n\n const goToMessage = useCallback(\n (messageId: string) => {\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageId,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: true,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // keep track of this messageId, so that we dont scroll to again in useEffect for targeted message change\n messageIdLastScrolledToRef.current = messageId;\n setTargetedMessage(messageId);\n return;\n }\n messageIdToScrollToRef.current = messageId; // keep track of the id to scroll afterwards\n loadChannelAroundMessage({ messageId }); // now try to load the message and whats around it\n resetPaginationTrackersRef.current();\n },\n [messageList],\n );\n\n /**\n * Check if a messageId needs to be scrolled to after list loads, and scroll to it\n * Note: This effect fires on every list change with a small debounce so that scrolling isnt abrupted by an immediate rerender\n */\n useEffect(() => {\n if (scrollToDebounceTimeoutRef.current) clearTimeout(scrollToDebounceTimeoutRef.current);\n scrollToDebounceTimeoutRef.current = setTimeout(() => {\n // goToMessage method might have requested to scroll to a message\n let messageIdToScroll: string | undefined = messageIdToScrollToRef.current;\n if (!initialScrollSet.current && initialScrollToFirstUnreadMessage) {\n // find the first unread message, if we have to initially scroll to an unread message\n for (let index = messageList.length - 1; index >= 0; index--) {\n if (isUnreadMessageRef.current(messageList[index], channelLastReadRef.current)) {\n messageIdToScroll = messageList[index].id;\n break;\n }\n }\n } else if (targetedMessage && messageIdLastScrolledToRef.current !== targetedMessage) {\n // if some messageId was targeted but not scrolledTo yet\n // we have scroll to there after loading completes\n messageIdToScroll = targetedMessage;\n }\n if (!messageIdToScroll) return;\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageIdToScroll,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: false,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // reset the messageId tracker to not scroll to that again\n messageIdToScrollToRef.current = undefined;\n // keep track of this messageId, so that we dont scroll to again for targeted message change\n messageIdLastScrolledToRef.current = messageIdToScroll;\n if (!initialScrollSet.current && initialScrollToFirstUnreadMessage) {\n initialScrollSet.current = true;\n } else {\n setTargetedMessage(messageIdToScroll);\n }\n }\n }, 150);\n }, [messageList, targetedMessage, initialScrollToFirstUnreadMessage]);\n\n const messagesWithImages =\n legacyImageViewerSwipeBehaviour &&\n messageList.filter((message) => {\n const isMessageTypeDeleted = message.type === 'deleted';\n if (!isMessageTypeDeleted && message.attachments) {\n return message.attachments.some(\n (attachment) =>\n attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n (attachment.image_url || attachment.thumb_url),\n );\n }\n return false;\n });\n\n /**\n * This is for the useEffect to run again in the case that a message\n * gets edited with more or the same number of images\n */\n const imageString =\n legacyImageViewerSwipeBehaviour &&\n messagesWithImages &&\n messagesWithImages\n .map((message) =>\n message.attachments\n ?.map((attachment) => attachment.image_url || attachment.thumb_url || '')\n .join(),\n )\n .join();\n\n const numberOfMessagesWithImages =\n legacyImageViewerSwipeBehaviour && messagesWithImages && messagesWithImages.length;\n const threadExists = !!thread;\n\n useEffect(() => {\n if (\n legacyImageViewerSwipeBehaviour &&\n isListActive &&\n ((threadList && thread) || (!threadList && !thread))\n ) {\n setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);\n }\n }, [\n imageString,\n isListActive,\n legacyImageViewerSwipeBehaviour,\n numberOfMessagesWithImages,\n threadExists,\n threadList,\n ]);\n\n const stickyHeaderFormatDate =\n stickyHeaderDate?.getFullYear() === new Date().getFullYear() ? 'MMM D' : 'MMM D, YYYY';\n const tStickyHeaderDate =\n stickyHeaderDate && !hideStickyDateHeader ? tDateTimeParser(stickyHeaderDate) : null;\n\n const stickyHeaderDateString = useMemo(() => {\n if (tStickyHeaderDate === null || hideStickyDateHeader) return null;\n if (isDayOrMoment(tStickyHeaderDate)) return tStickyHeaderDate.format(stickyHeaderFormatDate);\n\n return new Date(tStickyHeaderDate).toDateString();\n }, [tStickyHeaderDate, stickyHeaderFormatDate, hideStickyDateHeader]);\n\n const dismissImagePicker = () => {\n if (!hasMoved && selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n }\n };\n const onScrollBeginDrag = () => !hasMoved && selectedPicker && setHasMoved(true);\n const onScrollEndDrag = () => hasMoved && selectedPicker && setHasMoved(false);\n\n const refCallback = (ref: FlatListType<MessageType<StreamChatGenerics>>) => {\n flatListRef.current = ref;\n\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n };\n\n const debugRef = useDebugContext();\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: thread ? 'ThreadList' : 'Messages',\n data: messageList,\n });\n }\n\n const renderListEmptyComponent = () => (\n <View style={[styles.flex, styles.invert]} testID='empty-state'>\n <EmptyStateIndicator listType='message' />\n </View>\n );\n\n if (!FlatList) return null;\n\n if (loading) {\n return (\n <View style={styles.flex}>\n <LoadingIndicator listType='message' />\n </View>\n );\n }\n\n const StickyHeaderComponent = () => {\n if (!stickyHeaderDateString) return null;\n if (StickyHeader) return <StickyHeader dateString={stickyHeaderDateString} />;\n if (messageListLengthAfterUpdate) return <DateHeader dateString={stickyHeaderDateString} />;\n return null;\n };\n\n return (\n <View\n style={[styles.container, { backgroundColor: white_snow }, container]}\n testID='message-flat-list-wrapper'\n >\n <FlatList\n contentContainerStyle={[styles.contentContainer, contentContainer]}\n data={messageList}\n /** Disables the MessageList UI. Which means, message actions, reactions won't work. */\n extraData={disabled || !hasNoMoreRecentMessagesToLoad}\n inverted={inverted}\n keyboardShouldPersistTaps='handled'\n keyExtractor={keyExtractor}\n ListEmptyComponent={renderListEmptyComponent}\n ListFooterComponent={FooterComponent}\n ListHeaderComponent={HeaderComponent}\n maintainVisibleContentPosition={{\n autoscrollToTopThreshold: autoscrollToTop ? 10 : undefined,\n minIndexForVisible: 1,\n }}\n maxToRenderPerBatch={30}\n onScroll={handleScroll}\n onScrollBeginDrag={onScrollBeginDrag}\n onScrollEndDrag={onScrollEndDrag}\n onScrollToIndexFailed={onScrollToIndexFailedRef.current}\n onTouchEnd={dismissImagePicker}\n onViewableItemsChanged={onViewableItemsChanged.current}\n ref={refCallback}\n renderItem={renderItem}\n scrollEnabled={overlay === 'none'}\n style={[styles.listContainer, listContainer]}\n testID='message-flat-list'\n viewabilityConfig={flatListViewabilityConfig}\n {...additionalFlatListProps}\n />\n {!loading && (\n <>\n <View style={styles.stickyHeader}>\n <StickyHeaderComponent />\n </View>\n {!disableTypingIndicator && TypingIndicator && (\n <TypingIndicatorContainer>\n <TypingIndicator />\n </TypingIndicatorContainer>\n )}\n <ScrollToBottomButton\n onPress={goToNewMessages}\n showNotification={scrollToBottomButtonVisible}\n unreadCount={threadList ? 0 : channel?.countUnread()}\n />\n </>\n )}\n <NetworkDownIndicator />\n </View>\n );\n};\n\nexport type MessageListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageListPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListProps<StreamChatGenerics>,\n) => {\n const { closePicker, selectedPicker, setSelectedPicker } = useAttachmentPickerContext();\n const {\n channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n hideStickyDateHeader,\n isChannelActive,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n markRead,\n NetworkDownIndicator,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n } = useChannelContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { setMessages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n DateHeader,\n disableTypingIndicator,\n FlatList,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n Message,\n MessageSystem,\n myMessageTheme,\n ScrollToBottomButton,\n TypingIndicator,\n TypingIndicatorContainer,\n } = useMessagesContext<StreamChatGenerics>();\n const { hasNoMoreRecentMessagesToLoad, loadMore, loadMoreRecent } =\n usePaginatedMessageListContext<StreamChatGenerics>();\n const { overlay } = useOverlayContext();\n const { loadMoreThread, thread } = useThreadContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MessageListWithContext\n {...{\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n FlatList,\n hasNoMoreRecentMessagesToLoad,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isListActive: isChannelActive,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n t,\n targetedMessage,\n tDateTimeParser,\n thread,\n TypingIndicator,\n TypingIndicatorContainer,\n }}\n {...props}\n noGroupByUser={!enableMessageGroupingByUser || props.noGroupByUser}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
5
4
|
});
|
|
6
5
|
exports.MessageSystem = void 0;
|
|
7
|
-
|
|
8
6
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
7
|
var _reactNative = require("react-native");
|
|
11
|
-
|
|
12
8
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
13
|
-
|
|
14
9
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
15
|
-
|
|
16
10
|
var _this = this,
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageList/MessageSystem.tsx";
|
|
19
12
|
var styles = _reactNative.StyleSheet.create({
|
|
20
13
|
container: {
|
|
21
14
|
alignItems: 'center',
|
|
@@ -37,29 +30,24 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
37
30
|
marginTop: 10
|
|
38
31
|
}
|
|
39
32
|
});
|
|
40
|
-
|
|
41
33
|
var MessageSystem = function MessageSystem(props) {
|
|
42
34
|
var _message$text;
|
|
43
|
-
|
|
44
35
|
var formatDate = props.formatDate,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
message = props.message,
|
|
37
|
+
style = props.style;
|
|
48
38
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
39
|
+
_useTheme$theme = _useTheme.theme,
|
|
40
|
+
_useTheme$theme$color = _useTheme$theme.colors,
|
|
41
|
+
grey = _useTheme$theme$color.grey,
|
|
42
|
+
grey_whisper = _useTheme$theme$color.grey_whisper,
|
|
43
|
+
_useTheme$theme$messa = _useTheme$theme.messageList.messageSystem,
|
|
44
|
+
container = _useTheme$theme$messa.container,
|
|
45
|
+
dateText = _useTheme$theme$messa.dateText,
|
|
46
|
+
line = _useTheme$theme$messa.line,
|
|
47
|
+
text = _useTheme$theme$messa.text,
|
|
48
|
+
textContainer = _useTheme$theme$messa.textContainer;
|
|
60
49
|
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
61
|
-
|
|
62
|
-
|
|
50
|
+
tDateTimeParser = _useTranslationContex.tDateTimeParser;
|
|
63
51
|
var createdAt = message.created_at;
|
|
64
52
|
var parsedDate = tDateTimeParser(createdAt);
|
|
65
53
|
var date = formatDate && createdAt ? formatDate(createdAt) : parsedDate && (0, _TranslationContext.isDayOrMoment)(parsedDate) ? parsedDate.calendar().toUpperCase() : parsedDate;
|
|
@@ -122,7 +110,6 @@ var MessageSystem = function MessageSystem(props) {
|
|
|
122
110
|
}
|
|
123
111
|
}));
|
|
124
112
|
};
|
|
125
|
-
|
|
126
113
|
exports.MessageSystem = MessageSystem;
|
|
127
114
|
MessageSystem.displayName = 'MessageSystem{messageList{messageSystem}}';
|
|
128
115
|
//# sourceMappingURL=MessageSystem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["styles","StyleSheet","create","container","alignItems","flexDirection","justifyContent","marginBottom","line","flex","height","text","fontSize","fontWeight","textAlign","textContainer","marginTop","MessageSystem","props","formatDate","message","style","useTheme","theme","colors","grey","grey_whisper","messageList","messageSystem","dateText","useTranslationContext","tDateTimeParser","createdAt","created_at","parsedDate","date","isDayOrMoment","calendar","toUpperCase","backgroundColor","color","displayName"],"sources":["MessageSystem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';\n\nimport type { MessageType } from './hooks/useMessageList';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'center',\n marginBottom: 10,\n },\n line: {\n flex: 1,\n height: 0.5,\n },\n text: {\n fontSize: 10,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n textContainer: {\n flex: 3,\n marginTop: 10,\n },\n});\n\nexport type MessageSystemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<StreamChatGenerics>;\n /**\n * Formatter function for date object.\n *\n * @param date TDateTimeParserInput object of message\n * @returns string\n */\n formatDate?: (date: TDateTimeParserInput) => string;\n style?: StyleProp<ViewStyle>;\n};\n\n/**\n * A component to display system message. e.g, when someone updates the channel,\n * they can attach a message with that update. That message will be available\n * in message list as (type) system message.\n */\nexport const MessageSystem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageSystemProps<StreamChatGenerics>,\n) => {\n const { formatDate, message, style } = props;\n\n const {\n theme: {\n colors: { grey, grey_whisper },\n messageList: {\n messageSystem: { container, dateText, line, text, textContainer },\n },\n },\n } = useTheme();\n const { tDateTimeParser } = useTranslationContext();\n\n const createdAt = message.created_at;\n const parsedDate = tDateTimeParser(createdAt);\n const date =\n formatDate && createdAt\n ? formatDate(createdAt)\n : parsedDate && isDayOrMoment(parsedDate)\n ? parsedDate.calendar().toUpperCase()\n : parsedDate;\n\n return (\n <View style={[styles.container, style, container]} testID='message-system'>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n <View style={[styles.textContainer, textContainer]}>\n <Text style={[styles.text, { color: grey }, text]}>\n {message.text?.toUpperCase() || ''}\n </Text>\n <Text style={[styles.text, { color: grey }, dateText]}>{date}</Text>\n </View>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n </View>\n );\n};\n\nMessageSystem.displayName = 'MessageSystem{messageList{messageSystem}}';\n"],"mappings":"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"}
|
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
5
4
|
});
|
|
6
5
|
exports.NetworkDownIndicator = void 0;
|
|
7
|
-
|
|
8
6
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
7
|
var _reactNative = require("react-native");
|
|
11
|
-
|
|
12
8
|
var _ChannelContext = require("../../contexts/channelContext/ChannelContext");
|
|
13
|
-
|
|
14
9
|
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
15
|
-
|
|
16
10
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
17
|
-
|
|
18
11
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
19
|
-
|
|
20
12
|
var _this = this,
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageList/NetworkDownIndicator.tsx";
|
|
23
14
|
var styles = _reactNative.StyleSheet.create({
|
|
24
15
|
errorNotification: {
|
|
25
16
|
alignItems: 'center',
|
|
@@ -34,34 +25,27 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
34
25
|
fontSize: 14
|
|
35
26
|
}
|
|
36
27
|
});
|
|
37
|
-
|
|
38
28
|
var NetworkDownIndicator = function NetworkDownIndicator() {
|
|
39
29
|
var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
error = _useChannelContext.error;
|
|
42
31
|
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
isOnline = _useChatContext.isOnline;
|
|
45
33
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
34
|
+
_useTheme$theme = _useTheme.theme,
|
|
35
|
+
grey = _useTheme$theme.colors.grey,
|
|
36
|
+
_useTheme$theme$messa = _useTheme$theme.messageList,
|
|
37
|
+
errorNotification = _useTheme$theme$messa.errorNotification,
|
|
38
|
+
errorNotificationText = _useTheme$theme$messa.errorNotificationText;
|
|
52
39
|
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
53
|
-
|
|
54
|
-
|
|
40
|
+
t = _useTranslationContex.t;
|
|
55
41
|
var getText = function getText() {
|
|
56
42
|
if (!isOnline) {
|
|
57
43
|
return t('Reconnecting...');
|
|
58
44
|
} else if (error) {
|
|
59
45
|
return t('Error loading messages for this channel...');
|
|
60
46
|
}
|
|
61
|
-
|
|
62
47
|
return '';
|
|
63
48
|
};
|
|
64
|
-
|
|
65
49
|
var indicatorText = getText();
|
|
66
50
|
if (!indicatorText) return null;
|
|
67
51
|
return _react["default"].createElement(_reactNative.View, {
|
|
@@ -85,6 +69,5 @@ var NetworkDownIndicator = function NetworkDownIndicator() {
|
|
|
85
69
|
}
|
|
86
70
|
}, indicatorText));
|
|
87
71
|
};
|
|
88
|
-
|
|
89
72
|
exports.NetworkDownIndicator = NetworkDownIndicator;
|
|
90
73
|
//# sourceMappingURL=NetworkDownIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["styles","StyleSheet","create","errorNotification","alignItems","left","paddingVertical","position","right","top","errorNotificationText","color","fontSize","NetworkDownIndicator","useChannelContext","error","useChatContext","isOnline","useTheme","theme","grey","colors","messageList","useTranslationContext","t","getText","indicatorText","backgroundColor"],"sources":["NetworkDownIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useChannelContext } from '../../contexts/channelContext/ChannelContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n errorNotification: {\n alignItems: 'center',\n left: 0,\n paddingVertical: 4,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n errorNotificationText: {\n color: '#FFFFFF',\n fontSize: 14,\n },\n});\n\nexport const NetworkDownIndicator = () => {\n const { error } = useChannelContext();\n const { isOnline } = useChatContext();\n const {\n theme: {\n colors: { grey },\n messageList: { errorNotification, errorNotificationText },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n const getText = () => {\n if (!isOnline) {\n return t('Reconnecting...');\n } else if (error) {\n return t('Error loading messages for this channel...');\n }\n return '';\n };\n\n const indicatorText = getText();\n\n if (!indicatorText) return null;\n\n return (\n <View\n style={[styles.errorNotification, { backgroundColor: `${grey}E6` }, errorNotification]}\n testID='error-notification'\n >\n <Text style={[styles.errorNotificationText, errorNotificationText]}>{indicatorText}</Text>\n </View>\n );\n};\n"],"mappings":";;;;;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAA6F;EAAA;AAE7F,IAAMA,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,iBAAiB,EAAE;IACjBC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,CAAC;IAClBC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP,CAAC;EACDC,qBAAqB,EAAE;IACrBC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEK,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,GAAS;EACxC,yBAAkB,IAAAC,iCAAiB,GAAE;IAA7BC,KAAK,sBAALA,KAAK;EACb,sBAAqB,IAAAC,2BAAc,GAAE;IAA7BC,QAAQ,mBAARA,QAAQ;EAChB,gBAKI,IAAAC,sBAAQ,GAAE;IAAA,4BAJZC,KAAK;IACOC,IAAI,mBAAdC,MAAM,CAAID,IAAI;IAAA,wCACdE,WAAW;IAAInB,iBAAiB,yBAAjBA,iBAAiB;IAAEO,qBAAqB,yBAArBA,qBAAqB;EAG3D,4BAAc,IAAAa,yCAAqB,GAAE;IAA7BC,CAAC,yBAADA,CAAC;EAET,IAAMC,OAAO,GAAG,SAAVA,OAAO,GAAS;IACpB,IAAI,CAACR,QAAQ,EAAE;MACb,OAAOO,CAAC,CAAC,iBAAiB,CAAC;IAC7B,CAAC,MAAM,IAAIT,KAAK,EAAE;MAChB,OAAOS,CAAC,CAAC,4CAA4C,CAAC;IACxD;IACA,OAAO,EAAE;EACX,CAAC;EAED,IAAME,aAAa,GAAGD,OAAO,EAAE;EAE/B,IAAI,CAACC,aAAa,EAAE,OAAO,IAAI;EAE/B,OACE,gCAAC,iBAAI;IACH,KAAK,EAAE,CAAC1B,MAAM,CAACG,iBAAiB,EAAE;MAAEwB,eAAe,EAAKP,IAAI;IAAK,CAAC,EAAEjB,iBAAiB,CAAE;IACvF,MAAM,EAAC,oBAAoB;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,GAE3B,gCAAC,iBAAI;IAAC,KAAK,EAAE,CAACH,MAAM,CAACU,qBAAqB,EAAEA,qBAAqB,CAAE;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,GAAEgB,aAAa,CAAQ,CACrF;AAEX,CAAC;AAAC"}
|