stream-chat-react-native-core 5.36.0-beta.5 → 5.36.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/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +7 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useProcessReactions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +16 -16
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/StickyHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/hooks/useFetchReactions.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/WaveProgressBar.js.map +1 -1
- package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/hooks/useScreenDimensions.js.map +1 -1
- package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
- package/lib/commonjs/hooks/useViewport.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js +2 -1
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +6 -2
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +7 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useProcessReactions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +16 -16
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/StickyHeader.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/hooks/useFetchReactions.js.map +1 -1
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/module/components/ProgressControl/WaveProgressBar.js.map +1 -1
- package/lib/module/components/Spinner/Spinner.js.map +1 -1
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/hooks/useScreenDimensions.js.map +1 -1
- package/lib/module/hooks/useStreami18n.js.map +1 -1
- package/lib/module/hooks/useViewport.js.map +1 -1
- package/lib/module/mock-builders/mock.js +2 -1
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +6 -2
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreatePaginatedMessageListContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/Skeleton.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useAddedToChannelNotification.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useChannelDeleted.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useChannelHidden.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useChannelTruncated.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useChannelUpdated.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useChannelVisible.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/listeners/useUserPresence.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts.map +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useMutedUsers.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryOverlay.d.ts.map +1 -1
- package/lib/typescript/components/Indicators/LoadingDot.d.ts.map +1 -1
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useProcessReactions.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/StickyHeader.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts.map +1 -1
- package/lib/typescript/components/MessageOverlay/hooks/useFetchReactions.d.ts.map +1 -1
- package/lib/typescript/components/ProgressControl/ProgressControl.d.ts.map +1 -1
- package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts.map +1 -1
- package/lib/typescript/components/Spinner/Spinner.d.ts.map +1 -1
- package/lib/typescript/components/Thread/Thread.d.ts.map +1 -1
- package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts.map +1 -1
- package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts.map +1 -1
- package/lib/typescript/hooks/useScreenDimensions.d.ts.map +1 -1
- package/lib/typescript/hooks/useStreami18n.d.ts.map +1 -1
- package/lib/typescript/hooks/useViewport.d.ts.map +1 -1
- package/lib/typescript/utils/DBSyncManager.d.ts +3 -0
- package/lib/typescript/utils/DBSyncManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Attachment/AudioAttachment.tsx +1 -0
- package/src/components/Attachment/Gallery.tsx +1 -0
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -0
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +1 -0
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -0
- package/src/components/Channel/Channel.tsx +12 -0
- package/src/components/Channel/hooks/useCreateChannelContext.ts +1 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +1 -0
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +1 -0
- package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +2 -0
- package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +1 -0
- package/src/components/Channel/hooks/useCreateThreadContext.ts +1 -0
- package/src/components/Channel/hooks/useCreateTypingContext.ts +1 -0
- package/src/components/ChannelList/ChannelList.tsx +1 -0
- package/src/components/ChannelList/Skeleton.tsx +1 -0
- package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +1 -0
- package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +1 -0
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -0
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +1 -0
- package/src/components/ChannelPreview/ChannelPreview.tsx +4 -0
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +1 -0
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +1 -0
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +1 -0
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +1 -0
- package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -0
- package/src/components/Chat/Chat.tsx +10 -1
- package/src/components/Chat/__tests__/Chat.test.js +80 -2
- package/src/components/Chat/hooks/useAppSettings.ts +1 -0
- package/src/components/Chat/hooks/useCreateChatContext.ts +1 -0
- package/src/components/Chat/hooks/useIsOnline.ts +1 -0
- package/src/components/Chat/hooks/useMutedUsers.ts +1 -0
- package/src/components/Chat/hooks/useSyncDatabase.ts +1 -0
- package/src/components/ImageGallery/ImageGallery.tsx +5 -0
- package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx +1 -0
- package/src/components/Indicators/LoadingDot.tsx +1 -0
- package/src/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.tsx +2 -0
- package/src/components/Message/hooks/useCreateMessageContext.ts +1 -0
- package/src/components/Message/hooks/useProcessReactions.ts +1 -0
- package/src/components/MessageInput/FileUploadPreview.tsx +10 -9
- package/src/components/MessageInput/MessageInput.tsx +13 -0
- package/src/components/MessageList/MessageList.tsx +6 -0
- package/src/components/MessageList/StickyHeader.tsx +1 -0
- package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +1 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +2 -0
- package/src/components/MessageOverlay/hooks/useFetchReactions.ts +3 -0
- package/src/components/ProgressControl/ProgressControl.tsx +1 -0
- package/src/components/ProgressControl/WaveProgressBar.tsx +2 -0
- package/src/components/Spinner/Spinner.tsx +1 -0
- package/src/components/Thread/Thread.tsx +2 -0
- package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +1 -0
- package/src/contexts/channelsStateContext/useChannelState.ts +3 -0
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +1 -0
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +3 -0
- package/src/contexts/overlayContext/OverlayProvider.tsx +1 -0
- package/src/hooks/useScreenDimensions.ts +2 -0
- package/src/hooks/useStreami18n.ts +1 -0
- package/src/hooks/useViewport.ts +2 -0
- package/src/mock-builders/mock.js +1 -1
- package/src/utils/DBSyncManager.ts +11 -1
- package/src/version.json +1 -1
|
@@ -9,7 +9,8 @@ import { useChatContext } from '../../../contexts/chatContext/ChatContext';
|
|
|
9
9
|
import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
|
|
10
10
|
import dispatchConnectionChangedEvent from '../../../mock-builders/event/connectionChanged';
|
|
11
11
|
import dispatchConnectionRecoveredEvent from '../../../mock-builders/event/connectionRecovered';
|
|
12
|
-
import { getTestClient } from '../../../mock-builders/mock';
|
|
12
|
+
import { getTestClient, getTestClientWithUser, setUser } from '../../../mock-builders/mock';
|
|
13
|
+
import { DBSyncManager } from '../../../utils/DBSyncManager';
|
|
13
14
|
import { Streami18n } from '../../../utils/i18n/Streami18n';
|
|
14
15
|
import { Chat } from '../Chat';
|
|
15
16
|
|
|
@@ -24,7 +25,10 @@ const TranslationContextConsumer = ({ fn }) => {
|
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
describe('Chat', () => {
|
|
27
|
-
afterEach(
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
cleanup();
|
|
30
|
+
jest.clearAllMocks();
|
|
31
|
+
});
|
|
28
32
|
const chatClient = getTestClient();
|
|
29
33
|
|
|
30
34
|
it('renders children without crashing', async () => {
|
|
@@ -215,5 +219,79 @@ describe('Chat', () => {
|
|
|
215
219
|
expect(context.tDateTimeParser).toBe(newI18nInstance.tDateTimeParser);
|
|
216
220
|
});
|
|
217
221
|
});
|
|
222
|
+
|
|
223
|
+
it('makes sure DBSyncManager listeners are cleaned up after Chat remount', async () => {
|
|
224
|
+
const chatClientWithUser = await getTestClientWithUser({ id: 'testID' });
|
|
225
|
+
jest.spyOn(DBSyncManager, 'init');
|
|
226
|
+
|
|
227
|
+
// initial mount and render
|
|
228
|
+
const { rerender } = render(
|
|
229
|
+
<Chat client={chatClientWithUser} enableOfflineSupport key={1} />,
|
|
230
|
+
);
|
|
231
|
+
|
|
232
|
+
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
233
|
+
const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
|
|
234
|
+
const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
|
|
235
|
+
|
|
236
|
+
// remount
|
|
237
|
+
rerender(<Chat client={chatClientWithUser} enableOfflineSupport key={2} />);
|
|
238
|
+
|
|
239
|
+
await waitFor(() => {
|
|
240
|
+
expect(DBSyncManager.init).toHaveBeenCalledTimes(2);
|
|
241
|
+
expect(unsubscribeSpy).toHaveBeenCalledTimes(2);
|
|
242
|
+
expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
|
|
243
|
+
listenersAfterInitialMount.length,
|
|
244
|
+
);
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
it('makes sure DBSyncManager listeners are cleaned up if the user changes', async () => {
|
|
249
|
+
const chatClientWithUser = await getTestClientWithUser({ id: 'testID1' });
|
|
250
|
+
jest.spyOn(DBSyncManager, 'init');
|
|
251
|
+
|
|
252
|
+
// initial render
|
|
253
|
+
const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
254
|
+
|
|
255
|
+
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
256
|
+
const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
|
|
257
|
+
await act(async () => {
|
|
258
|
+
await setUser(chatClientWithUser, { id: 'testID2' });
|
|
259
|
+
});
|
|
260
|
+
const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
|
|
261
|
+
|
|
262
|
+
// rerender with different user ID
|
|
263
|
+
rerender(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
264
|
+
|
|
265
|
+
await waitFor(() => {
|
|
266
|
+
expect(DBSyncManager.init).toHaveBeenCalledTimes(2);
|
|
267
|
+
expect(unsubscribeSpy).toHaveBeenCalledTimes(1);
|
|
268
|
+
expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
|
|
269
|
+
listenersAfterInitialMount.length,
|
|
270
|
+
);
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
it('makes sure DBSyncManager state stays intact during normal rerenders', async () => {
|
|
275
|
+
const chatClientWithUser = await getTestClientWithUser({ id: 'testID' });
|
|
276
|
+
jest.spyOn(DBSyncManager, 'init');
|
|
277
|
+
|
|
278
|
+
// initial render
|
|
279
|
+
const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
280
|
+
|
|
281
|
+
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
282
|
+
const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
|
|
283
|
+
const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
|
|
284
|
+
|
|
285
|
+
// rerender
|
|
286
|
+
rerender(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
287
|
+
|
|
288
|
+
await waitFor(() => {
|
|
289
|
+
expect(DBSyncManager.init).toHaveBeenCalledTimes(1);
|
|
290
|
+
expect(unsubscribeSpy).toHaveBeenCalledTimes(0);
|
|
291
|
+
expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
|
|
292
|
+
listenersAfterInitialMount.length,
|
|
293
|
+
);
|
|
294
|
+
});
|
|
295
|
+
});
|
|
218
296
|
});
|
|
219
297
|
});
|
|
@@ -102,6 +102,7 @@ export const useIsOnline = <
|
|
|
102
102
|
chatListeners.forEach((listener) => listener.unsubscribe?.());
|
|
103
103
|
unsubscribeNetInfo?.();
|
|
104
104
|
};
|
|
105
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
106
|
}, [clientExists]);
|
|
106
107
|
|
|
107
108
|
return { connectionRecovering, isOnline };
|
|
@@ -160,6 +160,7 @@ export const ImageGallery = <
|
|
|
160
160
|
const quarterScreenHeight = fullWindowHeight / 4;
|
|
161
161
|
const snapPoints = React.useMemo(
|
|
162
162
|
() => [(fullWindowHeight * 3) / 4, fullWindowHeight - imageGalleryGridHandleHeight],
|
|
163
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
163
164
|
[],
|
|
164
165
|
);
|
|
165
166
|
|
|
@@ -193,6 +194,7 @@ export const ImageGallery = <
|
|
|
193
194
|
useEffect(() => {
|
|
194
195
|
Keyboard.dismiss();
|
|
195
196
|
showScreen();
|
|
197
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
196
198
|
}, []);
|
|
197
199
|
|
|
198
200
|
/**
|
|
@@ -295,6 +297,7 @@ export const ImageGallery = <
|
|
|
295
297
|
|
|
296
298
|
useEffect(() => {
|
|
297
299
|
setImageGalleryAttachments(photos);
|
|
300
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
298
301
|
}, []);
|
|
299
302
|
|
|
300
303
|
/**
|
|
@@ -324,6 +327,7 @@ export const ImageGallery = <
|
|
|
324
327
|
);
|
|
325
328
|
|
|
326
329
|
runOnUI(updatePosition)(newIndex);
|
|
330
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
327
331
|
}, [selectedMessage, photoLength]);
|
|
328
332
|
|
|
329
333
|
/**
|
|
@@ -351,6 +355,7 @@ export const ImageGallery = <
|
|
|
351
355
|
});
|
|
352
356
|
}
|
|
353
357
|
}
|
|
358
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
354
359
|
}, [uriForCurrentImage]);
|
|
355
360
|
|
|
356
361
|
const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({
|
|
@@ -108,10 +108,12 @@ export const KeyboardCompatibleView = ({
|
|
|
108
108
|
|
|
109
109
|
unsetKeyboardListeners();
|
|
110
110
|
};
|
|
111
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
111
112
|
}, []);
|
|
112
113
|
|
|
113
114
|
useEffect(() => {
|
|
114
115
|
updateBottomIfNecessary();
|
|
116
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
115
117
|
}, [keyboardEvent.current]);
|
|
116
118
|
|
|
117
119
|
const dismissKeyboard: () => Promise<void> | undefined = () => {
|
|
@@ -112,5 +112,6 @@ export const useProcessReactions = <
|
|
|
112
112
|
hasReactions: unsortedReactions.length > 0,
|
|
113
113
|
totalReactionCount: unsortedReactions.reduce((total, { count }) => total + count, 0),
|
|
114
114
|
};
|
|
115
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
115
116
|
}, [reaction_groups, own_reactions?.length, latest_reactions?.length, sortReactions]);
|
|
116
117
|
};
|
|
@@ -158,6 +158,7 @@ const FileUploadPreviewWithContext = <
|
|
|
158
158
|
progress: 0,
|
|
159
159
|
})),
|
|
160
160
|
);
|
|
161
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
161
162
|
}, [fileUploads.length]);
|
|
162
163
|
|
|
163
164
|
// Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.
|
|
@@ -284,16 +285,16 @@ const FileUploadPreviewWithContext = <
|
|
|
284
285
|
</View>
|
|
285
286
|
</View>
|
|
286
287
|
)}
|
|
287
|
-
<TouchableOpacity
|
|
288
|
-
onPress={() => {
|
|
289
|
-
removeFile(item.id);
|
|
290
|
-
}}
|
|
291
|
-
style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}
|
|
292
|
-
testID='remove-file-upload-preview'
|
|
293
|
-
>
|
|
294
|
-
<Close pathFill={grey_dark} />
|
|
295
|
-
</TouchableOpacity>
|
|
296
288
|
</UploadProgressIndicator>
|
|
289
|
+
<TouchableOpacity
|
|
290
|
+
onPress={() => {
|
|
291
|
+
removeFile(item.id);
|
|
292
|
+
}}
|
|
293
|
+
style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}
|
|
294
|
+
testID='remove-file-upload-preview'
|
|
295
|
+
>
|
|
296
|
+
<Close pathFill={grey_dark} />
|
|
297
|
+
</TouchableOpacity>
|
|
297
298
|
</>
|
|
298
299
|
);
|
|
299
300
|
};
|
|
@@ -268,6 +268,7 @@ const MessageInputWithContext = <
|
|
|
268
268
|
setMaxNumberOfFiles(maxNumberOfFiles ?? 10);
|
|
269
269
|
|
|
270
270
|
return closeAttachmentPicker;
|
|
271
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
271
272
|
}, []);
|
|
272
273
|
|
|
273
274
|
const [hasResetImages, setHasResetImages] = useState(false);
|
|
@@ -288,6 +289,7 @@ const MessageInputWithContext = <
|
|
|
288
289
|
imageUploads.forEach((image) => removeImage(image.id));
|
|
289
290
|
}
|
|
290
291
|
return () => setSelectedImages([]);
|
|
292
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
291
293
|
}, []);
|
|
292
294
|
|
|
293
295
|
/**
|
|
@@ -300,24 +302,28 @@ const MessageInputWithContext = <
|
|
|
300
302
|
}
|
|
301
303
|
|
|
302
304
|
return () => setSelectedFiles([]);
|
|
305
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
303
306
|
}, []);
|
|
304
307
|
|
|
305
308
|
useEffect(() => {
|
|
306
309
|
if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {
|
|
307
310
|
setHasResetImages(true);
|
|
308
311
|
}
|
|
312
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
309
313
|
}, [imageUploadsLength, selectedImagesLength]);
|
|
310
314
|
|
|
311
315
|
useEffect(() => {
|
|
312
316
|
if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {
|
|
313
317
|
setHasResetFiles(true);
|
|
314
318
|
}
|
|
319
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
315
320
|
}, [fileUploadsLength, selectedFilesLength]);
|
|
316
321
|
|
|
317
322
|
useEffect(() => {
|
|
318
323
|
if (imagesForInput === false && imageUploadsLength) {
|
|
319
324
|
imageUploads.forEach((image) => removeImage(image.id));
|
|
320
325
|
}
|
|
326
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
321
327
|
}, [imagesForInput, imageUploadsLength]);
|
|
322
328
|
|
|
323
329
|
const uploadImagesHandler = () => {
|
|
@@ -353,6 +359,7 @@ const MessageInputWithContext = <
|
|
|
353
359
|
removeImagesHandler();
|
|
354
360
|
}
|
|
355
361
|
}
|
|
362
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
356
363
|
}, [selectedImagesLength]);
|
|
357
364
|
|
|
358
365
|
useEffect(() => {
|
|
@@ -377,6 +384,7 @@ const MessageInputWithContext = <
|
|
|
377
384
|
);
|
|
378
385
|
filesToRemove.forEach((file) => removeFile(file.id));
|
|
379
386
|
}
|
|
387
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
380
388
|
}, [selectedFilesLength]);
|
|
381
389
|
|
|
382
390
|
useEffect(() => {
|
|
@@ -409,6 +417,7 @@ const MessageInputWithContext = <
|
|
|
409
417
|
);
|
|
410
418
|
}
|
|
411
419
|
}
|
|
420
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
412
421
|
}, [imageUploadsLength, hasImagePicker]);
|
|
413
422
|
|
|
414
423
|
useEffect(() => {
|
|
@@ -440,6 +449,7 @@ const MessageInputWithContext = <
|
|
|
440
449
|
);
|
|
441
450
|
}
|
|
442
451
|
}
|
|
452
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
443
453
|
}, [fileUploadsLength, hasImagePicker]);
|
|
444
454
|
|
|
445
455
|
const editingExists = !!editing;
|
|
@@ -468,6 +478,7 @@ const MessageInputWithContext = <
|
|
|
468
478
|
) {
|
|
469
479
|
resetInput();
|
|
470
480
|
}
|
|
481
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
471
482
|
}, [editingExists]);
|
|
472
483
|
|
|
473
484
|
const asyncIdsString = asyncIds.join();
|
|
@@ -484,6 +495,7 @@ const MessageInputWithContext = <
|
|
|
484
495
|
asyncIds.forEach((id) => sendMessageAsync(id));
|
|
485
496
|
sending.current = false;
|
|
486
497
|
}
|
|
498
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
487
499
|
}, [asyncIdsString, asyncUploadsString, sendMessageAsync]);
|
|
488
500
|
|
|
489
501
|
const getMembers = () => {
|
|
@@ -544,6 +556,7 @@ const MessageInputWithContext = <
|
|
|
544
556
|
if (setFocused) setFocused(true);
|
|
545
557
|
},
|
|
546
558
|
}),
|
|
559
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
547
560
|
[additionalTextInputProps],
|
|
548
561
|
);
|
|
549
562
|
|
|
@@ -290,6 +290,7 @@ const MessageListWithContext = <
|
|
|
290
290
|
|
|
291
291
|
const modifiedTheme = useMemo(
|
|
292
292
|
() => mergeThemes({ style: myMessageTheme, theme }),
|
|
293
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
293
294
|
[myMessageThemeString, theme],
|
|
294
295
|
);
|
|
295
296
|
|
|
@@ -469,6 +470,7 @@ const MessageListWithContext = <
|
|
|
469
470
|
if (getShouldMarkReadAutomatically()) {
|
|
470
471
|
markRead();
|
|
471
472
|
}
|
|
473
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
472
474
|
}, [loading, scrollToBottomButtonVisible, isInitialScrollDone]);
|
|
473
475
|
|
|
474
476
|
useEffect(() => {
|
|
@@ -535,6 +537,7 @@ const MessageListWithContext = <
|
|
|
535
537
|
|
|
536
538
|
messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;
|
|
537
539
|
topMessageBeforeUpdate.current = topMessageAfterUpdate;
|
|
540
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
538
541
|
}, [
|
|
539
542
|
threadList,
|
|
540
543
|
hasNoMoreRecentMessagesToLoad,
|
|
@@ -582,6 +585,7 @@ const MessageListWithContext = <
|
|
|
582
585
|
}, 150); // flatlist might take a bit to update, so a small delay is needed
|
|
583
586
|
}
|
|
584
587
|
}
|
|
588
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
585
589
|
}, [rawMessageList, threadList]);
|
|
586
590
|
|
|
587
591
|
// TODO: do not apply on RN 0.73 and above
|
|
@@ -966,6 +970,7 @@ const MessageListWithContext = <
|
|
|
966
970
|
// the message we want to scroll to has not been loaded in the state yet
|
|
967
971
|
loadChannelAroundMessage({ messageId: messageIdToScroll });
|
|
968
972
|
}, 50);
|
|
973
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
969
974
|
}, [targetedMessage, initialScrollToFirstUnreadMessage]);
|
|
970
975
|
|
|
971
976
|
const messagesWithImages =
|
|
@@ -1011,6 +1016,7 @@ const MessageListWithContext = <
|
|
|
1011
1016
|
) {
|
|
1012
1017
|
setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);
|
|
1013
1018
|
}
|
|
1019
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1014
1020
|
}, [
|
|
1015
1021
|
imageString,
|
|
1016
1022
|
isListActive,
|
|
@@ -34,6 +34,7 @@ export const StickyHeader = ({ date, DateHeader, dateString }: StickyHeaderProps
|
|
|
34
34
|
tDateTimeParser,
|
|
35
35
|
timestampTranslationKey: 'timestamp/StickyHeader',
|
|
36
36
|
});
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
38
|
}, [date]);
|
|
38
39
|
|
|
39
40
|
if (!date) return null;
|
|
@@ -163,6 +163,7 @@ const MessageOverlayWithContext = <
|
|
|
163
163
|
|
|
164
164
|
const modifiedTheme = useMemo(
|
|
165
165
|
() => mergeThemes({ style: myMessageTheme, theme }),
|
|
166
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
166
167
|
[myMessageThemeString, theme],
|
|
167
168
|
);
|
|
168
169
|
|
|
@@ -206,6 +207,7 @@ const MessageOverlayWithContext = <
|
|
|
206
207
|
useEffect(() => {
|
|
207
208
|
Keyboard.dismiss();
|
|
208
209
|
fadeScreen();
|
|
210
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
209
211
|
}, []);
|
|
210
212
|
|
|
211
213
|
const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({
|
|
@@ -69,16 +69,19 @@ export const useFetchReactions = <
|
|
|
69
69
|
} catch (error) {
|
|
70
70
|
console.log('Error fetching reactions: ', error);
|
|
71
71
|
}
|
|
72
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
73
|
}, [client, messageId, reactionType, sortString, next, enableOfflineSupport]);
|
|
73
74
|
|
|
74
75
|
const loadNextPage = useCallback(async () => {
|
|
75
76
|
if (next) {
|
|
76
77
|
await fetchReactions();
|
|
77
78
|
}
|
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
80
|
}, [fetchReactions]);
|
|
79
81
|
|
|
80
82
|
useEffect(() => {
|
|
81
83
|
fetchReactions();
|
|
84
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
85
|
}, [messageId, reactionType, sortString]);
|
|
83
86
|
|
|
84
87
|
return { loading, loadNextPage, reactions };
|
|
@@ -72,6 +72,7 @@ export const ProgressControl = React.memo(
|
|
|
72
72
|
state.value = progress * widthInNumbers;
|
|
73
73
|
translateX.value = progress * widthInNumbers;
|
|
74
74
|
}
|
|
75
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
75
76
|
}, [progress, widthInNumbers]);
|
|
76
77
|
|
|
77
78
|
const animatedStyles = useAnimatedStyle(() => ({
|
|
@@ -75,12 +75,14 @@ export const WaveProgressBar = React.memo(
|
|
|
75
75
|
state.value = stageProgress * (WAVEFORM_WIDTH * 2);
|
|
76
76
|
setEndPosition(state.value);
|
|
77
77
|
setCurrentWaveformProgress(stageProgress);
|
|
78
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
79
|
}, [progress]);
|
|
79
80
|
|
|
80
81
|
const stringifiedWaveformData = waveformData.toString();
|
|
81
82
|
|
|
82
83
|
const resampledWaveformData = useMemo(
|
|
83
84
|
() => resampleWaveformData(waveformData, amplitudesCount),
|
|
85
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
86
|
[amplitudesCount, stringifiedWaveformData],
|
|
85
87
|
);
|
|
86
88
|
|
|
@@ -80,6 +80,7 @@ const ThreadWithContext = <
|
|
|
80
80
|
if (thread?.id && thread.reply_count) {
|
|
81
81
|
loadMoreThreadAsync();
|
|
82
82
|
}
|
|
83
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
84
|
}, []);
|
|
84
85
|
|
|
85
86
|
useEffect(
|
|
@@ -91,6 +92,7 @@ const ThreadWithContext = <
|
|
|
91
92
|
onThreadDismount();
|
|
92
93
|
}
|
|
93
94
|
},
|
|
95
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
94
96
|
[],
|
|
95
97
|
);
|
|
96
98
|
|
|
@@ -39,12 +39,14 @@ function useStateManager<
|
|
|
39
39
|
>,
|
|
40
40
|
initialValue?: ChannelState<StreamChatGenerics>[Key],
|
|
41
41
|
) {
|
|
42
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
43
|
const memoizedInitialValue = useMemo(() => initialValue, []);
|
|
43
44
|
const value =
|
|
44
45
|
state[cid]?.[key] || (memoizedInitialValue as ChannelState<StreamChatGenerics>[Key]);
|
|
45
46
|
|
|
46
47
|
const setValue = useCallback(
|
|
47
48
|
(value: ChannelState<StreamChatGenerics>[Key]) => setState({ cid, key, value }),
|
|
49
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
50
|
[cid, key],
|
|
49
51
|
);
|
|
50
52
|
|
|
@@ -86,6 +88,7 @@ export function useChannelState<
|
|
|
86
88
|
return () => {
|
|
87
89
|
decreaseSubscriberCount({ cid });
|
|
88
90
|
};
|
|
91
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
89
92
|
}, []);
|
|
90
93
|
|
|
91
94
|
const [members, setMembers] = useStateManager(
|
|
@@ -34,6 +34,7 @@ export const useMessageDetailsForState = <
|
|
|
34
34
|
if (fileUploads.length || imageUploads.length) {
|
|
35
35
|
setShowMoreOptions(false);
|
|
36
36
|
}
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
38
|
}, [text, imageUploads.length, fileUploads.length]);
|
|
38
39
|
|
|
39
40
|
const messageValue =
|
|
@@ -44,6 +45,7 @@ export const useMessageDetailsForState = <
|
|
|
44
45
|
const mentionedUsers = message.mentioned_users.map((user) => user.id);
|
|
45
46
|
setMentionedUsers(mentionedUsers);
|
|
46
47
|
}
|
|
48
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
49
|
}, [messageValue]);
|
|
48
50
|
|
|
49
51
|
const mapAttachmentToFileUpload = (attachment: Attachment<StreamChatGenerics>): FileUpload => {
|
|
@@ -148,6 +150,7 @@ export const useMessageDetailsForState = <
|
|
|
148
150
|
setImageUploads(newImageUploads);
|
|
149
151
|
}
|
|
150
152
|
}
|
|
153
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
151
154
|
}, [messageValue]);
|
|
152
155
|
|
|
153
156
|
return {
|
|
@@ -25,11 +25,13 @@ export const useScreenDimensions = (rounded?: boolean) => {
|
|
|
25
25
|
return () => subscriptions?.remove();
|
|
26
26
|
}, []);
|
|
27
27
|
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
29
|
const vw = (percentageWidth: number) => {
|
|
29
30
|
const value = screenDimensions.width * (percentageWidth / 100);
|
|
30
31
|
return rounded ? Math.round(value) : value;
|
|
31
32
|
};
|
|
32
33
|
|
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
35
|
const vh = (percentageHeight: number) => {
|
|
34
36
|
const value = screenDimensions.height * (percentageHeight / 100);
|
|
35
37
|
return rounded ? Math.round(value) : value;
|
package/src/hooks/useViewport.ts
CHANGED
|
@@ -25,11 +25,13 @@ export const useViewport = (rounded?: boolean) => {
|
|
|
25
25
|
return () => subscriptions?.remove();
|
|
26
26
|
}, []);
|
|
27
27
|
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
29
|
const vw = (percentageWidth: number) => {
|
|
29
30
|
const value = viewportDimensions.width * (percentageWidth / 100);
|
|
30
31
|
return rounded ? Math.round(value) : value;
|
|
31
32
|
};
|
|
32
33
|
|
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
35
|
const vh = (percentageHeight: number) => {
|
|
34
36
|
const value = viewportDimensions.height * (percentageHeight / 100);
|
|
35
37
|
return rounded ? Math.round(value) : value;
|
|
@@ -6,7 +6,7 @@ import { StreamChat } from 'stream-chat';
|
|
|
6
6
|
const apiKey = 'API_KEY';
|
|
7
7
|
const token = 'dummy_token';
|
|
8
8
|
|
|
9
|
-
const setUser = (client, user) =>
|
|
9
|
+
export const setUser = (client, user) =>
|
|
10
10
|
new Promise((resolve) => {
|
|
11
11
|
client.connectionId = 'dumm_connection_id';
|
|
12
12
|
client.user = user;
|