@sendbird/uikit-react 3.5.0-beta.0 → 3.5.0-mobile-web-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +276 -218
- package/App.js.map +1 -1
- package/CHANGELOG.md +428 -0
- package/Channel/components/ChannelHeader.js +45 -41
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +101 -129
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +55 -52
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +12 -7
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +238 -230
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +146 -128
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +258 -174
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +33 -30
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +138 -193
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +43 -61
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +18 -20
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +11 -19
- package/Channel/context.js.map +1 -1
- package/Channel.js +67 -43
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +29 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +32 -28
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +100 -142
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +71 -82
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +34 -35
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +31 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-f461d265.js → ChannelListProvider-42fb305a.js} +233 -285
- package/ChannelListProvider-42fb305a.js.map +1 -0
- package/{ChannelProvider-554e7116.js → ChannelProvider-42ea1a96.js} +610 -716
- package/ChannelProvider-42ea1a96.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +33 -46
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +40 -46
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +516 -605
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +71 -72
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -32
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +53 -57
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -20
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -24
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +102 -124
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +41 -42
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -21
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-37af96d2.js +44 -0
- package/CreateChannelProvider-37af96d2.js.map +1 -0
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +33 -33
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +18 -17
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +0 -2
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +18 -17
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-1839d2db.js +20 -0
- package/{LocalizationContext-4df0cc32.js.map → LocalizationContext-1839d2db.js.map} +1 -1
- package/MediaQueryContext-0e0b3a1b.js +87 -0
- package/MediaQueryContext-0e0b3a1b.js.map +1 -0
- package/MemberList-28589b39.js +395 -0
- package/MemberList-28589b39.js.map +1 -0
- package/Message/context.js +31 -0
- package/Message/context.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +62 -71
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +201 -224
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +46 -58
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +36 -31
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +168 -190
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +52 -49
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +34 -28
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -4
- package/OpenChannelList/context.js.map +1 -1
- package/OpenChannelList.js +26 -24
- package/OpenChannelList.js.map +1 -1
- package/OpenChannelListProvider-71a32f2d.js +429 -0
- package/OpenChannelListProvider-71a32f2d.js.map +1 -0
- package/OpenChannelProvider-377a0b6e.js +1885 -0
- package/OpenChannelProvider-377a0b6e.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +508 -586
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +56 -69
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +19 -20
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +62 -13
- package/RemoveMessageModal-558db27f.js +36 -0
- package/RemoveMessageModal-558db27f.js.map +1 -0
- package/SendbirdProvider.js +830 -409
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +230 -216
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +110 -89
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -23
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +107 -83
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +292 -272
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +144 -111
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +168 -138
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -14
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +8 -8
- package/Thread.js +86 -57
- package/Thread.js.map +1 -1
- package/ThreadProvider-0b73628e.js +1695 -0
- package/ThreadProvider-0b73628e.js.map +1 -0
- package/{UserProfileContext-c58a7b86.js → UserProfileContext-7e645551.js} +1 -4
- package/{UserProfileContext-c58a7b86.js.map → UserProfileContext-7e645551.js.map} +1 -1
- package/VoiceMessageInputWrapper-0b5a78a1.js +169 -0
- package/VoiceMessageInputWrapper-0b5a78a1.js.map +1 -0
- package/VoicePlayer/context.js +7 -0
- package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/VoicePlayer/useVoicePlayer.js +72 -0
- package/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/VoiceRecorder/context.js +118 -0
- package/VoiceRecorder/context.js.map +1 -0
- package/VoiceRecorder/useVoiceRecorder.js +109 -0
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/WebAudioUtils-fbdb41cd.js +123 -0
- package/WebAudioUtils-fbdb41cd.js.map +1 -0
- package/{_rollupPluginBabelHelpers-498add61.js → _rollupPluginBabelHelpers-ce69e916.js} +17 -11
- package/_rollupPluginBabelHelpers-ce69e916.js.map +1 -0
- package/actionTypes-a5283c75.js +8 -0
- package/actionTypes-a5283c75.js.map +1 -0
- package/cjs/App.js +276 -218
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +45 -41
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +99 -127
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +55 -52
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +12 -7
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +241 -233
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +145 -127
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +258 -174
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +33 -30
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +138 -193
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +43 -61
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +18 -20
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +12 -23
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +67 -43
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +29 -30
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +99 -141
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +71 -82
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +34 -35
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +7 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +31 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-c2148b43.js → ChannelListProvider-b3ffe21a.js} +232 -284
- package/cjs/ChannelListProvider-b3ffe21a.js.map +1 -0
- package/cjs/{ChannelProvider-cf5dc7e3.js → ChannelProvider-b6890429.js} +608 -714
- package/cjs/ChannelProvider-b6890429.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +516 -605
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +71 -72
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -32
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +55 -59
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -20
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +102 -124
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -21
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-e1376032.js +52 -0
- package/cjs/CreateChannelProvider-e1376032.js.map +1 -0
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +33 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +18 -17
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +0 -2
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +18 -17
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-2b3f310d.js → LocalizationContext-461a0816.js} +9 -11
- package/cjs/{LocalizationContext-2b3f310d.js.map → LocalizationContext-461a0816.js.map} +1 -1
- package/cjs/MediaQueryContext-de7c63bc.js +94 -0
- package/cjs/MediaQueryContext-de7c63bc.js.map +1 -0
- package/cjs/MemberList-593809cb.js +401 -0
- package/cjs/MemberList-593809cb.js.map +1 -0
- package/cjs/Message/context.js +40 -0
- package/cjs/Message/context.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +201 -224
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +46 -58
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +36 -31
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +168 -190
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -9
- package/cjs/OpenChannel/context.js.map +1 -1
- package/cjs/OpenChannel.js +34 -28
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -4
- package/cjs/OpenChannelList/context.js.map +1 -1
- package/cjs/OpenChannelList.js +26 -24
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-39c11f87.js +439 -0
- package/cjs/OpenChannelListProvider-39c11f87.js.map +1 -0
- package/cjs/OpenChannelProvider-e794e881.js +1894 -0
- package/cjs/OpenChannelProvider-e794e881.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +508 -586
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +57 -70
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +19 -20
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-c01eb93b.js → RemoveMessageModal-29fa1a05.js} +19 -14
- package/cjs/RemoveMessageModal-29fa1a05.js.map +1 -0
- package/cjs/SendbirdProvider.js +830 -410
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +229 -215
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +109 -88
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -23
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +107 -83
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +291 -271
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +144 -111
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +169 -139
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +13 -14
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +86 -57
- package/cjs/Thread.js.map +1 -1
- package/cjs/ThreadProvider-e2098298.js +1704 -0
- package/cjs/ThreadProvider-e2098298.js.map +1 -0
- package/cjs/{UserProfileContext-9d60cdc4.js → UserProfileContext-1bcc48a2.js} +1 -4
- package/cjs/{UserProfileContext-9d60cdc4.js.map → UserProfileContext-1bcc48a2.js.map} +1 -1
- package/cjs/VoiceMessageInputWrapper-f18d6a5e.js +175 -0
- package/cjs/VoiceMessageInputWrapper-f18d6a5e.js.map +1 -0
- package/cjs/VoicePlayer/context.js +16 -0
- package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/cjs/VoicePlayer/useVoicePlayer.js +76 -0
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/cjs/VoiceRecorder/context.js +128 -0
- package/cjs/VoiceRecorder/context.js.map +1 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js +114 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/cjs/WebAudioUtils-aedad0b1.js +126 -0
- package/cjs/WebAudioUtils-aedad0b1.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-a7254c9d.js → _rollupPluginBabelHelpers-919a4db3.js} +17 -10
- package/cjs/_rollupPluginBabelHelpers-919a4db3.js.map +1 -0
- package/cjs/actionTypes-1e75e6e9.js +10 -0
- package/cjs/actionTypes-1e75e6e9.js.map +1 -0
- package/cjs/{color-89f33656.js → color-48ff06b2.js} +13 -21
- package/cjs/color-48ff06b2.js.map +1 -0
- package/cjs/{compareIds-ca869c2e.js → compareIds-8ed822c1.js} +5 -6
- package/cjs/compareIds-8ed822c1.js.map +1 -0
- package/cjs/{const-db71e993.js → const-49de651c.js} +4 -4
- package/cjs/const-49de651c.js.map +1 -0
- package/cjs/const-852d5677.js +20 -0
- package/cjs/const-852d5677.js.map +1 -0
- package/cjs/consts-2580246d.js +6 -0
- package/cjs/consts-2580246d.js.map +1 -0
- package/cjs/consts-5851f376.js +6 -0
- package/cjs/consts-5851f376.js.map +1 -0
- package/cjs/consts-6f02fcc4.js +41 -0
- package/cjs/consts-6f02fcc4.js.map +1 -0
- package/cjs/consts-e9ee4cf4.js +6 -0
- package/cjs/consts-e9ee4cf4.js.map +1 -0
- package/cjs/{context-2f5d47fd.js → context-4d89551f.js} +6 -5
- package/cjs/{context-2f5d47fd.js.map → context-4d89551f.js.map} +1 -1
- package/cjs/dist/index.css +901 -481
- package/cjs/dist/index.css.map +1 -1
- package/cjs/handlers/OpenChannelHandler.js.map +1 -1
- package/cjs/handlers/SessionHandler.js.map +1 -1
- package/cjs/index-0126dbb4.js +161 -0
- package/cjs/index-0126dbb4.js.map +1 -0
- package/cjs/index-1a223893.js +362 -0
- package/cjs/index-1a223893.js.map +1 -0
- package/cjs/index-223e9372.js +79 -0
- package/cjs/index-223e9372.js.map +1 -0
- package/cjs/{index-621e74bd.js → index-420b8e6d.js} +29 -37
- package/cjs/index-420b8e6d.js.map +1 -0
- package/cjs/{index-d6ef2a60.js → index-44186883.js} +11 -25
- package/cjs/index-44186883.js.map +1 -0
- package/cjs/{index-de151767.js → index-5e6194f8.js} +1 -1
- package/cjs/{index-de151767.js.map → index-5e6194f8.js.map} +1 -1
- package/cjs/{index-73467e1d.js → index-60bf4d5c.js} +2 -2
- package/cjs/{index-73467e1d.js.map → index-60bf4d5c.js.map} +1 -1
- package/cjs/{index-0988ab25.js → index-60ea6503.js} +57 -3
- package/cjs/index-60ea6503.js.map +1 -0
- package/cjs/index-6a46ed00.js +292 -0
- package/cjs/index-6a46ed00.js.map +1 -0
- package/cjs/{index-c4d4ef49.js → index-7a68d56f.js} +1 -1
- package/cjs/index-7a68d56f.js.map +1 -0
- package/cjs/index-81aad270.js +197 -0
- package/cjs/index-81aad270.js.map +1 -0
- package/cjs/{index-2c5dd48c.js → index-849c0736.js} +2 -2
- package/cjs/{index-2c5dd48c.js.map → index-849c0736.js.map} +1 -1
- package/cjs/{index-be9c6237.js → index-a51f1b7d.js} +55 -63
- package/cjs/index-a51f1b7d.js.map +1 -0
- package/cjs/{index-e240e852.js → index-a7025294.js} +42 -51
- package/cjs/index-a7025294.js.map +1 -0
- package/cjs/index-bca3d144.js +587 -0
- package/cjs/index-bca3d144.js.map +1 -0
- package/cjs/index-f4682499.js +57 -0
- package/cjs/index-f4682499.js.map +1 -0
- package/cjs/index-f5399132.js +419 -0
- package/cjs/index-f5399132.js.map +1 -0
- package/cjs/index.js +77 -58
- package/cjs/index.js.map +1 -1
- package/cjs/index.module-10ef9afc.js +6 -0
- package/cjs/index.module-10ef9afc.js.map +1 -0
- package/cjs/lame.all.js +2541 -0
- package/cjs/lame.all.js.map +1 -0
- package/cjs/sendbirdSelectors.js +307 -417
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/{stringSet-91b919f6.js → stringSet-d1cee26a.js} +110 -90
- package/cjs/stringSet-d1cee26a.js.map +1 -0
- package/cjs/tokenize-d3bb1637.js +164 -0
- package/cjs/tokenize-d3bb1637.js.map +1 -0
- package/cjs/topics-00c67dd6.js +18 -0
- package/cjs/topics-00c67dd6.js.map +1 -0
- package/cjs/types-2e9e46b2.js +17 -0
- package/cjs/types-2e9e46b2.js.map +1 -0
- package/cjs/ui/Accordion.js +21 -24
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +10 -13
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -13
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +57 -79
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +16 -15
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +14 -12
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +20 -35
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +38 -41
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +11 -13
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +7 -5
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +172 -198
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +12 -14
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +297 -107
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +22 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +36 -36
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +447 -623
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +20 -31
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +34 -43
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +4 -3
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +10 -12
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +58 -65
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +12 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +203 -545
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +338 -118
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +70 -77
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +56 -61
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +56 -51
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +42 -41
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +10 -11
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +52 -46
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/MutedAvatarOverlay.js +10 -10
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +67 -63
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +8 -7
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +18 -17
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +17 -13
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +136 -149
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +200 -233
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +211 -220
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +160 -173
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -6
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +35 -0
- package/cjs/ui/PlaybackTime.js.map +1 -0
- package/cjs/ui/ProgressBar.js +40 -0
- package/cjs/ui/ProgressBar.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +50 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +31 -29
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +13 -21
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +27 -26
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -18
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +13 -21
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +41 -48
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +25 -22
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +43 -45
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +202 -0
- package/cjs/ui/Toggle.js.map +1 -0
- package/cjs/ui/Tooltip.js +8 -9
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +17 -20
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +21 -22
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +76 -76
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +31 -29
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +108 -0
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
- package/cjs/ui/VoiceMessgeInput.js +22 -0
- package/cjs/ui/VoiceMessgeInput.js.map +1 -0
- package/cjs/ui/Word.js +31 -39
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useDirtyGetMentions-7b6c8a19.js +77 -0
- package/cjs/useDirtyGetMentions-7b6c8a19.js.map +1 -0
- package/cjs/useLongPress-4c2e9a3b.js +87 -0
- package/cjs/useLongPress-4c2e9a3b.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +2 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +16 -21
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +12 -0
- package/cjs/utils/message/isVoiceMessage.js.map +1 -0
- package/cjs/{utils-3714e90e.js → utils-22d05a53.js} +3 -7
- package/cjs/{utils-3714e90e.js.map → utils-22d05a53.js.map} +1 -1
- package/cjs/{utils-1f6c6626.js → utils-3dacb9bc.js} +1 -1
- package/cjs/{utils-1f6c6626.js.map → utils-3dacb9bc.js.map} +1 -1
- package/cjs/utils-c5d4c36e.js +35 -0
- package/cjs/utils-c5d4c36e.js.map +1 -0
- package/cjs/utils-f1c09ec3.js +31 -0
- package/cjs/utils-f1c09ec3.js.map +1 -0
- package/cjs/uuid-d86ea01f.js +15 -0
- package/cjs/{uuid-11d4efe8.js.map → uuid-d86ea01f.js.map} +1 -1
- package/cjs/withSendbird.js +5 -6
- package/cjs/withSendbird.js.map +1 -1
- package/{color-ff5f9069.js → color-4ca8a2ea.js} +5 -14
- package/{color-ff5f9069.js.map → color-4ca8a2ea.js.map} +1 -1
- package/{compareIds-9430f9d8.js → compareIds-08858dd3.js} +5 -6
- package/compareIds-08858dd3.js.map +1 -0
- package/{const-83764204.js → const-714046e0.js} +4 -4
- package/const-714046e0.js.map +1 -0
- package/const-a77c08c9.js +13 -0
- package/const-a77c08c9.js.map +1 -0
- package/consts-9393e7c8.js +27 -0
- package/consts-9393e7c8.js.map +1 -0
- package/consts-aecb8fab.js +4 -0
- package/consts-aecb8fab.js.map +1 -0
- package/consts-d46e0fc1.js +4 -0
- package/consts-d46e0fc1.js.map +1 -0
- package/consts-decd9c7d.js +4 -0
- package/consts-decd9c7d.js.map +1 -0
- package/context-9a6b8b8a.js +13 -0
- package/{context-9a69e846.js.map → context-9a6b8b8a.js.map} +1 -1
- package/dist/index.css +901 -481
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/{index-3f26a31c.js → index-06f34585.js} +2 -2
- package/{index-3f26a31c.js.map → index-06f34585.js.map} +1 -1
- package/{index-134314e2.js → index-20880943.js} +29 -37
- package/index-20880943.js.map +1 -0
- package/index-3130ac38.js +51 -0
- package/index-3130ac38.js.map +1 -0
- package/{index-e5b78039.js → index-3165e396.js} +1 -1
- package/index-3165e396.js.map +1 -0
- package/index-400417a1.js +154 -0
- package/index-400417a1.js.map +1 -0
- package/index-5644a6c0.js +283 -0
- package/index-5644a6c0.js.map +1 -0
- package/{index-defabece.js → index-5db37327.js} +57 -4
- package/index-5db37327.js.map +1 -0
- package/{index-fc4702b7.js → index-7c9ebc67.js} +55 -63
- package/index-7c9ebc67.js.map +1 -0
- package/{index-d3f6dbb9.js → index-9781d2b9.js} +2 -2
- package/{index-d3f6dbb9.js.map → index-9781d2b9.js.map} +1 -1
- package/index-b96440b7.js +76 -0
- package/index-b96440b7.js.map +1 -0
- package/index-bf72ef7c.js +355 -0
- package/index-bf72ef7c.js.map +1 -0
- package/{index-1b91b116.js → index-c6df8184.js} +39 -48
- package/index-c6df8184.js.map +1 -0
- package/{index-07e060cd.js → index-d9c12cf4.js} +1 -1
- package/{index-07e060cd.js.map → index-d9c12cf4.js.map} +1 -1
- package/{index-44470dab.js → index-e1cd2fcf.js} +11 -25
- package/index-e1cd2fcf.js.map +1 -0
- package/index-edfb3327.js +413 -0
- package/index-edfb3327.js.map +1 -0
- package/index-fd51c7d1.js +541 -0
- package/index-fd51c7d1.js.map +1 -0
- package/index-fd95258e.js +182 -0
- package/index-fd95258e.js.map +1 -0
- package/index.d.ts +169 -122
- package/index.js +77 -58
- package/index.js.map +1 -1
- package/index.module-8c144786.js +4 -0
- package/index.module-8c144786.js.map +1 -0
- package/lame.all.js +2537 -0
- package/lame.all.js.map +1 -0
- package/package.json +61 -41
- package/sendbirdSelectors.js +307 -417
- package/sendbirdSelectors.js.map +1 -1
- package/{stringSet-d555d877.js → stringSet-d368e289.js} +110 -90
- package/stringSet-d368e289.js.map +1 -0
- package/tokenize-7056afb7.js +159 -0
- package/tokenize-7056afb7.js.map +1 -0
- package/topics-f9628f1f.js +16 -0
- package/topics-f9628f1f.js.map +1 -0
- package/types-2b508dbc.js +15 -0
- package/types-2b508dbc.js.map +1 -0
- package/ui/Accordion.js +21 -24
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +10 -13
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -13
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +57 -79
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +16 -15
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +14 -12
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +20 -35
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +38 -41
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +11 -13
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +7 -5
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +173 -199
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +12 -14
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +298 -108
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +22 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +36 -36
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +448 -622
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +20 -31
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +34 -43
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +16 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +4 -3
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +10 -12
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +58 -65
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +12 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +206 -548
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +338 -119
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +70 -77
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +56 -61
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +55 -50
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +41 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +10 -11
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +52 -46
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +68 -64
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +8 -7
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +18 -17
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +17 -13
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +136 -149
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +200 -233
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +211 -220
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +160 -173
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -6
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +26 -0
- package/ui/PlaybackTime.js.map +1 -0
- package/ui/ProgressBar.js +30 -0
- package/ui/ProgressBar.js.map +1 -0
- package/ui/QuoteMessage.js +50 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +31 -29
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +13 -21
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +27 -26
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -18
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +13 -21
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +41 -48
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +25 -22
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +43 -45
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +191 -0
- package/ui/Toggle.js.map +1 -0
- package/ui/Tooltip.js +8 -9
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +17 -20
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +21 -22
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +76 -76
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +31 -29
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +99 -0
- package/ui/VoiceMessageItemBody.js.map +1 -0
- package/ui/VoiceMessgeInput.js +14 -0
- package/ui/VoiceMessgeInput.js.map +1 -0
- package/ui/Word.js +31 -39
- package/ui/Word.js.map +1 -1
- package/useDirtyGetMentions-e0c0f521.js +75 -0
- package/useDirtyGetMentions-e0c0f521.js.map +1 -0
- package/useLongPress-685c7391.js +85 -0
- package/useLongPress-685c7391.js.map +1 -0
- package/useSendbirdStateContext.js +2 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +9 -15
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +8 -0
- package/utils/message/isVoiceMessage.js.map +1 -0
- package/{utils-e720e03a.js → utils-256f157f.js} +1 -1
- package/{utils-e720e03a.js.map → utils-256f157f.js.map} +1 -1
- package/utils-4979f950.js +31 -0
- package/utils-4979f950.js.map +1 -0
- package/{utils-8b11ff42.js → utils-f82ad058.js} +3 -7
- package/{utils-8b11ff42.js.map → utils-f82ad058.js.map} +1 -1
- package/utils-fbc09760.js +29 -0
- package/utils-fbc09760.js.map +1 -0
- package/uuid-720c99c0.js +13 -0
- package/{uuid-286ed926.js.map → uuid-720c99c0.js.map} +1 -1
- package/withSendbird.js +5 -6
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-f461d265.js.map +0 -1
- package/ChannelProvider-554e7116.js.map +0 -1
- package/CreateChannelProvider-250cd98e.js +0 -55
- package/CreateChannelProvider-250cd98e.js.map +0 -1
- package/LocalizationContext-4df0cc32.js +0 -22
- package/MediaQueryContext-74183e34.js +0 -90
- package/MediaQueryContext-74183e34.js.map +0 -1
- package/MemberList-51c7afaa.js +0 -435
- package/MemberList-51c7afaa.js.map +0 -1
- package/NotificationChannel/components/NotificationChannelUI.js +0 -119
- package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/NotificationChannel/components/NotificationList.js +0 -111
- package/NotificationChannel/components/NotificationList.js.map +0 -1
- package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
- package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/NotificationChannel/context.js +0 -12
- package/NotificationChannel.js +0 -58
- package/NotificationChannel.js.map +0 -1
- package/NotificationChannelProvider-0d8be1ad.js +0 -535
- package/NotificationChannelProvider-0d8be1ad.js.map +0 -1
- package/OpenChannelListProvider-8c753945.js +0 -434
- package/OpenChannelListProvider-8c753945.js.map +0 -1
- package/OpenChannelProvider-2fa01820.js +0 -2000
- package/OpenChannelProvider-2fa01820.js.map +0 -1
- package/RemoveMessageModal-9762fed1.js +0 -31
- package/RemoveMessageModal-9762fed1.js.map +0 -1
- package/ThreadProvider-6974fb3e.js +0 -1644
- package/ThreadProvider-6974fb3e.js.map +0 -1
- package/_rollupPluginBabelHelpers-498add61.js.map +0 -1
- package/actionTypes-ad2cbd73.js +0 -6
- package/actionTypes-ad2cbd73.js.map +0 -1
- package/cjs/ChannelListProvider-c2148b43.js.map +0 -1
- package/cjs/ChannelProvider-cf5dc7e3.js.map +0 -1
- package/cjs/CreateChannelProvider-c98de398.js +0 -62
- package/cjs/CreateChannelProvider-c98de398.js.map +0 -1
- package/cjs/MediaQueryContext-71862be1.js +0 -97
- package/cjs/MediaQueryContext-71862be1.js.map +0 -1
- package/cjs/MemberList-13566703.js +0 -441
- package/cjs/MemberList-13566703.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
- package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationList.js +0 -117
- package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/cjs/NotificationChannel/context.js +0 -21
- package/cjs/NotificationChannel.js +0 -64
- package/cjs/NotificationChannel.js.map +0 -1
- package/cjs/NotificationChannelProvider-8f3b7320.js +0 -543
- package/cjs/NotificationChannelProvider-8f3b7320.js.map +0 -1
- package/cjs/OpenChannelListProvider-64043b4f.js +0 -443
- package/cjs/OpenChannelListProvider-64043b4f.js.map +0 -1
- package/cjs/OpenChannelProvider-5b56e629.js +0 -2009
- package/cjs/OpenChannelProvider-5b56e629.js.map +0 -1
- package/cjs/RemoveMessageModal-c01eb93b.js.map +0 -1
- package/cjs/ThreadProvider-d3c0c877.js +0 -1653
- package/cjs/ThreadProvider-d3c0c877.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-a7254c9d.js.map +0 -1
- package/cjs/actionTypes-0e8bea91.js +0 -10
- package/cjs/actionTypes-0e8bea91.js.map +0 -1
- package/cjs/color-89f33656.js.map +0 -1
- package/cjs/compareIds-ca869c2e.js.map +0 -1
- package/cjs/const-55d167ca.js +0 -20
- package/cjs/const-55d167ca.js.map +0 -1
- package/cjs/const-db71e993.js.map +0 -1
- package/cjs/index-0988ab25.js.map +0 -1
- package/cjs/index-21b2339d.js +0 -701
- package/cjs/index-21b2339d.js.map +0 -1
- package/cjs/index-5c81f847.js +0 -194
- package/cjs/index-5c81f847.js.map +0 -1
- package/cjs/index-621e74bd.js.map +0 -1
- package/cjs/index-8de59744.js +0 -59
- package/cjs/index-8de59744.js.map +0 -1
- package/cjs/index-a52859ed.js +0 -360
- package/cjs/index-a52859ed.js.map +0 -1
- package/cjs/index-be9c6237.js.map +0 -1
- package/cjs/index-c4d4ef49.js.map +0 -1
- package/cjs/index-d6ef2a60.js.map +0 -1
- package/cjs/index-e240e852.js.map +0 -1
- package/cjs/stringSet-91b919f6.js.map +0 -1
- package/cjs/topics-ac9cf7ed.js +0 -22
- package/cjs/topics-ac9cf7ed.js.map +0 -1
- package/cjs/tslib.es6-43854eb1.js +0 -110
- package/cjs/tslib.es6-43854eb1.js.map +0 -1
- package/cjs/useLongPress-c7bf12b1.js +0 -118
- package/cjs/useLongPress-c7bf12b1.js.map +0 -1
- package/cjs/utils-4b529d96.js +0 -38
- package/cjs/utils-4b529d96.js.map +0 -1
- package/cjs/utils-65a380e8.js +0 -32
- package/cjs/utils-65a380e8.js.map +0 -1
- package/cjs/uuid-11d4efe8.js +0 -19
- package/compareIds-9430f9d8.js.map +0 -1
- package/const-83764204.js.map +0 -1
- package/const-9d11f204.js +0 -14
- package/const-9d11f204.js.map +0 -1
- package/context-9a69e846.js +0 -12
- package/index-134314e2.js.map +0 -1
- package/index-1572c90f.js +0 -57
- package/index-1572c90f.js.map +0 -1
- package/index-1b91b116.js.map +0 -1
- package/index-44470dab.js.map +0 -1
- package/index-5f08f486.js +0 -662
- package/index-5f08f486.js.map +0 -1
- package/index-d8e3ccee.js +0 -179
- package/index-d8e3ccee.js.map +0 -1
- package/index-defabece.js.map +0 -1
- package/index-e5b78039.js.map +0 -1
- package/index-ed65ee3b.js +0 -353
- package/index-ed65ee3b.js.map +0 -1
- package/index-fc4702b7.js.map +0 -1
- package/stringSet-d555d877.js.map +0 -1
- package/topics-351ea731.js +0 -13
- package/topics-351ea731.js.map +0 -1
- package/tslib.es6-bcead7e6.js +0 -104
- package/tslib.es6-bcead7e6.js.map +0 -1
- package/useLongPress-794838b8.js +0 -116
- package/useLongPress-794838b8.js.map +0 -1
- package/utils-00ac1a7d.js +0 -34
- package/utils-00ac1a7d.js.map +0 -1
- package/utils-01e76a0c.js +0 -30
- package/utils-01e76a0c.js.map +0 -1
- package/uuid-286ed926.js +0 -17
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import React__default, { useEffect, useCallback, useRef,
|
|
2
|
-
import { U as UserProfileProvider } from './UserProfileContext-
|
|
1
|
+
import React__default, { useEffect, useCallback, useRef, useState, useReducer, useMemo } from 'react';
|
|
2
|
+
import { U as UserProfileProvider } from './UserProfileContext-7e645551.js';
|
|
3
3
|
import useSendbirdStateContext from './useSendbirdStateContext.js';
|
|
4
|
-
import { f as format } from './index-
|
|
5
|
-
import {
|
|
6
|
-
import { a as getSendingMessageStatus, b as isReadMessage, c as filterMessageListParams } from './index-
|
|
7
|
-
import './
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE } from './const-9d11f204.js';
|
|
4
|
+
import { f as format } from './index-06f34585.js';
|
|
5
|
+
import { P as PUBSUB_TOPICS } from './topics-f9628f1f.js';
|
|
6
|
+
import { a as getSendingMessageStatus, b as isReadMessage, c as filterMessageListParams } from './index-fd51c7d1.js';
|
|
7
|
+
import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-ce69e916.js';
|
|
8
|
+
import { c as compareIds } from './compareIds-08858dd3.js';
|
|
9
|
+
import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE } from './const-a77c08c9.js';
|
|
11
10
|
import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
|
|
12
|
-
import { u as uuidv4 } from './uuid-
|
|
13
|
-
import { ReplyType } from '@sendbird/chat/message';
|
|
14
|
-
import {
|
|
15
|
-
import ReactionButton from './ui/ReactionButton.js';
|
|
16
|
-
import ImageRenderer from './ui/ImageRenderer.js';
|
|
17
|
-
import Icon, { IconTypes } from './ui/Icon.js';
|
|
11
|
+
import { u as uuidv4 } from './uuid-720c99c0.js';
|
|
12
|
+
import { ReplyType, MessageMetaArray } from '@sendbird/chat/message';
|
|
13
|
+
import { b as VOICE_MESSAGE_FILE_NAME, c as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, d as META_ARRAY_MESSAGE_TYPE_KEY, e as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from './consts-9393e7c8.js';
|
|
18
14
|
|
|
19
15
|
const RESET_MESSAGES = 'RESET_MESSAGES';
|
|
20
16
|
const FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
|
|
@@ -73,19 +69,37 @@ const {
|
|
|
73
69
|
FAILED,
|
|
74
70
|
PENDING
|
|
75
71
|
} = getSendingMessageStatus();
|
|
72
|
+
const scrollToRenderedMessage = (scrollRef, initialTimeStamp) => {
|
|
73
|
+
try {
|
|
74
|
+
var _container$querySelec;
|
|
75
|
+
const container = scrollRef.current;
|
|
76
|
+
// scroll into the message with initialTimeStamp
|
|
77
|
+
const element = (_container$querySelec = container.querySelectorAll(`[data-sb-created-at="${initialTimeStamp}"]`)) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec[0];
|
|
78
|
+
if (element) {
|
|
79
|
+
// Calculate the offset of the element from the top of the container
|
|
80
|
+
const containerHeight = container.offsetHeight;
|
|
81
|
+
const elementHeight = element.offsetHeight;
|
|
82
|
+
const elementOffset = (containerHeight - elementHeight) / 2;
|
|
83
|
+
// Set the scroll position of the container to bring the element to the middle
|
|
84
|
+
container.scrollTop = element.offsetTop - elementOffset;
|
|
85
|
+
}
|
|
86
|
+
} catch (_unused) {
|
|
87
|
+
// do nothing
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/* eslint-disable default-param-last */
|
|
76
92
|
const scrollIntoLast = function () {
|
|
77
93
|
let initialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
78
94
|
let scrollRef = arguments.length > 1 ? arguments[1] : undefined;
|
|
79
95
|
const MAX_TRIES = 10;
|
|
80
96
|
const currentTry = initialTry;
|
|
81
|
-
|
|
82
97
|
if (currentTry > MAX_TRIES) {
|
|
83
98
|
return;
|
|
84
99
|
}
|
|
85
|
-
|
|
86
100
|
try {
|
|
87
|
-
const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
|
|
88
|
-
|
|
101
|
+
const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
|
|
102
|
+
// eslint-disable-next-line no-multi-assign
|
|
89
103
|
scrollDOM.scrollTop = scrollDOM.scrollHeight;
|
|
90
104
|
} catch (error) {
|
|
91
105
|
setTimeout(() => {
|
|
@@ -97,7 +111,8 @@ const pubSubHandleRemover = subscriber => {
|
|
|
97
111
|
subscriber.forEach(s => {
|
|
98
112
|
try {
|
|
99
113
|
s.remove();
|
|
100
|
-
} catch (
|
|
114
|
+
} catch (_unused2) {
|
|
115
|
+
//
|
|
101
116
|
}
|
|
102
117
|
});
|
|
103
118
|
};
|
|
@@ -110,13 +125,12 @@ const pubSubHandler = _ref => {
|
|
|
110
125
|
} = _ref;
|
|
111
126
|
const subscriber = new Map();
|
|
112
127
|
if (!pubSub || !pubSub.subscribe) return subscriber;
|
|
113
|
-
subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, msg => {
|
|
128
|
+
subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, msg => {
|
|
114
129
|
const {
|
|
115
130
|
channel,
|
|
116
131
|
message
|
|
117
132
|
} = msg;
|
|
118
133
|
scrollIntoLast(0, scrollRef);
|
|
119
|
-
|
|
120
134
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
121
135
|
dispatcher({
|
|
122
136
|
type: SEND_MESSAGEGE_SUCESS,
|
|
@@ -124,12 +138,11 @@ const pubSubHandler = _ref => {
|
|
|
124
138
|
});
|
|
125
139
|
}
|
|
126
140
|
}));
|
|
127
|
-
subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, msg => {
|
|
141
|
+
subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, msg => {
|
|
128
142
|
const {
|
|
129
143
|
channel,
|
|
130
144
|
message
|
|
131
145
|
} = msg;
|
|
132
|
-
|
|
133
146
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
134
147
|
dispatcher({
|
|
135
148
|
type: SEND_MESSAGEGE_START,
|
|
@@ -137,13 +150,12 @@ const pubSubHandler = _ref => {
|
|
|
137
150
|
});
|
|
138
151
|
}
|
|
139
152
|
}));
|
|
140
|
-
subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, msg => {
|
|
153
|
+
subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, msg => {
|
|
141
154
|
const {
|
|
142
155
|
channel,
|
|
143
156
|
message
|
|
144
157
|
} = msg;
|
|
145
158
|
scrollIntoLast(0, scrollRef);
|
|
146
|
-
|
|
147
159
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
148
160
|
dispatcher({
|
|
149
161
|
type: SEND_MESSAGEGE_SUCESS,
|
|
@@ -151,13 +163,12 @@ const pubSubHandler = _ref => {
|
|
|
151
163
|
});
|
|
152
164
|
}
|
|
153
165
|
}));
|
|
154
|
-
subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, msg => {
|
|
166
|
+
subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, msg => {
|
|
155
167
|
const {
|
|
156
168
|
channel,
|
|
157
169
|
message,
|
|
158
170
|
fromSelector
|
|
159
171
|
} = msg;
|
|
160
|
-
|
|
161
172
|
if (fromSelector && channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
162
173
|
dispatcher({
|
|
163
174
|
type: ON_MESSAGE_UPDATED,
|
|
@@ -168,12 +179,11 @@ const pubSubHandler = _ref => {
|
|
|
168
179
|
});
|
|
169
180
|
}
|
|
170
181
|
}));
|
|
171
|
-
subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, msg => {
|
|
182
|
+
subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, msg => {
|
|
172
183
|
const {
|
|
173
184
|
channel,
|
|
174
185
|
messageId
|
|
175
186
|
} = msg;
|
|
176
|
-
|
|
177
187
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
178
188
|
dispatcher({
|
|
179
189
|
type: ON_MESSAGE_DELETED,
|
|
@@ -198,37 +208,16 @@ const isDisabledBecauseMuted = function () {
|
|
|
198
208
|
const myMutedState = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myMutedState;
|
|
199
209
|
return myMutedState === 'muted';
|
|
200
210
|
};
|
|
201
|
-
const getAllEmojisFromEmojiContainer = function () {
|
|
202
|
-
let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
203
|
-
const {
|
|
204
|
-
emojiCategories = []
|
|
205
|
-
} = emojiContainer;
|
|
206
|
-
const allEmojis = [];
|
|
207
|
-
|
|
208
|
-
for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
209
|
-
const {
|
|
210
|
-
emojis
|
|
211
|
-
} = emojiCategories[categoryIndex];
|
|
212
|
-
|
|
213
|
-
for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
214
|
-
allEmojis.push(emojis[emojiIndex]);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return allEmojis;
|
|
219
|
-
};
|
|
220
211
|
const getAllEmojisMapFromEmojiContainer = function () {
|
|
221
212
|
let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
222
213
|
const {
|
|
223
214
|
emojiCategories = []
|
|
224
215
|
} = emojiContainer;
|
|
225
216
|
const allEmojisMap = new Map();
|
|
226
|
-
|
|
227
217
|
for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
228
218
|
const {
|
|
229
219
|
emojis
|
|
230
220
|
} = emojiCategories[categoryIndex];
|
|
231
|
-
|
|
232
221
|
for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
233
222
|
const {
|
|
234
223
|
key,
|
|
@@ -237,13 +226,11 @@ const getAllEmojisMapFromEmojiContainer = function () {
|
|
|
237
226
|
allEmojisMap.set(key, url);
|
|
238
227
|
}
|
|
239
228
|
}
|
|
240
|
-
|
|
241
229
|
return allEmojisMap;
|
|
242
230
|
};
|
|
243
231
|
const getNicknamesMapFromMembers = function () {
|
|
244
232
|
let members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
245
233
|
const nicknamesMap = new Map();
|
|
246
|
-
|
|
247
234
|
for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
|
|
248
235
|
const {
|
|
249
236
|
userId,
|
|
@@ -251,24 +238,39 @@ const getNicknamesMapFromMembers = function () {
|
|
|
251
238
|
} = members[memberIndex];
|
|
252
239
|
nicknamesMap.set(userId, nickname);
|
|
253
240
|
}
|
|
254
|
-
|
|
255
241
|
return nicknamesMap;
|
|
256
242
|
};
|
|
243
|
+
const getUniqueListBy = (arr, key) => [...new Map(arr.map(item => [item[key], item])).values()];
|
|
244
|
+
const getUniqueListByMessageId = arr => getUniqueListBy(arr, 'messageId');
|
|
245
|
+
const sortByCreatedAt = messages => messages.sort((a, b) => a.createdAt - b.createdAt);
|
|
246
|
+
const mergeAndSortMessages = (oldMessages, newMessages) => {
|
|
247
|
+
const lastOldMessage = oldMessages[oldMessages.length - 1];
|
|
248
|
+
const firstNewMessage = newMessages[0];
|
|
249
|
+
// If the last message of oldMessages is older than the first message of newMessages,
|
|
250
|
+
// then we can safely append newMessages to oldMessages.
|
|
251
|
+
if ((lastOldMessage === null || lastOldMessage === void 0 ? void 0 : lastOldMessage.createdAt) < (firstNewMessage === null || firstNewMessage === void 0 ? void 0 : firstNewMessage.createdAt)) {
|
|
252
|
+
return [...oldMessages, ...newMessages];
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// todo: optimize this
|
|
256
|
+
// If the last message of oldMessages is newer than the first message of newMessages,
|
|
257
|
+
// then we need to merge the two arrays and sort them by createdAt.
|
|
258
|
+
const mergedMessages = [...oldMessages, ...newMessages];
|
|
259
|
+
const unique = getUniqueListByMessageId(mergedMessages);
|
|
260
|
+
return sortByCreatedAt(unique);
|
|
261
|
+
};
|
|
257
262
|
const getMessageCreatedAt = message => format(message.createdAt, 'p');
|
|
258
263
|
const isSameGroup = (message, comparingMessage, currentChannel) => {
|
|
259
264
|
var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
|
|
260
|
-
|
|
261
265
|
if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && message !== null && message !== void 0 && message.sender && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.sender && message !== null && message !== void 0 && message.createdAt && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.createdAt && message !== null && message !== void 0 && (_message$sender = message.sender) !== null && _message$sender !== void 0 && _message$sender.userId && comparingMessage !== null && comparingMessage !== void 0 && (_comparingMessage$sen = comparingMessage.sender) !== null && _comparingMessage$sen !== void 0 && _comparingMessage$sen.userId)) {
|
|
262
266
|
return false;
|
|
263
267
|
}
|
|
264
|
-
|
|
265
268
|
return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && (message === null || message === void 0 ? void 0 : (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.userId) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : (_comparingMessage$sen2 = comparingMessage.sender) === null || _comparingMessage$sen2 === void 0 ? void 0 : _comparingMessage$sen2.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage) && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage);
|
|
266
269
|
};
|
|
267
270
|
const compareMessagesForGrouping = (prevMessage, currMessage, nextMessage, currentChannel, replyType) => {
|
|
268
271
|
if (replyType === 'THREAD' && currMessage !== null && currMessage !== void 0 && currMessage.threadInfo) {
|
|
269
272
|
return [false, false];
|
|
270
273
|
}
|
|
271
|
-
|
|
272
274
|
const sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
|
|
273
275
|
const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
|
|
274
276
|
return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
|
|
@@ -277,32 +279,26 @@ const passUnsuccessfullMessages = (allMessages, newMessage) => {
|
|
|
277
279
|
const {
|
|
278
280
|
sendingStatus = UNDEFINED
|
|
279
281
|
} = newMessage;
|
|
280
|
-
|
|
281
282
|
if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING) {
|
|
282
283
|
const lastIndexOfSucceededMessage = allMessages.map(message => message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED)).lastIndexOf(SUCCEEDED$1);
|
|
283
|
-
|
|
284
284
|
if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
|
|
285
285
|
const messages = [...allMessages];
|
|
286
286
|
messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
|
|
287
287
|
return messages;
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
|
|
291
290
|
return [...allMessages, newMessage];
|
|
292
291
|
};
|
|
293
292
|
const pxToNumber = px => {
|
|
294
293
|
if (typeof px === 'number') {
|
|
295
294
|
return px;
|
|
296
295
|
}
|
|
297
|
-
|
|
298
296
|
if (typeof px === 'string') {
|
|
299
297
|
const parsed = Number.parseFloat(px);
|
|
300
|
-
|
|
301
298
|
if (!Number.isNaN(parsed)) {
|
|
302
299
|
return parsed;
|
|
303
300
|
}
|
|
304
301
|
}
|
|
305
|
-
|
|
306
302
|
return null;
|
|
307
303
|
};
|
|
308
304
|
const isAboutSame = (a, b, px) => Math.abs(a - b) <= px;
|
|
@@ -332,22 +328,18 @@ var messagesInitialState = {
|
|
|
332
328
|
const {
|
|
333
329
|
SUCCEEDED
|
|
334
330
|
} = getSendingMessageStatus();
|
|
335
|
-
|
|
336
331
|
const getOldestMessageTimeStamp = function () {
|
|
337
332
|
let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
338
333
|
const oldestMessage = messages[0];
|
|
339
334
|
return oldestMessage && oldestMessage.createdAt || null;
|
|
340
335
|
};
|
|
341
|
-
|
|
342
336
|
const getLatestMessageTimeStamp = function () {
|
|
343
337
|
let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
344
338
|
const latestMessage = messages[messages.length - 1];
|
|
345
339
|
return latestMessage && latestMessage.createdAt || null;
|
|
346
340
|
};
|
|
347
|
-
|
|
348
341
|
function reducer(state, action) {
|
|
349
342
|
var _state$currentGroupCh7, _action$payload, _action$payload$chann;
|
|
350
|
-
|
|
351
343
|
switch (action.type) {
|
|
352
344
|
case RESET_MESSAGES:
|
|
353
345
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -357,7 +349,6 @@ function reducer(state, action) {
|
|
|
357
349
|
hasMoreNext: false,
|
|
358
350
|
allMessages: []
|
|
359
351
|
});
|
|
360
|
-
|
|
361
352
|
case FETCH_INITIAL_MESSAGES_START:
|
|
362
353
|
{
|
|
363
354
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -365,20 +356,16 @@ function reducer(state, action) {
|
|
|
365
356
|
allMessages: [...state.allMessages.filter(m => m.sendingStatus !== SUCCEEDED)]
|
|
366
357
|
});
|
|
367
358
|
}
|
|
368
|
-
|
|
369
359
|
case FETCH_INITIAL_MESSAGES_SUCCESS:
|
|
370
360
|
{
|
|
371
361
|
var _state$currentGroupCh;
|
|
372
|
-
|
|
373
362
|
const {
|
|
374
363
|
currentGroupChannel,
|
|
375
364
|
messages
|
|
376
365
|
} = action.payload;
|
|
377
|
-
|
|
378
366
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh = state.currentGroupChannel) === null || _state$currentGroupCh === void 0 ? void 0 : _state$currentGroupCh.url))) {
|
|
379
367
|
return state;
|
|
380
368
|
}
|
|
381
|
-
|
|
382
369
|
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
383
370
|
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
384
371
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -391,23 +378,20 @@ function reducer(state, action) {
|
|
|
391
378
|
allMessages: [...messages]
|
|
392
379
|
});
|
|
393
380
|
}
|
|
394
|
-
|
|
395
381
|
case FETCH_PREV_MESSAGES_SUCCESS:
|
|
396
382
|
{
|
|
397
383
|
var _state$currentGroupCh2;
|
|
398
|
-
|
|
399
384
|
const {
|
|
400
385
|
currentGroupChannel,
|
|
401
386
|
messages
|
|
402
387
|
} = action.payload;
|
|
403
|
-
|
|
404
388
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh2 = state.currentGroupChannel) === null || _state$currentGroupCh2 === void 0 ? void 0 : _state$currentGroupCh2.url))) {
|
|
405
389
|
return state;
|
|
406
390
|
}
|
|
407
|
-
|
|
408
391
|
const hasMorePrev = messages && messages.length === PREV_RESULT_SIZE + 1;
|
|
409
|
-
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
392
|
+
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
410
393
|
|
|
394
|
+
// Remove duplicated messages
|
|
411
395
|
const duplicatedMessageIds = [];
|
|
412
396
|
const updatedOldMessages = state.allMessages.map(msg => {
|
|
413
397
|
const duplicatedMessage = messages.find(_ref => {
|
|
@@ -416,11 +400,9 @@ function reducer(state, action) {
|
|
|
416
400
|
} = _ref;
|
|
417
401
|
return compareIds(messageId, msg.messageId);
|
|
418
402
|
});
|
|
419
|
-
|
|
420
403
|
if (!duplicatedMessage) {
|
|
421
404
|
return msg;
|
|
422
405
|
}
|
|
423
|
-
|
|
424
406
|
duplicatedMessageIds.push(duplicatedMessage.messageId);
|
|
425
407
|
return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
|
|
426
408
|
});
|
|
@@ -431,61 +413,38 @@ function reducer(state, action) {
|
|
|
431
413
|
allMessages: [...filteredNewMessages, ...updatedOldMessages]
|
|
432
414
|
});
|
|
433
415
|
}
|
|
434
|
-
|
|
435
416
|
case FETCH_NEXT_MESSAGES_SUCCESS:
|
|
436
417
|
{
|
|
437
418
|
var _state$currentGroupCh3;
|
|
438
|
-
|
|
439
419
|
const {
|
|
440
420
|
currentGroupChannel,
|
|
441
421
|
messages
|
|
442
422
|
} = action.payload;
|
|
443
|
-
|
|
444
423
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh3 = state.currentGroupChannel) === null || _state$currentGroupCh3 === void 0 ? void 0 : _state$currentGroupCh3.url))) {
|
|
445
424
|
return state;
|
|
446
425
|
}
|
|
447
|
-
|
|
448
426
|
const hasMoreNext = messages && messages.length === NEXT_RESULT_SIZE + 1;
|
|
449
|
-
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
450
|
-
|
|
451
|
-
const duplicatedMessageIds = [];
|
|
452
|
-
const updatedOldMessages = state.allMessages.map(msg => {
|
|
453
|
-
const duplicatedMessage = messages.find(_ref2 => {
|
|
454
|
-
let {
|
|
455
|
-
messageId
|
|
456
|
-
} = _ref2;
|
|
457
|
-
return compareIds(messageId, msg.messageId);
|
|
458
|
-
});
|
|
459
|
-
|
|
460
|
-
if (!duplicatedMessage) {
|
|
461
|
-
return msg;
|
|
462
|
-
}
|
|
427
|
+
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
463
428
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
});
|
|
467
|
-
const filteredNewMessages = duplicatedMessageIds.length > 0 ? messages.filter(msg => !duplicatedMessageIds.find(messageId => compareIds(messageId, msg.messageId))) : messages;
|
|
429
|
+
// sort ~
|
|
430
|
+
const sortedMessages = mergeAndSortMessages(state.allMessages, messages);
|
|
468
431
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
469
432
|
hasMoreNext,
|
|
470
433
|
latestMessageTimeStamp,
|
|
471
|
-
allMessages:
|
|
434
|
+
allMessages: sortedMessages
|
|
472
435
|
});
|
|
473
436
|
}
|
|
474
|
-
|
|
475
437
|
case FETCH_INITIAL_MESSAGES_FAILURE:
|
|
476
438
|
case FETCH_PREV_MESSAGES_FAILURE:
|
|
477
439
|
case FETCH_NEXT_MESSAGES_FAILURE:
|
|
478
440
|
{
|
|
479
441
|
var _state$currentGroupCh4;
|
|
480
|
-
|
|
481
442
|
const {
|
|
482
443
|
currentGroupChannel
|
|
483
444
|
} = action.payload;
|
|
484
|
-
|
|
485
445
|
if ((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) !== (state === null || state === void 0 ? void 0 : (_state$currentGroupCh4 = state.currentGroupChannel) === null || _state$currentGroupCh4 === void 0 ? void 0 : _state$currentGroupCh4.url)) {
|
|
486
446
|
return state;
|
|
487
447
|
}
|
|
488
|
-
|
|
489
448
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
490
449
|
loading: false,
|
|
491
450
|
initialized: false,
|
|
@@ -496,12 +455,10 @@ function reducer(state, action) {
|
|
|
496
455
|
latestMessageTimeStamp: null
|
|
497
456
|
});
|
|
498
457
|
}
|
|
499
|
-
|
|
500
458
|
case SEND_MESSAGEGE_START:
|
|
501
459
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
502
460
|
allMessages: [...state.allMessages, _objectSpread2({}, action.payload)]
|
|
503
461
|
});
|
|
504
|
-
|
|
505
462
|
case SEND_MESSAGEGE_SUCESS:
|
|
506
463
|
{
|
|
507
464
|
const message = action.payload;
|
|
@@ -511,7 +468,6 @@ function reducer(state, action) {
|
|
|
511
468
|
allMessages: pendingIndex > -1 ? [...filteredMessages.slice(0, pendingIndex), message, ...filteredMessages.slice(pendingIndex)] : [...filteredMessages, message]
|
|
512
469
|
});
|
|
513
470
|
}
|
|
514
|
-
|
|
515
471
|
case SEND_MESSAGEGE_FAILURE:
|
|
516
472
|
{
|
|
517
473
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -520,7 +476,6 @@ function reducer(state, action) {
|
|
|
520
476
|
allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
|
|
521
477
|
});
|
|
522
478
|
}
|
|
523
|
-
|
|
524
479
|
case SET_CURRENT_CHANNEL:
|
|
525
480
|
{
|
|
526
481
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -528,7 +483,6 @@ function reducer(state, action) {
|
|
|
528
483
|
isInvalid: false
|
|
529
484
|
});
|
|
530
485
|
}
|
|
531
|
-
|
|
532
486
|
case SET_CHANNEL_INVALID:
|
|
533
487
|
{
|
|
534
488
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -536,7 +490,6 @@ function reducer(state, action) {
|
|
|
536
490
|
isInvalid: true
|
|
537
491
|
});
|
|
538
492
|
}
|
|
539
|
-
|
|
540
493
|
case ON_MESSAGE_RECEIVED:
|
|
541
494
|
{
|
|
542
495
|
const {
|
|
@@ -554,57 +507,47 @@ function reducer(state, action) {
|
|
|
554
507
|
unreadSince
|
|
555
508
|
} = state;
|
|
556
509
|
const currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
|
|
557
|
-
|
|
558
510
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
|
|
559
511
|
return state;
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
|
|
512
|
+
}
|
|
513
|
+
// Excluded overlapping messages
|
|
563
514
|
if (state.allMessages.some(msg => msg.messageId === message.messageId)) {
|
|
564
515
|
return state;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
|
|
516
|
+
}
|
|
517
|
+
// Filter by userFilledQuery
|
|
568
518
|
if (state.messageListParams && !filterMessageListParams(state.messageListParams, message)) {
|
|
569
519
|
return state;
|
|
570
520
|
}
|
|
571
|
-
|
|
572
521
|
if (message.isAdminMessage && message.isAdminMessage()) {
|
|
573
522
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
574
523
|
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
575
524
|
});
|
|
576
|
-
}
|
|
577
|
-
|
|
525
|
+
}
|
|
578
526
|
|
|
527
|
+
// Update members when sender profileUrl, nickname, friendName has been changed
|
|
579
528
|
const senderMember = members === null || members === void 0 ? void 0 : members.find(m => (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId));
|
|
580
|
-
|
|
581
529
|
if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
|
|
582
530
|
channel.members = members.map(member => {
|
|
583
531
|
if (member.userId === sender.userId) {
|
|
584
532
|
return sender;
|
|
585
533
|
}
|
|
586
|
-
|
|
587
534
|
return member;
|
|
588
535
|
});
|
|
589
536
|
}
|
|
590
|
-
|
|
591
537
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
592
538
|
currentGroupChannel: channel,
|
|
593
539
|
unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : format(new Date(), 'p MMM dd'),
|
|
594
540
|
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
595
541
|
});
|
|
596
542
|
}
|
|
597
|
-
|
|
598
543
|
case ON_MESSAGE_UPDATED:
|
|
599
544
|
{
|
|
600
545
|
var _state$currentGroupCh5;
|
|
601
|
-
|
|
602
546
|
const {
|
|
603
547
|
channel,
|
|
604
548
|
message
|
|
605
549
|
} = action.payload;
|
|
606
550
|
const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh5 = state.currentGroupChannel) === null || _state$currentGroupCh5 === void 0 ? void 0 : _state$currentGroupCh5.url) || '';
|
|
607
|
-
|
|
608
551
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
|
|
609
552
|
return state; // Ignore event when it is not for the current channel
|
|
610
553
|
}
|
|
@@ -615,13 +558,11 @@ function reducer(state, action) {
|
|
|
615
558
|
allMessages: state.allMessages.filter(m => !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId))
|
|
616
559
|
});
|
|
617
560
|
}
|
|
618
|
-
|
|
619
561
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
620
562
|
allMessages: state.allMessages.map(m => {
|
|
621
563
|
if (compareIds(m.messageId, message.messageId)) {
|
|
622
564
|
return message;
|
|
623
565
|
}
|
|
624
|
-
|
|
625
566
|
if (compareIds(m.parentMessageId, message.messageId)) {
|
|
626
567
|
m.parentMessage = message; // eslint-disable-line no-param-reassign
|
|
627
568
|
}
|
|
@@ -630,11 +571,9 @@ function reducer(state, action) {
|
|
|
630
571
|
})
|
|
631
572
|
});
|
|
632
573
|
}
|
|
633
|
-
|
|
634
574
|
case ON_MESSAGE_THREAD_INFO_UPDATED:
|
|
635
575
|
{
|
|
636
576
|
var _state$currentGroupCh6;
|
|
637
|
-
|
|
638
577
|
const {
|
|
639
578
|
channel,
|
|
640
579
|
event
|
|
@@ -645,7 +584,6 @@ function reducer(state, action) {
|
|
|
645
584
|
targetMessageId
|
|
646
585
|
} = event;
|
|
647
586
|
const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh6 = state.currentGroupChannel) === null || _state$currentGroupCh6 === void 0 ? void 0 : _state$currentGroupCh6.url) || '';
|
|
648
|
-
|
|
649
587
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl) || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
650
588
|
return state; // Ignore event when it is not for the current channel
|
|
651
589
|
}
|
|
@@ -661,38 +599,31 @@ function reducer(state, action) {
|
|
|
661
599
|
})
|
|
662
600
|
});
|
|
663
601
|
}
|
|
664
|
-
|
|
665
602
|
case RESEND_MESSAGEGE_START:
|
|
666
603
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
667
604
|
allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
|
|
668
605
|
});
|
|
669
|
-
|
|
670
606
|
case MARK_AS_READ:
|
|
671
607
|
if (((_state$currentGroupCh7 = state.currentGroupChannel) === null || _state$currentGroupCh7 === void 0 ? void 0 : _state$currentGroupCh7.url) !== ((_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : (_action$payload$chann = _action$payload.channel) === null || _action$payload$chann === void 0 ? void 0 : _action$payload$chann.url)) {
|
|
672
608
|
return state;
|
|
673
609
|
}
|
|
674
|
-
|
|
675
610
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
676
611
|
unreadSince: null
|
|
677
612
|
});
|
|
678
|
-
|
|
679
613
|
case ON_MESSAGE_DELETED:
|
|
680
614
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
681
615
|
allMessages: state.allMessages.filter(m => !compareIds(m.messageId, action.payload))
|
|
682
616
|
});
|
|
683
|
-
|
|
684
617
|
case ON_MESSAGE_DELETED_BY_REQ_ID:
|
|
685
618
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
686
619
|
allMessages: state.allMessages.filter(m => !compareIds(m.reqId, action.payload))
|
|
687
620
|
});
|
|
688
|
-
|
|
689
621
|
case SET_EMOJI_CONTAINER:
|
|
690
622
|
{
|
|
691
623
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
692
624
|
emojiContainer: action.payload
|
|
693
625
|
});
|
|
694
626
|
}
|
|
695
|
-
|
|
696
627
|
case ON_REACTION_UPDATED:
|
|
697
628
|
{
|
|
698
629
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -701,86 +632,102 @@ function reducer(state, action) {
|
|
|
701
632
|
if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
|
|
702
633
|
m.applyReactionEvent(action.payload);
|
|
703
634
|
}
|
|
704
|
-
|
|
705
635
|
return m;
|
|
706
636
|
}
|
|
707
|
-
|
|
708
637
|
return m;
|
|
709
638
|
})
|
|
710
639
|
});
|
|
711
640
|
}
|
|
712
|
-
|
|
713
641
|
case MESSAGE_LIST_PARAMS_CHANGED:
|
|
714
642
|
{
|
|
715
643
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
716
644
|
messageListParams: action.payload
|
|
717
645
|
});
|
|
718
646
|
}
|
|
719
|
-
|
|
720
647
|
default:
|
|
721
648
|
return state;
|
|
722
649
|
}
|
|
723
650
|
}
|
|
724
651
|
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
652
|
+
/**
|
|
653
|
+
* Handles ChannelEvents and send values to dispatcher using messagesDispatcher
|
|
654
|
+
* messagesDispatcher: Dispatcher
|
|
655
|
+
* sdk: sdkInstance
|
|
656
|
+
* logger: loggerInstance
|
|
657
|
+
* channelUrl: string
|
|
658
|
+
* sdkInit: bool
|
|
659
|
+
*/
|
|
660
|
+
|
|
661
|
+
const DELIVERY_RECIPT = 'delivery_receipt';
|
|
662
|
+
function useHandleChannelEvents(_ref, _ref2) {
|
|
663
|
+
var _store$stores$sdkStor, _store$stores$sdkStor2, _store$stores$sdkStor3;
|
|
664
|
+
let {
|
|
665
|
+
sdkInit,
|
|
666
|
+
currentUserId,
|
|
667
|
+
currentGroupChannel,
|
|
668
|
+
disableMarkAsRead
|
|
669
|
+
} = _ref;
|
|
670
|
+
let {
|
|
671
|
+
sdk,
|
|
672
|
+
logger,
|
|
673
|
+
scrollRef,
|
|
674
|
+
setQuoteMessage,
|
|
675
|
+
messagesDispatcher
|
|
676
|
+
} = _ref2;
|
|
677
|
+
const store = useSendbirdStateContext();
|
|
678
|
+
const {
|
|
679
|
+
markAsReadScheduler,
|
|
680
|
+
markAsDeliveredScheduler,
|
|
681
|
+
disableMarkAsDelivered
|
|
682
|
+
} = store.config;
|
|
683
|
+
const canSetMarkAsDelivered = (_store$stores$sdkStor = store.stores.sdkStore.sdk) === null || _store$stores$sdkStor === void 0 ? void 0 : (_store$stores$sdkStor2 = _store$stores$sdkStor.appInfo) === null || _store$stores$sdkStor2 === void 0 ? void 0 : (_store$stores$sdkStor3 = _store$stores$sdkStor2.premiumFeatureList) === null || _store$stores$sdkStor3 === void 0 ? void 0 : _store$stores$sdkStor3.find(feature => feature === DELIVERY_RECIPT);
|
|
684
|
+
useEffect(() => {
|
|
685
|
+
const channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
|
|
686
|
+
const channelHandlerId = uuidv4();
|
|
742
687
|
if (channelUrl && sdkInit) {
|
|
743
|
-
var
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)
|
|
747
|
-
var
|
|
748
|
-
|
|
688
|
+
var _sdk$groupChannel;
|
|
689
|
+
const channelHandler = {
|
|
690
|
+
onMessageReceived: (channel, message) => {
|
|
691
|
+
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
692
|
+
var _document$getElementB, _document$getElementB2;
|
|
693
|
+
let scrollToEnd = false;
|
|
749
694
|
try {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
695
|
+
const {
|
|
696
|
+
current
|
|
697
|
+
} = scrollRef;
|
|
698
|
+
scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
|
|
699
|
+
// 10 is a buffer
|
|
700
|
+
} catch (error) {
|
|
701
|
+
//
|
|
753
702
|
}
|
|
754
|
-
|
|
755
703
|
logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
|
|
756
704
|
messagesDispatcher({
|
|
757
705
|
type: ON_MESSAGE_RECEIVED,
|
|
758
706
|
payload: {
|
|
759
|
-
channel
|
|
760
|
-
message
|
|
707
|
+
channel,
|
|
708
|
+
message
|
|
761
709
|
}
|
|
762
710
|
});
|
|
763
|
-
|
|
764
|
-
|
|
711
|
+
if (scrollToEnd && ((_document$getElementB = document.getElementById('sendbird-dropdown-portal')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.childElementCount) === 0 && ((_document$getElementB2 = document.getElementById('sendbird-emoji-list-portal')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.childElementCount) === 0) {
|
|
712
|
+
// and !openContextMenu
|
|
765
713
|
try {
|
|
766
|
-
setTimeout(
|
|
767
|
-
var _a;
|
|
768
|
-
|
|
769
|
-
if (!disableMarkAsRead) {
|
|
770
|
-
(_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
|
|
771
|
-
}
|
|
772
|
-
|
|
714
|
+
setTimeout(() => {
|
|
773
715
|
scrollIntoLast(0, scrollRef);
|
|
774
716
|
});
|
|
717
|
+
if (!disableMarkAsRead) {
|
|
718
|
+
markAsReadScheduler.push(currentGroupChannel);
|
|
719
|
+
}
|
|
720
|
+
if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
|
|
721
|
+
markAsDeliveredScheduler.push(currentGroupChannel);
|
|
722
|
+
}
|
|
775
723
|
} catch (error) {
|
|
776
724
|
logger.warning('Channel | onMessageReceived | scroll to end failed');
|
|
777
725
|
}
|
|
778
726
|
}
|
|
779
727
|
}
|
|
780
728
|
},
|
|
781
|
-
onUnreadMemberStatusUpdated:
|
|
729
|
+
onUnreadMemberStatusUpdated: channel => {
|
|
782
730
|
logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
|
|
783
|
-
|
|
784
731
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
785
732
|
messagesDispatcher({
|
|
786
733
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -789,7 +736,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
789
736
|
}
|
|
790
737
|
},
|
|
791
738
|
// before(onDeliveryReceiptUpdated)
|
|
792
|
-
onUndeliveredMemberStatusUpdated:
|
|
739
|
+
onUndeliveredMemberStatusUpdated: channel => {
|
|
793
740
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
794
741
|
logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
|
|
795
742
|
messagesDispatcher({
|
|
@@ -798,33 +745,33 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
798
745
|
});
|
|
799
746
|
}
|
|
800
747
|
},
|
|
801
|
-
onMessageUpdated:
|
|
748
|
+
onMessageUpdated: (channel, message) => {
|
|
802
749
|
logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
|
|
803
750
|
messagesDispatcher({
|
|
804
751
|
type: ON_MESSAGE_UPDATED,
|
|
805
752
|
payload: {
|
|
806
|
-
channel
|
|
807
|
-
message
|
|
753
|
+
channel,
|
|
754
|
+
message
|
|
808
755
|
}
|
|
809
756
|
});
|
|
810
757
|
},
|
|
811
|
-
onThreadInfoUpdated:
|
|
758
|
+
onThreadInfoUpdated: (channel, threadInfoUpdateEvent) => {
|
|
812
759
|
logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', {
|
|
813
|
-
channel
|
|
814
|
-
threadInfoUpdateEvent
|
|
760
|
+
channel,
|
|
761
|
+
threadInfoUpdateEvent
|
|
815
762
|
});
|
|
816
763
|
messagesDispatcher({
|
|
817
764
|
type: ON_MESSAGE_THREAD_INFO_UPDATED,
|
|
818
765
|
payload: {
|
|
819
|
-
channel
|
|
766
|
+
channel,
|
|
820
767
|
event: threadInfoUpdateEvent
|
|
821
768
|
}
|
|
822
769
|
});
|
|
823
770
|
},
|
|
824
|
-
onMessageDeleted:
|
|
771
|
+
onMessageDeleted: (channel, messageId) => {
|
|
825
772
|
logger.info('Channel | useHandleChannelEvents: onMessageDeleted', {
|
|
826
|
-
channel
|
|
827
|
-
messageId
|
|
773
|
+
channel,
|
|
774
|
+
messageId
|
|
828
775
|
});
|
|
829
776
|
setQuoteMessage(null);
|
|
830
777
|
messagesDispatcher({
|
|
@@ -832,17 +779,17 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
832
779
|
payload: messageId
|
|
833
780
|
});
|
|
834
781
|
},
|
|
835
|
-
onReactionUpdated:
|
|
782
|
+
onReactionUpdated: (channel, reactionEvent) => {
|
|
836
783
|
logger.info('Channel | useHandleChannelEvents: onReactionUpdated', {
|
|
837
|
-
channel
|
|
838
|
-
reactionEvent
|
|
784
|
+
channel,
|
|
785
|
+
reactionEvent
|
|
839
786
|
});
|
|
840
787
|
messagesDispatcher({
|
|
841
788
|
type: ON_REACTION_UPDATED,
|
|
842
789
|
payload: reactionEvent
|
|
843
790
|
});
|
|
844
791
|
},
|
|
845
|
-
onChannelChanged:
|
|
792
|
+
onChannelChanged: channel => {
|
|
846
793
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
847
794
|
logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
|
|
848
795
|
messagesDispatcher({
|
|
@@ -851,7 +798,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
851
798
|
});
|
|
852
799
|
}
|
|
853
800
|
},
|
|
854
|
-
onChannelFrozen:
|
|
801
|
+
onChannelFrozen: channel => {
|
|
855
802
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
856
803
|
logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
|
|
857
804
|
messagesDispatcher({
|
|
@@ -860,7 +807,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
860
807
|
});
|
|
861
808
|
}
|
|
862
809
|
},
|
|
863
|
-
onChannelUnfrozen:
|
|
810
|
+
onChannelUnfrozen: channel => {
|
|
864
811
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
865
812
|
logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
|
|
866
813
|
messagesDispatcher({
|
|
@@ -869,11 +816,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
869
816
|
});
|
|
870
817
|
}
|
|
871
818
|
},
|
|
872
|
-
onUserMuted:
|
|
819
|
+
onUserMuted: (channel, user) => {
|
|
873
820
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
874
821
|
logger.info('Channel | useHandleChannelEvents: onUserMuted', {
|
|
875
|
-
channel
|
|
876
|
-
user
|
|
822
|
+
channel,
|
|
823
|
+
user
|
|
877
824
|
});
|
|
878
825
|
messagesDispatcher({
|
|
879
826
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -881,11 +828,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
881
828
|
});
|
|
882
829
|
}
|
|
883
830
|
},
|
|
884
|
-
onUserUnmuted:
|
|
831
|
+
onUserUnmuted: (channel, user) => {
|
|
885
832
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
886
833
|
logger.info('Channel | useHandleChannelEvents: onUserUnmuted', {
|
|
887
|
-
channel
|
|
888
|
-
user
|
|
834
|
+
channel,
|
|
835
|
+
user
|
|
889
836
|
});
|
|
890
837
|
messagesDispatcher({
|
|
891
838
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -893,13 +840,12 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
893
840
|
});
|
|
894
841
|
}
|
|
895
842
|
},
|
|
896
|
-
onUserBanned:
|
|
897
|
-
var
|
|
898
|
-
|
|
899
|
-
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
843
|
+
onUserBanned: (channel, user) => {
|
|
844
|
+
var _sdk$currentUser;
|
|
845
|
+
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === (sdk === null || sdk === void 0 ? void 0 : (_sdk$currentUser = sdk.currentUser) === null || _sdk$currentUser === void 0 ? void 0 : _sdk$currentUser.userId)) {
|
|
900
846
|
logger.info('Channel | useHandleChannelEvents: onUserBanned', {
|
|
901
|
-
channel
|
|
902
|
-
user
|
|
847
|
+
channel,
|
|
848
|
+
user
|
|
903
849
|
});
|
|
904
850
|
messagesDispatcher({
|
|
905
851
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -907,11 +853,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
907
853
|
});
|
|
908
854
|
}
|
|
909
855
|
},
|
|
910
|
-
onOperatorUpdated:
|
|
856
|
+
onOperatorUpdated: (channel, users) => {
|
|
911
857
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
912
858
|
logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', {
|
|
913
|
-
channel
|
|
914
|
-
users
|
|
859
|
+
channel,
|
|
860
|
+
users
|
|
915
861
|
});
|
|
916
862
|
messagesDispatcher({
|
|
917
863
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -919,13 +865,12 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
919
865
|
});
|
|
920
866
|
}
|
|
921
867
|
},
|
|
922
|
-
onUserLeft:
|
|
868
|
+
onUserLeft: (channel, user) => {
|
|
923
869
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
924
870
|
logger.info('Channel | useHandleChannelEvents: onUserLeft', {
|
|
925
|
-
channel
|
|
926
|
-
user
|
|
871
|
+
channel,
|
|
872
|
+
user
|
|
927
873
|
});
|
|
928
|
-
|
|
929
874
|
if ((user === null || user === void 0 ? void 0 : user.userId) === currentUserId) {
|
|
930
875
|
messagesDispatcher({
|
|
931
876
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -936,20 +881,18 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
936
881
|
}
|
|
937
882
|
};
|
|
938
883
|
logger.info('Channel | useHandleChannelEvents: Setup event handler', {
|
|
939
|
-
channelHandlerId
|
|
940
|
-
channelHandler
|
|
941
|
-
});
|
|
942
|
-
|
|
943
|
-
(
|
|
884
|
+
channelHandlerId,
|
|
885
|
+
channelHandler
|
|
886
|
+
});
|
|
887
|
+
// Add this group channel handler to the Sendbird chat instance
|
|
888
|
+
(_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
|
|
944
889
|
}
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
|
|
890
|
+
return () => {
|
|
891
|
+
var _sdk$groupChannel2;
|
|
892
|
+
if (sdk !== null && sdk !== void 0 && (_sdk$groupChannel2 = sdk.groupChannel) !== null && _sdk$groupChannel2 !== void 0 && _sdk$groupChannel2.removeGroupChannelHandler) {
|
|
950
893
|
logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
|
|
951
894
|
sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
|
|
952
|
-
} else if (sdk
|
|
895
|
+
} else if (sdk !== null && sdk !== void 0 && sdk.groupChannel) {
|
|
953
896
|
logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
|
|
954
897
|
}
|
|
955
898
|
};
|
|
@@ -965,7 +908,8 @@ function useSetChannel(_ref, _ref2) {
|
|
|
965
908
|
let {
|
|
966
909
|
messagesDispatcher,
|
|
967
910
|
sdk,
|
|
968
|
-
logger
|
|
911
|
+
logger,
|
|
912
|
+
markAsReadScheduler
|
|
969
913
|
} = _ref2;
|
|
970
914
|
useEffect(() => {
|
|
971
915
|
if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
|
|
@@ -977,13 +921,8 @@ function useSetChannel(_ref, _ref2) {
|
|
|
977
921
|
payload: groupChannel
|
|
978
922
|
});
|
|
979
923
|
logger.info('Channel: Mark as read', groupChannel);
|
|
980
|
-
|
|
981
924
|
if (!disableMarkAsRead) {
|
|
982
|
-
|
|
983
|
-
try {
|
|
984
|
-
groupChannel.markAsRead();
|
|
985
|
-
} catch (_unused) {//
|
|
986
|
-
}
|
|
925
|
+
markAsReadScheduler.push(groupChannel);
|
|
987
926
|
}
|
|
988
927
|
}).catch(e => {
|
|
989
928
|
logger.warning('Channel | useSetChannel fetch channel failed', {
|
|
@@ -1027,30 +966,25 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1027
966
|
type: RESET_MESSAGES,
|
|
1028
967
|
payload: null
|
|
1029
968
|
});
|
|
1030
|
-
|
|
1031
969
|
if (currentGroupChannel && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.getMessagesByTimestamp) {
|
|
1032
970
|
const messageListParams = {};
|
|
1033
971
|
messageListParams.prevResultSize = PREV_RESULT_SIZE;
|
|
1034
|
-
|
|
1035
972
|
if (initialTimeStamp) {
|
|
1036
973
|
messageListParams.nextResultSize = NEXT_RESULT_SIZE;
|
|
1037
974
|
}
|
|
1038
|
-
|
|
1039
975
|
messageListParams.isInclusive = true;
|
|
1040
976
|
messageListParams.includeReactions = true;
|
|
1041
|
-
|
|
977
|
+
messageListParams.includeMetaArray = true;
|
|
1042
978
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
|
|
1043
979
|
messageListParams.includeThreadInfo = true;
|
|
1044
980
|
messageListParams.includeParentMessageInfo = true;
|
|
1045
981
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1046
982
|
}
|
|
1047
|
-
|
|
1048
983
|
if (userFilledMessageListQuery) {
|
|
1049
984
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1050
985
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1051
986
|
});
|
|
1052
987
|
}
|
|
1053
|
-
|
|
1054
988
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') || userFilledMessageListQuery) {
|
|
1055
989
|
logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
|
|
1056
990
|
messagesDispatcher({
|
|
@@ -1058,7 +992,6 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1058
992
|
payload: messageListParams
|
|
1059
993
|
});
|
|
1060
994
|
}
|
|
1061
|
-
|
|
1062
995
|
logger.info('Channel: Fetching messages', {
|
|
1063
996
|
currentGroupChannel,
|
|
1064
997
|
userFilledMessageListQuery
|
|
@@ -1086,6 +1019,10 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1086
1019
|
}).finally(() => {
|
|
1087
1020
|
if (!initialTimeStamp) {
|
|
1088
1021
|
setTimeout(() => scrollIntoLast(0, scrollRef));
|
|
1022
|
+
} else {
|
|
1023
|
+
setTimeout(() => {
|
|
1024
|
+
scrollToRenderedMessage(scrollRef, initialTimeStamp);
|
|
1025
|
+
}, 500);
|
|
1089
1026
|
}
|
|
1090
1027
|
});
|
|
1091
1028
|
}
|
|
@@ -1100,82 +1037,75 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1100
1037
|
*/
|
|
1101
1038
|
}
|
|
1102
1039
|
|
|
1103
|
-
function useHandleReconnect(
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1040
|
+
function useHandleReconnect(_ref, _ref2) {
|
|
1041
|
+
let {
|
|
1042
|
+
isOnline,
|
|
1043
|
+
replyType,
|
|
1044
|
+
disableMarkAsRead
|
|
1045
|
+
} = _ref;
|
|
1046
|
+
let {
|
|
1047
|
+
logger,
|
|
1048
|
+
sdk,
|
|
1049
|
+
scrollRef,
|
|
1050
|
+
currentGroupChannel,
|
|
1051
|
+
messagesDispatcher,
|
|
1052
|
+
markAsReadScheduler,
|
|
1053
|
+
userFilledMessageListQuery
|
|
1054
|
+
} = _ref2;
|
|
1055
|
+
useEffect(() => {
|
|
1056
|
+
const wasOffline = !isOnline;
|
|
1057
|
+
return () => {
|
|
1058
|
+
// state changed from offline to online
|
|
1059
|
+
if (wasOffline && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.url) {
|
|
1060
|
+
var _sdk$appInfo, _sdk$groupChannel;
|
|
1120
1061
|
logger.info('Refreshing conversation state');
|
|
1121
|
-
|
|
1122
|
-
|
|
1062
|
+
const isReactionEnabled = (sdk === null || sdk === void 0 ? void 0 : (_sdk$appInfo = sdk.appInfo) === null || _sdk$appInfo === void 0 ? void 0 : _sdk$appInfo.useReaction) || false;
|
|
1063
|
+
const messageListParams = {
|
|
1123
1064
|
prevResultSize: PREV_RESULT_SIZE,
|
|
1124
1065
|
isInclusive: true,
|
|
1125
1066
|
includeReactions: isReactionEnabled,
|
|
1126
1067
|
nextResultSize: NEXT_RESULT_SIZE
|
|
1127
1068
|
};
|
|
1128
|
-
|
|
1129
1069
|
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1070
|
+
messageListParams.includeThreadInfo = true;
|
|
1071
|
+
messageListParams.includeParentMessageInfo = true;
|
|
1072
|
+
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1133
1073
|
}
|
|
1134
|
-
|
|
1135
1074
|
if (userFilledMessageListQuery) {
|
|
1136
|
-
Object.keys(userFilledMessageListQuery).forEach(
|
|
1137
|
-
|
|
1075
|
+
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1076
|
+
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1138
1077
|
});
|
|
1139
1078
|
}
|
|
1140
|
-
|
|
1141
1079
|
logger.info('Channel: Fetching messages', {
|
|
1142
|
-
currentGroupChannel
|
|
1143
|
-
userFilledMessageListQuery
|
|
1080
|
+
currentGroupChannel,
|
|
1081
|
+
userFilledMessageListQuery
|
|
1144
1082
|
});
|
|
1145
1083
|
messagesDispatcher({
|
|
1146
1084
|
type: FETCH_INITIAL_MESSAGES_START,
|
|
1147
1085
|
payload: null
|
|
1148
1086
|
});
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
var lastMessageTime = new Date().getTime();
|
|
1153
|
-
groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1).then(function (messages) {
|
|
1087
|
+
sdk === null || sdk === void 0 ? void 0 : (_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.getChannel(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url).then(groupChannel => {
|
|
1088
|
+
const lastMessageTime = new Date().getTime();
|
|
1089
|
+
groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(messages => {
|
|
1154
1090
|
messagesDispatcher({
|
|
1155
1091
|
type: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
1156
1092
|
payload: {
|
|
1157
|
-
currentGroupChannel
|
|
1158
|
-
messages
|
|
1093
|
+
currentGroupChannel,
|
|
1094
|
+
messages
|
|
1159
1095
|
}
|
|
1160
1096
|
});
|
|
1161
|
-
setTimeout(
|
|
1162
|
-
|
|
1163
|
-
});
|
|
1164
|
-
}).catch(function (error) {
|
|
1097
|
+
setTimeout(() => scrollIntoLast(0, scrollRef));
|
|
1098
|
+
}).catch(error => {
|
|
1165
1099
|
logger.error('Channel: Fetching messages failed', error);
|
|
1166
1100
|
messagesDispatcher({
|
|
1167
1101
|
type: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
1168
1102
|
payload: {
|
|
1169
|
-
currentGroupChannel
|
|
1103
|
+
currentGroupChannel
|
|
1170
1104
|
}
|
|
1171
1105
|
});
|
|
1172
1106
|
});
|
|
1173
|
-
|
|
1174
1107
|
if (!disableMarkAsRead) {
|
|
1175
|
-
|
|
1176
|
-
(_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
|
|
1177
|
-
} catch (_b) {//
|
|
1178
|
-
}
|
|
1108
|
+
markAsReadScheduler.push(currentGroupChannel);
|
|
1179
1109
|
}
|
|
1180
1110
|
});
|
|
1181
1111
|
}
|
|
@@ -1200,7 +1130,6 @@ function useScrollCallback(_ref, _ref2) {
|
|
|
1200
1130
|
if (!hasMorePrev) {
|
|
1201
1131
|
return;
|
|
1202
1132
|
}
|
|
1203
|
-
|
|
1204
1133
|
const {
|
|
1205
1134
|
appInfo = {}
|
|
1206
1135
|
} = sdk;
|
|
@@ -1210,19 +1139,17 @@ function useScrollCallback(_ref, _ref2) {
|
|
|
1210
1139
|
isInclusive: true,
|
|
1211
1140
|
includeReactions: isReactionEnabled
|
|
1212
1141
|
};
|
|
1213
|
-
|
|
1142
|
+
messageListParams.includeMetaArray = true;
|
|
1214
1143
|
if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
|
|
1215
1144
|
messageListParams.includeThreadInfo = true;
|
|
1216
1145
|
messageListParams.includeParentMessageInfo = true;
|
|
1217
1146
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1218
1147
|
}
|
|
1219
|
-
|
|
1220
1148
|
if (userFilledMessageListQuery) {
|
|
1221
1149
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1222
1150
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1223
1151
|
});
|
|
1224
1152
|
}
|
|
1225
|
-
|
|
1226
1153
|
logger.info('Channel: Fetching messages', {
|
|
1227
1154
|
currentGroupChannel,
|
|
1228
1155
|
userFilledMessageListQuery
|
|
@@ -1266,7 +1193,6 @@ function useScrollDownCallback(_ref, _ref2) {
|
|
|
1266
1193
|
if (!hasMoreNext) {
|
|
1267
1194
|
return;
|
|
1268
1195
|
}
|
|
1269
|
-
|
|
1270
1196
|
const {
|
|
1271
1197
|
appInfo = {}
|
|
1272
1198
|
} = sdk;
|
|
@@ -1276,19 +1202,17 @@ function useScrollDownCallback(_ref, _ref2) {
|
|
|
1276
1202
|
isInclusive: true,
|
|
1277
1203
|
includeReactions: isReactionEnabled
|
|
1278
1204
|
};
|
|
1279
|
-
|
|
1205
|
+
messageListParams.includeMetaArray = true;
|
|
1280
1206
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
|
|
1281
1207
|
messageListParams.includeThreadInfo = true;
|
|
1282
1208
|
messageListParams.includeParentMessageInfo = true;
|
|
1283
1209
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1284
1210
|
}
|
|
1285
|
-
|
|
1286
1211
|
if (userFilledMessageListQuery) {
|
|
1287
1212
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1288
1213
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1289
1214
|
});
|
|
1290
1215
|
}
|
|
1291
|
-
|
|
1292
1216
|
logger.info('Channel: Fetching later messages', {
|
|
1293
1217
|
currentGroupChannel,
|
|
1294
1218
|
userFilledMessageListQuery
|
|
@@ -1329,8 +1253,8 @@ function useDeleteMessageCallback(_ref, _ref2) {
|
|
|
1329
1253
|
requestState
|
|
1330
1254
|
} = message;
|
|
1331
1255
|
return new Promise((resolve, reject) => {
|
|
1332
|
-
logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
|
|
1333
|
-
|
|
1256
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
|
|
1257
|
+
// Message is only on local
|
|
1334
1258
|
if (requestState === 'failed' || requestState === 'pending') {
|
|
1335
1259
|
logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
|
|
1336
1260
|
messagesDispatcher({
|
|
@@ -1339,7 +1263,6 @@ function useDeleteMessageCallback(_ref, _ref2) {
|
|
|
1339
1263
|
});
|
|
1340
1264
|
resolve(message);
|
|
1341
1265
|
}
|
|
1342
|
-
|
|
1343
1266
|
logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
|
|
1344
1267
|
currentGroupChannel.deleteMessage(message).then(() => {
|
|
1345
1268
|
logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
|
|
@@ -1374,37 +1297,29 @@ function useUpdateMessageCallback(_ref, _ref2) {
|
|
|
1374
1297
|
mentionedUsers,
|
|
1375
1298
|
mentionTemplate
|
|
1376
1299
|
} = props;
|
|
1377
|
-
|
|
1378
1300
|
const createParamsDefault = () => {
|
|
1379
1301
|
const params = {};
|
|
1380
1302
|
params.message = message;
|
|
1381
|
-
|
|
1382
1303
|
if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1383
1304
|
params.mentionedUsers = mentionedUsers;
|
|
1384
1305
|
}
|
|
1385
|
-
|
|
1386
1306
|
if (isMentionEnabled && mentionTemplate) {
|
|
1387
1307
|
params.mentionedMessageTemplate = mentionTemplate;
|
|
1388
1308
|
} else {
|
|
1389
1309
|
params.mentionedMessageTemplate = message;
|
|
1390
1310
|
}
|
|
1391
|
-
|
|
1392
1311
|
return params;
|
|
1393
1312
|
};
|
|
1394
|
-
|
|
1395
1313
|
const createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
|
|
1396
|
-
|
|
1397
1314
|
if (createCustomPrams) {
|
|
1398
1315
|
logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
|
|
1399
1316
|
}
|
|
1400
|
-
|
|
1401
1317
|
const params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(message) : createParamsDefault();
|
|
1402
1318
|
logger.info('Channel: Updating message!', params);
|
|
1403
1319
|
currentGroupChannel.updateUserMessage(messageId, params).then((msg, err) => {
|
|
1404
1320
|
if (callback) {
|
|
1405
1321
|
callback(err, msg);
|
|
1406
1322
|
}
|
|
1407
|
-
|
|
1408
1323
|
logger.info('Channel: Updating message success!', msg);
|
|
1409
1324
|
messagesDispatcher({
|
|
1410
1325
|
type: ON_MESSAGE_UPDATED,
|
|
@@ -1413,7 +1328,7 @@ function useUpdateMessageCallback(_ref, _ref2) {
|
|
|
1413
1328
|
message: msg
|
|
1414
1329
|
}
|
|
1415
1330
|
});
|
|
1416
|
-
pubSub.publish(UPDATE_USER_MESSAGE, {
|
|
1331
|
+
pubSub.publish(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, {
|
|
1417
1332
|
message: msg,
|
|
1418
1333
|
channel: currentGroupChannel
|
|
1419
1334
|
});
|
|
@@ -1435,18 +1350,18 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1435
1350
|
messageType,
|
|
1436
1351
|
file
|
|
1437
1352
|
} = failedMessage;
|
|
1438
|
-
|
|
1439
1353
|
if (failedMessage !== null && failedMessage !== void 0 && failedMessage.isResendable) {
|
|
1440
1354
|
// Move the logic setting sendingStatus to pending into the reducer
|
|
1441
1355
|
// eslint-disable-next-line no-param-reassign
|
|
1442
|
-
failedMessage.requestState = 'pending';
|
|
1443
|
-
|
|
1356
|
+
failedMessage.requestState = 'pending';
|
|
1357
|
+
// eslint-disable-next-line no-param-reassign
|
|
1444
1358
|
failedMessage.sendingStatus = 'pending';
|
|
1445
1359
|
messagesDispatcher({
|
|
1446
1360
|
type: RESEND_MESSAGEGE_START,
|
|
1447
1361
|
payload: failedMessage
|
|
1448
|
-
});
|
|
1362
|
+
});
|
|
1449
1363
|
|
|
1364
|
+
// userMessage
|
|
1450
1365
|
if (messageType === 'user') {
|
|
1451
1366
|
currentGroupChannel.resendUserMessage(failedMessage).then(message => {
|
|
1452
1367
|
logger.info('Channel: Resending message success!', message);
|
|
@@ -1455,19 +1370,20 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1455
1370
|
payload: message
|
|
1456
1371
|
});
|
|
1457
1372
|
}).catch(e => {
|
|
1458
|
-
logger.warning('Channel: Resending message failed!', e);
|
|
1459
|
-
|
|
1460
|
-
failedMessage.requestState = 'failed';
|
|
1461
|
-
|
|
1373
|
+
logger.warning('Channel: Resending message failed!', e);
|
|
1374
|
+
// eslint-disable-next-line no-param-reassign
|
|
1375
|
+
failedMessage.requestState = 'failed';
|
|
1376
|
+
// eslint-disable-next-line no-param-reassign
|
|
1462
1377
|
failedMessage.sendingStatus = 'failed';
|
|
1463
1378
|
messagesDispatcher({
|
|
1464
1379
|
type: SEND_MESSAGEGE_FAILURE,
|
|
1465
1380
|
payload: failedMessage
|
|
1466
1381
|
});
|
|
1467
|
-
});
|
|
1468
|
-
|
|
1469
|
-
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1382
|
+
});
|
|
1470
1383
|
|
|
1384
|
+
// eslint-disable-next-line no-param-reassign
|
|
1385
|
+
failedMessage.requestState = 'pending';
|
|
1386
|
+
// eslint-disable-next-line no-param-reassign
|
|
1471
1387
|
failedMessage.sendingStatus = 'pending';
|
|
1472
1388
|
messagesDispatcher({
|
|
1473
1389
|
type: RESEND_MESSAGEGE_START,
|
|
@@ -1475,7 +1391,6 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1475
1391
|
});
|
|
1476
1392
|
return;
|
|
1477
1393
|
}
|
|
1478
|
-
|
|
1479
1394
|
if (messageType === 'file') {
|
|
1480
1395
|
currentGroupChannel.resendFileMessage(failedMessage, file).then(message => {
|
|
1481
1396
|
logger.info('Channel: Resending file message success!', message);
|
|
@@ -1484,19 +1399,20 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1484
1399
|
payload: message
|
|
1485
1400
|
});
|
|
1486
1401
|
}).catch(e => {
|
|
1487
|
-
logger.warning('Channel: Resending file message failed!', e);
|
|
1488
|
-
|
|
1489
|
-
failedMessage.requestState = 'failed';
|
|
1490
|
-
|
|
1402
|
+
logger.warning('Channel: Resending file message failed!', e);
|
|
1403
|
+
// eslint-disable-next-line no-param-reassign
|
|
1404
|
+
failedMessage.requestState = 'failed';
|
|
1405
|
+
// eslint-disable-next-line no-param-reassign
|
|
1491
1406
|
failedMessage.sendingStatus = 'failed';
|
|
1492
1407
|
messagesDispatcher({
|
|
1493
1408
|
type: SEND_MESSAGEGE_FAILURE,
|
|
1494
1409
|
payload: failedMessage
|
|
1495
1410
|
});
|
|
1496
|
-
});
|
|
1497
|
-
|
|
1498
|
-
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1411
|
+
});
|
|
1499
1412
|
|
|
1413
|
+
// eslint-disable-next-line no-param-reassign
|
|
1414
|
+
failedMessage.requestState = 'pending';
|
|
1415
|
+
// eslint-disable-next-line no-param-reassign
|
|
1500
1416
|
failedMessage.sendingStatus = 'pending';
|
|
1501
1417
|
messagesDispatcher({
|
|
1502
1418
|
type: RESEND_MESSAGEGE_START,
|
|
@@ -1533,39 +1449,32 @@ function useSendMessageCallback(_ref, _ref2) {
|
|
|
1533
1449
|
// mentionedUserIds,
|
|
1534
1450
|
mentionedUsers
|
|
1535
1451
|
} = props;
|
|
1536
|
-
|
|
1537
1452
|
const createParamsDefault = () => {
|
|
1538
1453
|
const params = {};
|
|
1539
|
-
params.message =
|
|
1540
|
-
|
|
1454
|
+
params.message = message;
|
|
1455
|
+
// if (isMentionEnabled && mentionedUserIds?.length > 0) {
|
|
1541
1456
|
if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1542
1457
|
// params.mentionedUserIds = mentionedUserIds;
|
|
1543
1458
|
params.mentionedUsers = mentionedUsers;
|
|
1544
|
-
}
|
|
1545
|
-
|
|
1546
|
-
|
|
1459
|
+
}
|
|
1460
|
+
// if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
|
|
1547
1461
|
if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1548
|
-
params.mentionedMessageTemplate =
|
|
1462
|
+
params.mentionedMessageTemplate = mentionTemplate;
|
|
1549
1463
|
}
|
|
1550
|
-
|
|
1551
1464
|
if (quoteMessage) {
|
|
1552
1465
|
params.isReplyToChannel = true;
|
|
1553
1466
|
params.parentMessageId = quoteMessage.messageId;
|
|
1554
1467
|
}
|
|
1555
|
-
|
|
1556
1468
|
return params;
|
|
1557
1469
|
};
|
|
1558
|
-
|
|
1559
1470
|
const createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
|
|
1560
|
-
|
|
1561
1471
|
if (createCustomPrams) {
|
|
1562
1472
|
logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
|
|
1563
1473
|
}
|
|
1564
|
-
|
|
1565
1474
|
const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
|
|
1566
1475
|
logger.info('Channel: Sending message has started', params);
|
|
1567
1476
|
currentGroupChannel.sendUserMessage(params).onPending(pendingMsg => {
|
|
1568
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1477
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1569
1478
|
/* pubSub is used instead of messagesDispatcher
|
|
1570
1479
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1571
1480
|
message: pendingMsg,
|
|
@@ -1613,44 +1522,39 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1613
1522
|
} = imageCompression;
|
|
1614
1523
|
const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
|
|
1615
1524
|
const compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
|
|
1616
|
-
const compressibleRatio = compressionRate > 0 && compressionRate < 1;
|
|
1617
|
-
|
|
1525
|
+
const compressibleRatio = compressionRate > 0 && compressionRate < 1;
|
|
1526
|
+
// pxToNumber returns null if values are invalid
|
|
1618
1527
|
const compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
|
|
1619
1528
|
const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
|
|
1620
|
-
|
|
1621
1529
|
const createParamsDefault = file_ => {
|
|
1622
1530
|
const params = {};
|
|
1623
1531
|
params.file = file_;
|
|
1624
|
-
|
|
1625
1532
|
if (quoteMessage) {
|
|
1626
1533
|
params.isReplyToChannel = true;
|
|
1627
1534
|
params.parentMessageId = quoteMessage.messageId;
|
|
1628
1535
|
}
|
|
1629
|
-
|
|
1630
1536
|
return params;
|
|
1631
1537
|
};
|
|
1632
|
-
|
|
1633
1538
|
if (canCompressImage) {
|
|
1634
1539
|
// Using image compression
|
|
1635
1540
|
try {
|
|
1636
1541
|
const image = document.createElement('img');
|
|
1637
1542
|
image.src = URL.createObjectURL(file);
|
|
1638
|
-
|
|
1639
1543
|
image.onload = () => {
|
|
1640
1544
|
URL.revokeObjectURL(image.src);
|
|
1641
1545
|
const canvas = document.createElement('canvas');
|
|
1642
1546
|
const imageWdith = image.naturalWidth || image.width;
|
|
1643
1547
|
const imageHeight = image.naturalHeight || image.height;
|
|
1644
1548
|
let targetWidth = pxToNumber(resizingWidth) || imageWdith;
|
|
1645
|
-
let targetHeight = pxToNumber(resizingHeight) || imageHeight;
|
|
1549
|
+
let targetHeight = pxToNumber(resizingHeight) || imageHeight;
|
|
1550
|
+
|
|
1551
|
+
// In canvas.toBlob(callback, mimeType, qualityArgument)
|
|
1646
1552
|
// qualityArgument doesnt work
|
|
1647
1553
|
// so in case compressibleDiamensions are not present, we use ratio
|
|
1648
|
-
|
|
1649
1554
|
if (file.type === 'image/png' && !compressibleDiamensions) {
|
|
1650
1555
|
targetWidth *= compressionRate;
|
|
1651
1556
|
targetHeight *= compressionRate;
|
|
1652
1557
|
}
|
|
1653
|
-
|
|
1654
1558
|
canvas.width = targetWidth;
|
|
1655
1559
|
canvas.height = targetHeight;
|
|
1656
1560
|
const context = canvas.getContext('2d');
|
|
@@ -1659,15 +1563,13 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1659
1563
|
const compressedFile = new File([newImageBlob], file.name, {
|
|
1660
1564
|
type: file.type
|
|
1661
1565
|
});
|
|
1662
|
-
|
|
1663
1566
|
if (createCustomParams) {
|
|
1664
1567
|
logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1665
1568
|
}
|
|
1666
|
-
|
|
1667
1569
|
const params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
|
|
1668
1570
|
logger.info('Channel: Uploading file message start!', params);
|
|
1669
1571
|
currentGroupChannel.sendFileMessage(params).onPending(pendingMessage => {
|
|
1670
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1572
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1671
1573
|
/* pubSub is used instead of messagesDispatcher
|
|
1672
1574
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1673
1575
|
message: _objectSpread2(_objectSpread2({}, pendingMessage), {}, {
|
|
@@ -1682,10 +1584,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1682
1584
|
logger.error('Channel: Sending file message failed!', {
|
|
1683
1585
|
failedMessage,
|
|
1684
1586
|
err
|
|
1685
|
-
});
|
|
1686
|
-
|
|
1687
|
-
failedMessage.localUrl = URL.createObjectURL(compressedFile);
|
|
1688
|
-
|
|
1587
|
+
});
|
|
1588
|
+
// eslint-disable-next-line no-param-reassign
|
|
1589
|
+
failedMessage.localUrl = URL.createObjectURL(compressedFile);
|
|
1590
|
+
// eslint-disable-next-line no-param-reassign
|
|
1689
1591
|
failedMessage.file = compressedFile;
|
|
1690
1592
|
messagesDispatcher({
|
|
1691
1593
|
type: SEND_MESSAGEGE_FAILURE,
|
|
@@ -1708,11 +1610,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1708
1610
|
if (createCustomParams) {
|
|
1709
1611
|
logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1710
1612
|
}
|
|
1711
|
-
|
|
1712
1613
|
const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
|
|
1713
1614
|
logger.info('Channel: Uploading file message start!', params);
|
|
1714
1615
|
currentGroupChannel.sendFileMessage(params).onPending(pendingMsg => {
|
|
1715
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1616
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1716
1617
|
/* pubSub is used instead of messagesDispatcher
|
|
1717
1618
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1718
1619
|
message: _objectSpread2(_objectSpread2({}, pendingMsg), {}, {
|
|
@@ -1727,10 +1628,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1727
1628
|
logger.error('Channel: Sending file message failed!', {
|
|
1728
1629
|
message,
|
|
1729
1630
|
error
|
|
1730
|
-
});
|
|
1731
|
-
|
|
1732
|
-
message.localUrl = URL.createObjectURL(file);
|
|
1733
|
-
|
|
1631
|
+
});
|
|
1632
|
+
// eslint-disable-next-line no-param-reassign
|
|
1633
|
+
message.localUrl = URL.createObjectURL(file);
|
|
1634
|
+
// eslint-disable-next-line no-param-reassign
|
|
1734
1635
|
message.file = file;
|
|
1735
1636
|
messagesDispatcher({
|
|
1736
1637
|
type: SEND_MESSAGEGE_FAILURE,
|
|
@@ -1748,64 +1649,6 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1748
1649
|
return [sendMessage];
|
|
1749
1650
|
}
|
|
1750
1651
|
|
|
1751
|
-
function useMemoizedEmojiListItems(_ref, _ref2) {
|
|
1752
|
-
let {
|
|
1753
|
-
emojiContainer,
|
|
1754
|
-
toggleReaction
|
|
1755
|
-
} = _ref;
|
|
1756
|
-
let {
|
|
1757
|
-
isReactionEnabled,
|
|
1758
|
-
logger,
|
|
1759
|
-
userId,
|
|
1760
|
-
emojiAllList
|
|
1761
|
-
} = _ref2;
|
|
1762
|
-
|
|
1763
|
-
/* eslint-disable react/prop-types */
|
|
1764
|
-
return useMemo(() => _ref3 => {
|
|
1765
|
-
let {
|
|
1766
|
-
parentRef,
|
|
1767
|
-
parentContainRef,
|
|
1768
|
-
message,
|
|
1769
|
-
closeDropdown,
|
|
1770
|
-
spaceFromTrigger = {}
|
|
1771
|
-
} = _ref3;
|
|
1772
|
-
|
|
1773
|
-
if (!isReactionEnabled || !(parentRef || parentContainRef || message || closeDropdown)) {
|
|
1774
|
-
logger.warning('Channel: Invalid Params in memoizedEmojiListItems');
|
|
1775
|
-
return null;
|
|
1776
|
-
}
|
|
1777
|
-
|
|
1778
|
-
return /*#__PURE__*/React__default.createElement(EmojiListItems, {
|
|
1779
|
-
parentRef: parentRef,
|
|
1780
|
-
parentContainRef: parentContainRef,
|
|
1781
|
-
closeDropdown: closeDropdown,
|
|
1782
|
-
spaceFromTrigger: spaceFromTrigger
|
|
1783
|
-
}, emojiAllList.map(emoji => {
|
|
1784
|
-
const reactedReaction = message.reactions.filter(reaction => reaction.key === emoji.key)[0];
|
|
1785
|
-
const isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false;
|
|
1786
|
-
return /*#__PURE__*/React__default.createElement(ReactionButton, {
|
|
1787
|
-
key: emoji.key,
|
|
1788
|
-
width: "36px",
|
|
1789
|
-
height: "36px",
|
|
1790
|
-
selected: isReacted,
|
|
1791
|
-
onClick: () => {
|
|
1792
|
-
closeDropdown();
|
|
1793
|
-
toggleReaction(message, emoji.key, isReacted);
|
|
1794
|
-
}
|
|
1795
|
-
}, /*#__PURE__*/React__default.createElement(ImageRenderer, {
|
|
1796
|
-
url: emoji.url,
|
|
1797
|
-
width: "28px",
|
|
1798
|
-
height: "28px",
|
|
1799
|
-
defaultComponent: /*#__PURE__*/React__default.createElement(Icon, {
|
|
1800
|
-
width: "28px",
|
|
1801
|
-
height: "28px",
|
|
1802
|
-
type: IconTypes.QUESTION
|
|
1803
|
-
})
|
|
1804
|
-
}));
|
|
1805
|
-
}));
|
|
1806
|
-
}, [emojiContainer, toggleReaction]);
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
1652
|
function useToggleReactionCallback(_ref, _ref2) {
|
|
1810
1653
|
let {
|
|
1811
1654
|
currentGroupChannel
|
|
@@ -1822,7 +1665,6 @@ function useToggleReactionCallback(_ref, _ref2) {
|
|
|
1822
1665
|
});
|
|
1823
1666
|
return;
|
|
1824
1667
|
}
|
|
1825
|
-
|
|
1826
1668
|
currentGroupChannel.addReaction(message, key).then(res => {
|
|
1827
1669
|
logger.info('Add reaction success', res);
|
|
1828
1670
|
}).catch(err => {
|
|
@@ -1831,20 +1673,24 @@ function useToggleReactionCallback(_ref, _ref2) {
|
|
|
1831
1673
|
}, [currentGroupChannel]);
|
|
1832
1674
|
}
|
|
1833
1675
|
|
|
1834
|
-
function useScrollToMessage(
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1676
|
+
function useScrollToMessage(_ref, _ref2) {
|
|
1677
|
+
let {
|
|
1678
|
+
setInitialTimeStamp,
|
|
1679
|
+
setAnimatedMessageId,
|
|
1680
|
+
allMessages,
|
|
1681
|
+
scrollRef
|
|
1682
|
+
} = _ref;
|
|
1683
|
+
let {
|
|
1684
|
+
logger
|
|
1685
|
+
} = _ref2;
|
|
1686
|
+
return useCallback((createdAt, messageId) => {
|
|
1687
|
+
const isPresent = allMessages.find(m => m.messageId === messageId);
|
|
1843
1688
|
setAnimatedMessageId(null);
|
|
1844
|
-
setTimeout(
|
|
1689
|
+
setTimeout(() => {
|
|
1845
1690
|
if (isPresent) {
|
|
1846
1691
|
logger.info('Channel: scroll to message - message is present');
|
|
1847
1692
|
setAnimatedMessageId(messageId);
|
|
1693
|
+
scrollToRenderedMessage(scrollRef, createdAt);
|
|
1848
1694
|
} else {
|
|
1849
1695
|
logger.info('Channel: scroll to message - fetching older messages');
|
|
1850
1696
|
setInitialTimeStamp(null);
|
|
@@ -1855,339 +1701,390 @@ function useScrollToMessage(_a, _b) {
|
|
|
1855
1701
|
}, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
|
|
1856
1702
|
}
|
|
1857
1703
|
|
|
1858
|
-
|
|
1704
|
+
const useSendVoiceMessageCallback = (_ref, _ref2) => {
|
|
1705
|
+
let {
|
|
1706
|
+
currentGroupChannel,
|
|
1707
|
+
onBeforeSendVoiceMessage
|
|
1708
|
+
} = _ref;
|
|
1709
|
+
let {
|
|
1710
|
+
logger,
|
|
1711
|
+
pubSub,
|
|
1712
|
+
scrollRef,
|
|
1713
|
+
messagesDispatcher
|
|
1714
|
+
} = _ref2;
|
|
1715
|
+
const sendMessage = useCallback((file, duration, quoteMessage) => {
|
|
1716
|
+
const messageParams = onBeforeSendVoiceMessage && typeof onBeforeSendVoiceMessage === 'function' ? onBeforeSendVoiceMessage(file, quoteMessage) : {
|
|
1717
|
+
file,
|
|
1718
|
+
fileName: VOICE_MESSAGE_FILE_NAME,
|
|
1719
|
+
mimeType: VOICE_MESSAGE_MIME_TYPE,
|
|
1720
|
+
metaArrays: [new MessageMetaArray({
|
|
1721
|
+
key: META_ARRAY_VOICE_DURATION_KEY,
|
|
1722
|
+
value: [`${duration}`]
|
|
1723
|
+
}), new MessageMetaArray({
|
|
1724
|
+
key: META_ARRAY_MESSAGE_TYPE_KEY,
|
|
1725
|
+
value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE]
|
|
1726
|
+
})]
|
|
1727
|
+
};
|
|
1728
|
+
if (quoteMessage) {
|
|
1729
|
+
messageParams.isReplyToChannel = true;
|
|
1730
|
+
messageParams.parentMessageId = quoteMessage.messageId;
|
|
1731
|
+
}
|
|
1732
|
+
logger.info('Channel: Start sending voice message', messageParams);
|
|
1733
|
+
currentGroupChannel.sendFileMessage(messageParams).onPending(pendingMessage => {
|
|
1734
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1735
|
+
/* pubSub is used instead of messagesDispatcher
|
|
1736
|
+
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1737
|
+
message: pendingMessage,
|
|
1738
|
+
channel: currentGroupChannel
|
|
1739
|
+
});
|
|
1740
|
+
setTimeout(() => scrollIntoLast(0, scrollRef), 1000);
|
|
1741
|
+
}).onFailed((err, failedMessage) => {
|
|
1742
|
+
logger.error('Channel: Sending voice message failed!', {
|
|
1743
|
+
failedMessage,
|
|
1744
|
+
err
|
|
1745
|
+
});
|
|
1746
|
+
messagesDispatcher({
|
|
1747
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1748
|
+
payload: failedMessage
|
|
1749
|
+
});
|
|
1750
|
+
}).onSucceeded(succeededMessage => {
|
|
1751
|
+
logger.info('Channel: Sending voice message success!', succeededMessage);
|
|
1752
|
+
messagesDispatcher({
|
|
1753
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1754
|
+
payload: succeededMessage
|
|
1755
|
+
});
|
|
1756
|
+
});
|
|
1757
|
+
}, [currentGroupChannel, onBeforeSendVoiceMessage]);
|
|
1758
|
+
return [sendMessage];
|
|
1759
|
+
};
|
|
1859
1760
|
|
|
1860
|
-
|
|
1761
|
+
let ThreadReplySelectType = /*#__PURE__*/function (ThreadReplySelectType) {
|
|
1861
1762
|
ThreadReplySelectType["PARENT"] = "PARENT";
|
|
1862
1763
|
ThreadReplySelectType["THREAD"] = "THREAD";
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
var
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1764
|
+
return ThreadReplySelectType;
|
|
1765
|
+
}({});
|
|
1766
|
+
const ChannelContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
1767
|
+
const ChannelProvider = props => {
|
|
1768
|
+
var _globalStore$stores, _globalStore$stores$s, _globalStore$stores2, _globalStore$stores2$;
|
|
1769
|
+
const {
|
|
1770
|
+
channelUrl,
|
|
1771
|
+
children,
|
|
1772
|
+
isReactionEnabled,
|
|
1773
|
+
isMessageGroupingEnabled = true,
|
|
1774
|
+
showSearchIcon,
|
|
1775
|
+
animatedMessage,
|
|
1776
|
+
highlightedMessage,
|
|
1777
|
+
startingPoint,
|
|
1778
|
+
onBeforeSendUserMessage,
|
|
1779
|
+
onBeforeSendFileMessage,
|
|
1780
|
+
onBeforeUpdateUserMessage,
|
|
1781
|
+
onBeforeSendVoiceMessage,
|
|
1782
|
+
onChatHeaderActionClick,
|
|
1783
|
+
onSearchClick,
|
|
1784
|
+
onBackClick,
|
|
1785
|
+
replyType,
|
|
1786
|
+
threadReplySelectType = ThreadReplySelectType.THREAD,
|
|
1787
|
+
queries,
|
|
1788
|
+
filterMessageList,
|
|
1789
|
+
disableMarkAsRead = false,
|
|
1790
|
+
onReplyInThread,
|
|
1791
|
+
onQuoteMessageClick,
|
|
1792
|
+
onMessageAnimated,
|
|
1793
|
+
onMessageHighlighted
|
|
1794
|
+
} = props;
|
|
1795
|
+
const globalStore = useSendbirdStateContext();
|
|
1796
|
+
const {
|
|
1797
|
+
config
|
|
1798
|
+
} = globalStore;
|
|
1799
|
+
const {
|
|
1800
|
+
pubSub,
|
|
1801
|
+
logger,
|
|
1802
|
+
userId,
|
|
1803
|
+
isOnline,
|
|
1804
|
+
imageCompression,
|
|
1805
|
+
isMentionEnabled,
|
|
1806
|
+
isVoiceMessageEnabled,
|
|
1807
|
+
onUserProfileMessage,
|
|
1808
|
+
markAsReadScheduler
|
|
1809
|
+
} = config;
|
|
1810
|
+
const sdk = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores = globalStore.stores) === null || _globalStore$stores === void 0 ? void 0 : (_globalStore$stores$s = _globalStore$stores.sdkStore) === null || _globalStore$stores$s === void 0 ? void 0 : _globalStore$stores$s.sdk;
|
|
1811
|
+
const sdkInit = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores2 = globalStore.stores) === null || _globalStore$stores2 === void 0 ? void 0 : (_globalStore$stores2$ = _globalStore$stores2.sdkStore) === null || _globalStore$stores2$ === void 0 ? void 0 : _globalStore$stores2$.initialized;
|
|
1812
|
+
const [initialTimeStamp, setInitialTimeStamp] = useState(startingPoint);
|
|
1813
|
+
useEffect(() => {
|
|
1912
1814
|
setInitialTimeStamp(startingPoint);
|
|
1913
1815
|
}, [startingPoint, channelUrl]);
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
setAnimatedMessageId = _j[1];
|
|
1918
|
-
|
|
1919
|
-
var _k = useState(highlightedMessage),
|
|
1920
|
-
highLightedMessageId = _k[0],
|
|
1921
|
-
setHighLightedMessageId = _k[1];
|
|
1922
|
-
|
|
1923
|
-
useEffect(function () {
|
|
1816
|
+
const [animatedMessageId, setAnimatedMessageId] = useState(0);
|
|
1817
|
+
const [highLightedMessageId, setHighLightedMessageId] = useState(highlightedMessage);
|
|
1818
|
+
useEffect(() => {
|
|
1924
1819
|
setHighLightedMessageId(highlightedMessage);
|
|
1925
1820
|
}, [highlightedMessage]);
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
var usingReaction = (appInfo === null || appInfo === void 0 ? void 0 : appInfo.useReaction) && !isBroadcast && !isSuper && ((config === null || config === void 0 ? void 0 : config.isReactionEnabled) || isReactionEnabled);
|
|
1953
|
-
var emojiAllMap = useMemo(function () {
|
|
1954
|
-
return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map();
|
|
1955
|
-
}, [emojiContainer]);
|
|
1956
|
-
var emojiAllList = useMemo(function () {
|
|
1957
|
-
return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : [];
|
|
1958
|
-
}, [emojiContainer]);
|
|
1959
|
-
var nicknamesMap = useMemo(function () {
|
|
1960
|
-
return usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map();
|
|
1961
|
-
}, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]); // Animate message
|
|
1821
|
+
const userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
|
|
1822
|
+
const [quoteMessage, setQuoteMessage] = useState(null);
|
|
1823
|
+
const [messagesStore, messagesDispatcher] = useReducer(reducer, messagesInitialState);
|
|
1824
|
+
const scrollRef = useRef(null);
|
|
1825
|
+
const {
|
|
1826
|
+
allMessages,
|
|
1827
|
+
loading,
|
|
1828
|
+
initialized,
|
|
1829
|
+
unreadSince,
|
|
1830
|
+
isInvalid,
|
|
1831
|
+
currentGroupChannel,
|
|
1832
|
+
hasMorePrev,
|
|
1833
|
+
oldestMessageTimeStamp,
|
|
1834
|
+
hasMoreNext,
|
|
1835
|
+
latestMessageTimeStamp,
|
|
1836
|
+
emojiContainer,
|
|
1837
|
+
readStatus
|
|
1838
|
+
} = messagesStore;
|
|
1839
|
+
const isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
|
|
1840
|
+
const isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
|
|
1841
|
+
const {
|
|
1842
|
+
appInfo
|
|
1843
|
+
} = sdk;
|
|
1844
|
+
const usingReaction = (appInfo === null || appInfo === void 0 ? void 0 : appInfo.useReaction) && !isBroadcast && !isSuper && ((config === null || config === void 0 ? void 0 : config.isReactionEnabled) || isReactionEnabled);
|
|
1845
|
+
const emojiAllMap = useMemo(() => usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(), [emojiContainer]);
|
|
1846
|
+
const nicknamesMap = useMemo(() => usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map(), [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
|
|
1962
1847
|
|
|
1963
|
-
|
|
1848
|
+
// Animate message
|
|
1849
|
+
useEffect(() => {
|
|
1964
1850
|
if (animatedMessage) {
|
|
1965
1851
|
setAnimatedMessageId(animatedMessage);
|
|
1966
1852
|
}
|
|
1967
|
-
}, [animatedMessage]);
|
|
1853
|
+
}, [animatedMessage]);
|
|
1968
1854
|
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1855
|
+
// Scrollup is default scroll for channel
|
|
1856
|
+
const onScrollCallback = useScrollCallback({
|
|
1857
|
+
currentGroupChannel,
|
|
1858
|
+
oldestMessageTimeStamp,
|
|
1859
|
+
userFilledMessageListQuery,
|
|
1860
|
+
replyType,
|
|
1861
|
+
isVoiceMessageEnabled
|
|
1974
1862
|
}, {
|
|
1975
|
-
hasMorePrev
|
|
1976
|
-
logger
|
|
1977
|
-
messagesDispatcher
|
|
1978
|
-
sdk
|
|
1863
|
+
hasMorePrev,
|
|
1864
|
+
logger,
|
|
1865
|
+
messagesDispatcher,
|
|
1866
|
+
sdk
|
|
1979
1867
|
});
|
|
1980
|
-
|
|
1981
|
-
setInitialTimeStamp
|
|
1982
|
-
setAnimatedMessageId
|
|
1983
|
-
allMessages
|
|
1868
|
+
const scrollToMessage = useScrollToMessage({
|
|
1869
|
+
setInitialTimeStamp,
|
|
1870
|
+
setAnimatedMessageId,
|
|
1871
|
+
allMessages,
|
|
1872
|
+
scrollRef
|
|
1984
1873
|
}, {
|
|
1985
|
-
logger
|
|
1986
|
-
});
|
|
1874
|
+
logger
|
|
1875
|
+
});
|
|
1876
|
+
|
|
1877
|
+
// onScrollDownCallback is added for navigation to different timestamps on messageSearch
|
|
1987
1878
|
// hasMorePrev, onScrollCallback -> scroll up(default behavior)
|
|
1988
1879
|
// hasMoreNext, onScrollDownCallback -> scroll down
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1880
|
+
const onScrollDownCallback = useScrollDownCallback({
|
|
1881
|
+
currentGroupChannel,
|
|
1882
|
+
latestMessageTimeStamp,
|
|
1883
|
+
userFilledMessageListQuery,
|
|
1884
|
+
hasMoreNext,
|
|
1885
|
+
replyType,
|
|
1886
|
+
isVoiceMessageEnabled
|
|
1996
1887
|
}, {
|
|
1997
|
-
logger
|
|
1998
|
-
messagesDispatcher
|
|
1999
|
-
sdk
|
|
1888
|
+
logger,
|
|
1889
|
+
messagesDispatcher,
|
|
1890
|
+
sdk
|
|
2000
1891
|
});
|
|
2001
|
-
|
|
2002
|
-
currentGroupChannel
|
|
1892
|
+
const toggleReaction = useToggleReactionCallback({
|
|
1893
|
+
currentGroupChannel
|
|
2003
1894
|
}, {
|
|
2004
|
-
logger
|
|
1895
|
+
logger
|
|
2005
1896
|
});
|
|
2006
|
-
var memoizedEmojiListItems = useMemoizedEmojiListItems({
|
|
2007
|
-
emojiContainer: emojiContainer,
|
|
2008
|
-
toggleReaction: toggleReaction
|
|
2009
|
-
}, {
|
|
2010
|
-
isReactionEnabled: usingReaction,
|
|
2011
|
-
logger: logger,
|
|
2012
|
-
userId: userId,
|
|
2013
|
-
emojiAllList: emojiAllList
|
|
2014
|
-
}); // to create message-datasource
|
|
2015
|
-
// this hook sets currentGroupChannel asynchronously
|
|
2016
1897
|
|
|
1898
|
+
// to create message-datasource
|
|
1899
|
+
// this hook sets currentGroupChannel asynchronously
|
|
2017
1900
|
useSetChannel({
|
|
2018
|
-
channelUrl
|
|
2019
|
-
sdkInit
|
|
2020
|
-
disableMarkAsRead
|
|
1901
|
+
channelUrl,
|
|
1902
|
+
sdkInit,
|
|
1903
|
+
disableMarkAsRead
|
|
2021
1904
|
}, {
|
|
2022
|
-
messagesDispatcher
|
|
2023
|
-
sdk
|
|
2024
|
-
logger
|
|
2025
|
-
|
|
1905
|
+
messagesDispatcher,
|
|
1906
|
+
sdk,
|
|
1907
|
+
logger,
|
|
1908
|
+
markAsReadScheduler
|
|
1909
|
+
});
|
|
2026
1910
|
|
|
2027
|
-
|
|
1911
|
+
// to set quote message as null
|
|
1912
|
+
useEffect(() => {
|
|
2028
1913
|
setQuoteMessage(null);
|
|
2029
|
-
}, [channelUrl]);
|
|
1914
|
+
}, [channelUrl]);
|
|
2030
1915
|
|
|
1916
|
+
// Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
|
|
2031
1917
|
useHandleChannelEvents({
|
|
2032
|
-
currentGroupChannel
|
|
2033
|
-
sdkInit
|
|
1918
|
+
currentGroupChannel,
|
|
1919
|
+
sdkInit,
|
|
2034
1920
|
currentUserId: userId,
|
|
2035
|
-
|
|
2036
|
-
disableMarkAsRead: disableMarkAsRead
|
|
1921
|
+
disableMarkAsRead
|
|
2037
1922
|
}, {
|
|
2038
|
-
messagesDispatcher
|
|
2039
|
-
sdk
|
|
2040
|
-
logger
|
|
2041
|
-
scrollRef
|
|
2042
|
-
setQuoteMessage
|
|
2043
|
-
});
|
|
1923
|
+
messagesDispatcher,
|
|
1924
|
+
sdk,
|
|
1925
|
+
logger,
|
|
1926
|
+
scrollRef,
|
|
1927
|
+
setQuoteMessage
|
|
1928
|
+
});
|
|
1929
|
+
|
|
1930
|
+
// hook that fetches messages when channel changes
|
|
2044
1931
|
// to be clear here useGetChannel sets currentGroupChannel
|
|
2045
1932
|
// and useInitialMessagesFetch executes when currentGroupChannel changes
|
|
2046
1933
|
// p.s This one executes on initialTimeStamp change too
|
|
2047
|
-
|
|
2048
1934
|
useInitialMessagesFetch({
|
|
2049
|
-
currentGroupChannel
|
|
2050
|
-
userFilledMessageListQuery
|
|
2051
|
-
initialTimeStamp
|
|
2052
|
-
latestMessageTimeStamp
|
|
2053
|
-
replyType
|
|
1935
|
+
currentGroupChannel,
|
|
1936
|
+
userFilledMessageListQuery,
|
|
1937
|
+
initialTimeStamp,
|
|
1938
|
+
latestMessageTimeStamp,
|
|
1939
|
+
replyType,
|
|
1940
|
+
isVoiceMessageEnabled
|
|
2054
1941
|
}, {
|
|
2055
|
-
logger
|
|
2056
|
-
scrollRef
|
|
2057
|
-
messagesDispatcher
|
|
2058
|
-
});
|
|
1942
|
+
logger,
|
|
1943
|
+
scrollRef,
|
|
1944
|
+
messagesDispatcher
|
|
1945
|
+
});
|
|
2059
1946
|
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
1947
|
+
// handles API calls from withSendbird
|
|
1948
|
+
useEffect(() => {
|
|
1949
|
+
const subscriber = pubSubHandler({
|
|
1950
|
+
channelUrl,
|
|
1951
|
+
pubSub,
|
|
2064
1952
|
dispatcher: messagesDispatcher,
|
|
2065
|
-
scrollRef
|
|
1953
|
+
scrollRef
|
|
2066
1954
|
});
|
|
2067
|
-
return
|
|
1955
|
+
return () => {
|
|
2068
1956
|
pubSubHandleRemover(subscriber);
|
|
2069
1957
|
};
|
|
2070
|
-
}, [channelUrl, sdkInit]);
|
|
1958
|
+
}, [channelUrl, sdkInit]);
|
|
2071
1959
|
|
|
1960
|
+
// handling connection breaks
|
|
2072
1961
|
useHandleReconnect({
|
|
2073
|
-
isOnline
|
|
2074
|
-
replyType
|
|
2075
|
-
disableMarkAsRead
|
|
1962
|
+
isOnline,
|
|
1963
|
+
replyType,
|
|
1964
|
+
disableMarkAsRead
|
|
2076
1965
|
}, {
|
|
2077
|
-
logger
|
|
2078
|
-
sdk
|
|
2079
|
-
scrollRef
|
|
2080
|
-
currentGroupChannel
|
|
2081
|
-
messagesDispatcher
|
|
2082
|
-
userFilledMessageListQuery
|
|
2083
|
-
|
|
1966
|
+
logger,
|
|
1967
|
+
sdk,
|
|
1968
|
+
scrollRef,
|
|
1969
|
+
currentGroupChannel,
|
|
1970
|
+
messagesDispatcher,
|
|
1971
|
+
userFilledMessageListQuery,
|
|
1972
|
+
markAsReadScheduler
|
|
1973
|
+
});
|
|
2084
1974
|
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
1975
|
+
// callbacks for Message CURD actions
|
|
1976
|
+
const deleteMessage = useDeleteMessageCallback({
|
|
1977
|
+
currentGroupChannel,
|
|
1978
|
+
messagesDispatcher
|
|
2088
1979
|
}, {
|
|
2089
|
-
logger
|
|
1980
|
+
logger
|
|
1981
|
+
});
|
|
1982
|
+
const updateMessage = useUpdateMessageCallback({
|
|
1983
|
+
currentGroupChannel,
|
|
1984
|
+
messagesDispatcher,
|
|
1985
|
+
onBeforeUpdateUserMessage,
|
|
1986
|
+
isMentionEnabled
|
|
1987
|
+
}, {
|
|
1988
|
+
logger,
|
|
1989
|
+
pubSub
|
|
2090
1990
|
});
|
|
2091
|
-
|
|
2092
|
-
currentGroupChannel
|
|
2093
|
-
messagesDispatcher
|
|
2094
|
-
onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
|
|
2095
|
-
isMentionEnabled: isMentionEnabled
|
|
1991
|
+
const resendMessage = useResendMessageCallback({
|
|
1992
|
+
currentGroupChannel,
|
|
1993
|
+
messagesDispatcher
|
|
2096
1994
|
}, {
|
|
2097
|
-
logger
|
|
2098
|
-
pubSub: pubSub
|
|
1995
|
+
logger
|
|
2099
1996
|
});
|
|
2100
|
-
|
|
2101
|
-
currentGroupChannel
|
|
2102
|
-
|
|
1997
|
+
const [messageInputRef, sendMessage] = useSendMessageCallback({
|
|
1998
|
+
currentGroupChannel,
|
|
1999
|
+
onBeforeSendUserMessage,
|
|
2000
|
+
isMentionEnabled
|
|
2103
2001
|
}, {
|
|
2104
|
-
logger
|
|
2002
|
+
logger,
|
|
2003
|
+
pubSub,
|
|
2004
|
+
scrollRef,
|
|
2005
|
+
messagesDispatcher
|
|
2105
2006
|
});
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
isMentionEnabled: isMentionEnabled
|
|
2007
|
+
const [sendFileMessage] = useSendFileMessageCallback({
|
|
2008
|
+
currentGroupChannel,
|
|
2009
|
+
onBeforeSendFileMessage,
|
|
2010
|
+
imageCompression
|
|
2111
2011
|
}, {
|
|
2112
|
-
logger
|
|
2113
|
-
pubSub
|
|
2114
|
-
scrollRef
|
|
2115
|
-
messagesDispatcher
|
|
2116
|
-
})
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
var sendFileMessage = useSendFileMessageCallback({
|
|
2121
|
-
currentGroupChannel: currentGroupChannel,
|
|
2122
|
-
onBeforeSendFileMessage: onBeforeSendFileMessage,
|
|
2123
|
-
imageCompression: imageCompression
|
|
2012
|
+
logger,
|
|
2013
|
+
pubSub,
|
|
2014
|
+
scrollRef,
|
|
2015
|
+
messagesDispatcher
|
|
2016
|
+
});
|
|
2017
|
+
const [sendVoiceMessage] = useSendVoiceMessageCallback({
|
|
2018
|
+
currentGroupChannel,
|
|
2019
|
+
onBeforeSendVoiceMessage
|
|
2124
2020
|
}, {
|
|
2125
|
-
logger
|
|
2126
|
-
pubSub
|
|
2127
|
-
scrollRef
|
|
2128
|
-
messagesDispatcher
|
|
2129
|
-
})
|
|
2021
|
+
logger,
|
|
2022
|
+
pubSub,
|
|
2023
|
+
scrollRef,
|
|
2024
|
+
messagesDispatcher
|
|
2025
|
+
});
|
|
2130
2026
|
return /*#__PURE__*/React__default.createElement(ChannelContext.Provider, {
|
|
2131
2027
|
value: {
|
|
2132
2028
|
// props
|
|
2133
|
-
channelUrl
|
|
2029
|
+
channelUrl,
|
|
2134
2030
|
isReactionEnabled: usingReaction,
|
|
2135
|
-
isMessageGroupingEnabled
|
|
2136
|
-
showSearchIcon
|
|
2137
|
-
highlightedMessage
|
|
2138
|
-
startingPoint
|
|
2139
|
-
onBeforeSendUserMessage
|
|
2140
|
-
onBeforeSendFileMessage
|
|
2141
|
-
onBeforeUpdateUserMessage
|
|
2142
|
-
onChatHeaderActionClick
|
|
2143
|
-
onSearchClick
|
|
2144
|
-
onBackClick
|
|
2145
|
-
replyType
|
|
2146
|
-
threadReplySelectType
|
|
2147
|
-
queries
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2031
|
+
isMessageGroupingEnabled,
|
|
2032
|
+
showSearchIcon,
|
|
2033
|
+
highlightedMessage,
|
|
2034
|
+
startingPoint,
|
|
2035
|
+
onBeforeSendUserMessage,
|
|
2036
|
+
onBeforeSendFileMessage,
|
|
2037
|
+
onBeforeUpdateUserMessage,
|
|
2038
|
+
onChatHeaderActionClick,
|
|
2039
|
+
onSearchClick,
|
|
2040
|
+
onBackClick,
|
|
2041
|
+
replyType,
|
|
2042
|
+
threadReplySelectType,
|
|
2043
|
+
queries,
|
|
2044
|
+
filterMessageList,
|
|
2045
|
+
disableMarkAsRead,
|
|
2046
|
+
onReplyInThread,
|
|
2047
|
+
onQuoteMessageClick,
|
|
2048
|
+
onMessageAnimated,
|
|
2049
|
+
onMessageHighlighted,
|
|
2153
2050
|
// messagesStore
|
|
2154
|
-
allMessages
|
|
2155
|
-
loading
|
|
2156
|
-
initialized
|
|
2157
|
-
unreadSince
|
|
2158
|
-
isInvalid
|
|
2159
|
-
currentGroupChannel
|
|
2160
|
-
hasMorePrev
|
|
2161
|
-
hasMoreNext
|
|
2162
|
-
oldestMessageTimeStamp
|
|
2163
|
-
latestMessageTimeStamp
|
|
2164
|
-
emojiContainer
|
|
2165
|
-
readStatus
|
|
2051
|
+
allMessages,
|
|
2052
|
+
loading,
|
|
2053
|
+
initialized,
|
|
2054
|
+
unreadSince,
|
|
2055
|
+
isInvalid,
|
|
2056
|
+
currentGroupChannel,
|
|
2057
|
+
hasMorePrev,
|
|
2058
|
+
hasMoreNext,
|
|
2059
|
+
oldestMessageTimeStamp,
|
|
2060
|
+
latestMessageTimeStamp,
|
|
2061
|
+
emojiContainer,
|
|
2062
|
+
readStatus,
|
|
2166
2063
|
// utils
|
|
2167
|
-
scrollToMessage
|
|
2168
|
-
quoteMessage
|
|
2169
|
-
setQuoteMessage
|
|
2170
|
-
deleteMessage
|
|
2171
|
-
updateMessage
|
|
2172
|
-
resendMessage
|
|
2173
|
-
messageInputRef
|
|
2174
|
-
sendMessage
|
|
2175
|
-
sendFileMessage
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
scrollRef
|
|
2190
|
-
toggleReaction
|
|
2064
|
+
scrollToMessage,
|
|
2065
|
+
quoteMessage,
|
|
2066
|
+
setQuoteMessage,
|
|
2067
|
+
deleteMessage,
|
|
2068
|
+
updateMessage,
|
|
2069
|
+
resendMessage,
|
|
2070
|
+
messageInputRef,
|
|
2071
|
+
sendMessage,
|
|
2072
|
+
sendFileMessage,
|
|
2073
|
+
sendVoiceMessage,
|
|
2074
|
+
initialTimeStamp,
|
|
2075
|
+
messageActionTypes,
|
|
2076
|
+
messagesDispatcher,
|
|
2077
|
+
setInitialTimeStamp,
|
|
2078
|
+
setAnimatedMessageId,
|
|
2079
|
+
setHighLightedMessageId,
|
|
2080
|
+
animatedMessageId,
|
|
2081
|
+
highLightedMessageId,
|
|
2082
|
+
nicknamesMap,
|
|
2083
|
+
emojiAllMap,
|
|
2084
|
+
onScrollCallback,
|
|
2085
|
+
onScrollDownCallback,
|
|
2086
|
+
scrollRef,
|
|
2087
|
+
toggleReaction
|
|
2191
2088
|
}
|
|
2192
2089
|
}, /*#__PURE__*/React__default.createElement(UserProfileProvider, {
|
|
2193
2090
|
disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
|
|
@@ -2195,10 +2092,7 @@ var ChannelProvider = function (props) {
|
|
|
2195
2092
|
onUserProfileMessage: onUserProfileMessage
|
|
2196
2093
|
}, children));
|
|
2197
2094
|
};
|
|
2095
|
+
const useChannelContext = () => React__default.useContext(ChannelContext);
|
|
2198
2096
|
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
};
|
|
2202
|
-
|
|
2203
|
-
export { ChannelProvider as C, MARK_AS_READ as M, ThreadReplySelectType as T, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, isAboutSame as i, useChannelContext as u };
|
|
2204
|
-
//# sourceMappingURL=ChannelProvider-554e7116.js.map
|
|
2097
|
+
export { ChannelProvider as C, ThreadReplySelectType as T, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, isAboutSame as i, useChannelContext as u };
|
|
2098
|
+
//# sourceMappingURL=ChannelProvider-42ea1a96.js.map
|