@sendbird/uikit-react 3.6.11-beta.2 → 3.7.0-rc.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 +272 -345
- package/App.js.map +1 -1
- package/CHANGELOG.md +134 -0
- package/Channel/components/ChannelHeader.js +45 -50
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +76 -77
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +53 -58
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +9 -12
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +198 -176
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +137 -130
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +171 -161
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +40 -41
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +156 -136
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +47 -48
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +17 -18
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +17 -17
- package/Channel/utils/compareMessagesForGrouping.js +11 -11
- package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/Channel/utils/getMessagePartsInfo.js +32 -26
- package/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/Channel.js +54 -51
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +32 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +22 -31
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +93 -88
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +79 -75
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +85 -91
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +9 -10
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +38 -35
- package/ChannelList.js.map +1 -1
- package/ChannelListProvider-f520f5b3.js +1051 -0
- package/ChannelListProvider-f520f5b3.js.map +1 -0
- package/ChannelProvider-7f6fd1f8.js +2080 -0
- package/ChannelProvider-7f6fd1f8.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +42 -37
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +44 -47
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +54 -52
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +39 -41
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +552 -509
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +66 -66
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -26
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +52 -57
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -19
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +23 -25
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +106 -102
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +38 -43
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -23
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-c25dd81b.js +48 -0
- package/{CreateChannelProvider-a2fad282.js.map → CreateChannelProvider-c25dd81b.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +38 -36
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +29 -34
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +20 -21
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +152 -21
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +13 -13
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +19 -19
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-d18a86d8.js +20 -0
- package/{LocalizationContext-2463058b.js.map → LocalizationContext-d18a86d8.js.map} +1 -1
- package/MediaQueryContext-3eeeec4f.js +85 -0
- package/MediaQueryContext-3eeeec4f.js.map +1 -0
- package/MemberList-469dae9b.js +422 -0
- package/{MemberList-593867cb.js.map → MemberList-469dae9b.js.map} +1 -1
- package/Message/context.js +11 -12
- package/Message/context.js.map +1 -1
- package/Message/hooks/useDirtyGetMentions.js +21 -26
- package/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +56 -61
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +166 -177
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +49 -47
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +6 -8
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +22 -27
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +32 -35
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +170 -171
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +70 -64
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +53 -54
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +37 -35
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +63 -61
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +22 -21
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +27 -27
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-a0a09f0b.js → OpenChannelListProvider-24e735a1.js} +156 -178
- package/{OpenChannelListProvider-a0a09f0b.js.map → OpenChannelListProvider-24e735a1.js.map} +1 -1
- package/OpenChannelProvider-e9cb0f98.js +1850 -0
- package/{OpenChannelProvider-3e4b8c8e.js.map → OpenChannelProvider-e9cb0f98.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +52 -51
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +30 -29
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +39 -47
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +550 -518
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +16 -15
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +58 -57
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +20 -19
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +4 -4
- package/RemoveMessageModal-f0cd37a5.js +33 -0
- package/RemoveMessageModal-f0cd37a5.js.map +1 -0
- package/SendbirdProvider.js +726 -690
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +194 -181
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +86 -79
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -22
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +126 -94
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +260 -241
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +121 -120
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +128 -144
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -9
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +1678 -19
- package/Thread/context.js.map +1 -1
- package/Thread.js +76 -73
- package/Thread.js.map +1 -1
- package/UserProfileContext-26e71f9a.js +34 -0
- package/UserProfileContext-26e71f9a.js.map +1 -0
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +52 -46
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +68 -64
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +50 -52
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/{WebAudioUtils-f9386235.js → WebAudioUtils-dbb010a5.js} +38 -38
- package/{WebAudioUtils-f9386235.js.map → WebAudioUtils-dbb010a5.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-50c9576f.js → _rollupPluginBabelHelpers-07dcbc2b.js} +17 -17
- package/_rollupPluginBabelHelpers-07dcbc2b.js.map +1 -0
- package/{actionTypes-501b8c11.js → actionTypes-3cd49b5c.js} +2 -2
- package/{actionTypes-501b8c11.js.map → actionTypes-3cd49b5c.js.map} +1 -1
- package/cjs/App.js +270 -344
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +44 -49
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +79 -80
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +52 -57
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +9 -12
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +197 -175
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +136 -129
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +173 -163
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +41 -42
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +155 -135
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +46 -47
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +17 -18
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +17 -17
- package/cjs/Channel/utils/compareMessagesForGrouping.js +11 -11
- package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/cjs/Channel/utils/getMessagePartsInfo.js +32 -26
- package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/cjs/Channel.js +54 -51
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +31 -29
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +21 -30
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +96 -91
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +78 -74
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +84 -91
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +9 -10
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +38 -35
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/ChannelListProvider-a418de2e.js +1060 -0
- package/cjs/ChannelListProvider-a418de2e.js.map +1 -0
- package/cjs/ChannelProvider-7fa98120.js +2088 -0
- package/cjs/ChannelProvider-7fa98120.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +41 -36
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +44 -47
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +54 -52
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +38 -40
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +559 -516
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +66 -66
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -26
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +51 -56
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -19
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +23 -25
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +106 -102
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +37 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -23
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-70c9cb7c.js +55 -0
- package/cjs/{CreateChannelProvider-8b8a557c.js.map → CreateChannelProvider-70c9cb7c.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +39 -37
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +28 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +20 -21
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +153 -22
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +13 -13
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +21 -21
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-482c1343.js → LocalizationContext-5009012e.js} +9 -9
- package/cjs/{LocalizationContext-482c1343.js.map → LocalizationContext-5009012e.js.map} +1 -1
- package/cjs/MediaQueryContext-d6fdbe43.js +92 -0
- package/cjs/MediaQueryContext-d6fdbe43.js.map +1 -0
- package/cjs/MemberList-529a0086.js +428 -0
- package/cjs/{MemberList-26b8de48.js.map → MemberList-529a0086.js.map} +1 -1
- package/cjs/Message/context.js +11 -12
- package/cjs/Message/context.js.map +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js +21 -26
- package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +60 -65
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +165 -176
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +49 -47
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +6 -8
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +22 -27
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +32 -35
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +169 -170
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +69 -63
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +56 -57
- 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 +37 -35
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +66 -64
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +22 -21
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +27 -27
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-0b8cd3bf.js +416 -0
- package/cjs/{OpenChannelListProvider-2e3ee48d.js.map → OpenChannelListProvider-0b8cd3bf.js.map} +1 -1
- package/cjs/OpenChannelProvider-d8cc11fe.js +1859 -0
- package/cjs/{OpenChannelProvider-8577ea58.js.map → OpenChannelProvider-d8cc11fe.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +53 -52
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +29 -28
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +40 -48
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +557 -525
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +16 -15
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +57 -56
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +20 -19
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/RemoveMessageModal-f029d40e.js +39 -0
- package/cjs/RemoveMessageModal-f029d40e.js.map +1 -0
- package/cjs/SendbirdProvider.js +733 -693
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +193 -180
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +86 -79
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -22
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +125 -93
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +263 -244
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +120 -119
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +134 -150
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +9 -13
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +1680 -21
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +76 -73
- package/cjs/Thread.js.map +1 -1
- package/cjs/UserProfileContext-922a43ec.js +41 -0
- package/cjs/UserProfileContext-922a43ec.js.map +1 -0
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +52 -46
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +67 -63
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +49 -51
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/{WebAudioUtils-142344fd.js → WebAudioUtils-29717597.js} +38 -38
- package/cjs/{WebAudioUtils-142344fd.js.map → WebAudioUtils-29717597.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-83d7e84b.js → _rollupPluginBabelHelpers-94c18dc1.js} +16 -17
- package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +1 -0
- package/cjs/{actionTypes-1d118952.js → actionTypes-7fa02f94.js} +2 -2
- package/cjs/{actionTypes-1d118952.js.map → actionTypes-7fa02f94.js.map} +1 -1
- package/cjs/{color-d83b77ac.js → color-477ddbd4.js} +12 -13
- package/cjs/color-477ddbd4.js.map +1 -0
- package/cjs/{compareIds-bef997cb.js → compareIds-de541666.js} +7 -6
- package/cjs/compareIds-de541666.js.map +1 -0
- package/cjs/{const-1726bde0.js → const-640252c1.js} +4 -4
- package/cjs/{const-1726bde0.js.map → const-640252c1.js.map} +1 -1
- package/cjs/const-9def5c09.js +19 -0
- package/cjs/{const-67ff9e34.js.map → const-9def5c09.js.map} +1 -1
- package/cjs/consts-54f5c12d.js +6 -0
- package/cjs/consts-54f5c12d.js.map +1 -0
- package/cjs/consts-85cd42fa.js +6 -0
- package/cjs/{consts-bf228385.js.map → consts-85cd42fa.js.map} +1 -1
- package/cjs/{consts-fb07c671.js → consts-95462b21.js} +18 -25
- package/cjs/{consts-fb07c671.js.map → consts-95462b21.js.map} +1 -1
- package/cjs/consts-a3b7ae99.js +6 -0
- package/cjs/{consts-d3b53f23.js.map → consts-a3b7ae99.js.map} +1 -1
- package/cjs/{context-bd2878ff.js → context-9814fafe.js} +5 -6
- package/cjs/{context-bd2878ff.js.map → context-9814fafe.js.map} +1 -1
- package/cjs/dist/index.css +110 -95
- 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/hooks/useModal.js +84 -0
- package/cjs/hooks/useModal.js.map +1 -0
- package/cjs/{index-81baccd0.js → index-0a25b9b2.js} +166 -154
- package/cjs/index-0a25b9b2.js.map +1 -0
- package/cjs/index-0ec5a831.js +308 -0
- package/cjs/{index-1f6b30ea.js.map → index-0ec5a831.js.map} +1 -1
- package/cjs/{index-18720f0d.js → index-35820a94.js} +2 -2
- package/cjs/{index-18720f0d.js.map → index-35820a94.js.map} +1 -1
- package/cjs/index-609b07a2.js +7 -0
- package/cjs/index-609b07a2.js.map +1 -0
- package/cjs/index-6b0644d7.js +369 -0
- package/cjs/index-6b0644d7.js.map +1 -0
- package/cjs/{index-857630c5.js → index-7b0c6630.js} +104 -114
- package/cjs/index-7b0c6630.js.map +1 -0
- package/cjs/index-80a11b6a.js +197 -0
- package/cjs/{index-6ab9a40d.js.map → index-80a11b6a.js.map} +1 -1
- package/cjs/{index-4eb7e2b5.js → index-826b76d5.js} +2 -4
- package/cjs/index-826b76d5.js.map +1 -0
- package/cjs/{index-11f9cc0f.js → index-83d2aed9.js} +3 -12
- package/cjs/index-83d2aed9.js.map +1 -0
- package/cjs/index-aeb36f01.js +173 -0
- package/cjs/index-aeb36f01.js.map +1 -0
- package/cjs/{index-c9b003b3.js → index-b6d51e74.js} +56 -193
- package/cjs/index-b6d51e74.js.map +1 -0
- package/cjs/index-b995f638.js +741 -0
- package/cjs/index-b995f638.js.map +1 -0
- package/cjs/{index-759f2a26.js → index-bdf7089c.js} +72 -80
- package/cjs/{index-759f2a26.js.map → index-bdf7089c.js.map} +1 -1
- package/cjs/{index-7c374c20.js → index-c22e0cbf.js} +25 -28
- package/cjs/{index-7c374c20.js.map → index-c22e0cbf.js.map} +1 -1
- package/cjs/index-daf80c58.js +20 -0
- package/cjs/index-daf80c58.js.map +1 -0
- package/cjs/index-e81e2882.js +59 -0
- package/cjs/{index-2ab19f9b.js.map → index-e81e2882.js.map} +1 -1
- package/cjs/{index-91b4af96.js → index-ee3bf381.js} +39 -37
- package/cjs/{index-91b4af96.js.map → index-ee3bf381.js.map} +1 -1
- package/cjs/{index-d04f312e.js → index-fd8a0abb.js} +10 -30
- package/cjs/index-fd8a0abb.js.map +1 -0
- package/cjs/index.js +66 -63
- package/cjs/index.js.map +1 -1
- package/cjs/lame.all.js.map +1 -1
- package/cjs/package.json +2 -49
- package/cjs/{topics-adde627b.js → pubSub/topics.js} +6 -2
- package/cjs/pubSub/topics.js.map +1 -0
- package/cjs/{resolvedReplyType-85b4bd7c.js → resolvedReplyType-c20ef661.js} +1 -1
- package/cjs/{resolvedReplyType-85b4bd7c.js.map → resolvedReplyType-c20ef661.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +381 -332
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/stringFormatterUtils-e324636c.js +16 -0
- package/cjs/{stringFormatterUtils-8d6592ca.js.map → stringFormatterUtils-e324636c.js.map} +1 -1
- package/cjs/{stringSet-d00535a5.js → stringSet-98b52c49.js} +9 -2
- package/cjs/stringSet-98b52c49.js.map +1 -0
- package/cjs/{tokenize-9296fc47.js → tokenize-91bdbeb0.js} +56 -61
- package/cjs/{tokenize-9296fc47.js.map → tokenize-91bdbeb0.js.map} +1 -1
- package/cjs/tslib.es6-2f2b0bca.js +102 -0
- package/cjs/tslib.es6-2f2b0bca.js.map +1 -0
- package/cjs/types-31ed2276.js +11 -0
- package/cjs/types-31ed2276.js.map +1 -0
- package/cjs/types-66554668.js +15 -0
- package/cjs/types-66554668.js.map +1 -0
- package/cjs/ui/Accordion.js +18 -19
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +11 -10
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -10
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +59 -55
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +15 -16
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +15 -17
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +31 -33
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +41 -38
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +10 -9
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +5 -7
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +143 -144
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +14 -12
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +206 -176
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +23 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +14 -12
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +16 -16
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +28 -20
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +84 -64
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +14 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +12 -10
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +63 -59
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +10 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +187 -171
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput/hooks/usePaste.js +5 -4
- package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -1
- package/cjs/ui/MessageInput.js +55 -57
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +93 -72
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +64 -56
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +40 -49
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +32 -40
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +11 -11
- package/cjs/ui/Modal.js +57 -59
- 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 +47 -47
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +7 -8
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +17 -18
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +13 -17
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +147 -139
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +185 -178
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +220 -213
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +172 -164
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +108 -10
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +16 -15
- package/cjs/ui/PlaybackTime.js.map +1 -1
- package/cjs/ui/ProgressBar.js +15 -13
- package/cjs/ui/ProgressBar.js.map +1 -1
- package/cjs/ui/QuoteMessage.js +41 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +45 -31
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +17 -13
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +19 -19
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -14
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +21 -13
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +33 -31
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +21 -25
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +37 -28
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +85 -77
- package/cjs/ui/Toggle.js.map +1 -1
- package/cjs/ui/Tooltip.js +9 -8
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +18 -17
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +19 -20
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +80 -75
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +28 -33
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +49 -43
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +8 -7
- package/cjs/ui/VoiceMessgeInput.js.map +1 -1
- package/cjs/ui/Word.js +29 -27
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/{useHandleUploadFiles-b2fc56e5.js → useHandleUploadFiles-fbe6ad64.js} +114 -127
- package/cjs/useHandleUploadFiles-fbe6ad64.js.map +1 -0
- package/cjs/useLongPress-c1da8ba7.js +105 -0
- package/cjs/useLongPress-c1da8ba7.js.map +1 -0
- package/cjs/useSendMultipleFilesMessage-87e0ffa3.js +316 -0
- package/cjs/useSendMultipleFilesMessage-87e0ffa3.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +8 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/useStatefulFileInfoList-aa70b6b9.js +228 -0
- package/cjs/useStatefulFileInfoList-aa70b6b9.js.map +1 -0
- package/cjs/utils/message/getOutgoingMessageState.js +14 -16
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +4 -4
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/utils-0fac6ad1.js +27 -0
- package/cjs/utils-0fac6ad1.js.map +1 -0
- package/cjs/utils-180c6bc8.js +10 -0
- package/cjs/utils-180c6bc8.js.map +1 -0
- package/cjs/{utils-991911af.js → utils-46483130.js} +3 -3
- package/cjs/{utils-991911af.js.map → utils-46483130.js.map} +1 -1
- package/cjs/utils-55fc6797.js +170 -0
- package/cjs/utils-55fc6797.js.map +1 -0
- package/cjs/utils-851724e0.js +62 -0
- package/cjs/utils-851724e0.js.map +1 -0
- package/cjs/utils-e313131f.js +35 -0
- package/cjs/utils-e313131f.js.map +1 -0
- package/cjs/uuid-c74bbbb6.js +17 -0
- package/cjs/{uuid-b2806cf5.js.map → uuid-c74bbbb6.js.map} +1 -1
- package/cjs/withSendbird.js +16 -22
- package/cjs/withSendbird.js.map +1 -1
- package/{color-b7f211a8.js → color-1383d4ab.js} +5 -5
- package/{color-b7f211a8.js.map → color-1383d4ab.js.map} +1 -1
- package/compareIds-b56b02f1.js +16 -0
- package/compareIds-b56b02f1.js.map +1 -0
- package/{const-74ec9eb4.js → const-4bc3721f.js} +4 -4
- package/{const-74ec9eb4.js.map → const-4bc3721f.js.map} +1 -1
- package/const-e3326913.js +13 -0
- package/{const-711048c3.js.map → const-e3326913.js.map} +1 -1
- package/consts-7f4d53a3.js +4 -0
- package/consts-7f4d53a3.js.map +1 -0
- package/consts-833420ed.js +4 -0
- package/{consts-6ee24012.js.map → consts-833420ed.js.map} +1 -1
- package/consts-aa64aca8.js +30 -0
- package/{consts-691a3935.js.map → consts-aa64aca8.js.map} +1 -1
- package/consts-f0ba9b80.js +4 -0
- package/consts-f0ba9b80.js.map +1 -0
- package/context-ae47ac54.js +12 -0
- package/{context-b4c70964.js.map → context-ae47ac54.js.map} +1 -1
- package/dist/index.css +110 -95
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/hooks/useModal.js +73 -0
- package/hooks/useModal.js.map +1 -0
- package/{index-aa520474.js → index-12103973.js} +2 -2
- package/{index-aa520474.js.map → index-12103973.js.map} +1 -1
- package/index-124a5766.js +298 -0
- package/{index-e15f6b6a.js.map → index-124a5766.js.map} +1 -1
- package/{index-13401b87.js → index-1432c287.js} +2 -4
- package/index-1432c287.js.map +1 -0
- package/{index-b22c4150.js → index-1969ccd8.js} +25 -28
- package/{index-b22c4150.js.map → index-1969ccd8.js.map} +1 -1
- package/index-3d508585.js +53 -0
- package/{index-ae7ef8cf.js.map → index-3d508585.js.map} +1 -1
- package/{index-8a01c364.js → index-40447645.js} +73 -81
- package/{index-8a01c364.js.map → index-40447645.js.map} +1 -1
- package/{index-c421b228.js → index-7a1085b6.js} +99 -109
- package/index-7a1085b6.js.map +1 -0
- package/index-89b3b8ba.js +362 -0
- package/index-89b3b8ba.js.map +1 -0
- package/index-8c72f0bd.js +182 -0
- package/{index-98138798.js.map → index-8c72f0bd.js.map} +1 -1
- package/index-942c5fa2.js +161 -0
- package/index-942c5fa2.js.map +1 -0
- package/index-c6095960.js +4 -0
- package/index-c6095960.js.map +1 -0
- package/index-c7ed4aef.js +13 -0
- package/index-c7ed4aef.js.map +1 -0
- package/{index-daa3ae67.js → index-c81fd6ec.js} +56 -193
- package/index-c81fd6ec.js.map +1 -0
- package/{index-7700a436.js → index-d3f61405.js} +10 -30
- package/index-d3f61405.js.map +1 -0
- package/{index-5cb32ab5.js → index-dc1827ea.js} +3 -12
- package/index-dc1827ea.js.map +1 -0
- package/{index-3530f4f6.js → index-ec0c048b.js} +39 -37
- package/{index-3530f4f6.js.map → index-ec0c048b.js.map} +1 -1
- package/{index-b25ffa7e.js → index-eec0ce47.js} +166 -154
- package/index-eec0ce47.js.map +1 -0
- package/index-fc1642cb.js +692 -0
- package/index-fc1642cb.js.map +1 -0
- package/index.d.ts +143 -79
- package/index.js +66 -63
- package/index.js.map +1 -1
- package/lame.all.js.map +1 -1
- package/package.json +3 -3
- package/{topics-5659403d.js → pubSub/topics.js} +4 -3
- package/pubSub/topics.js.map +1 -0
- package/{resolvedReplyType-1a128514.js → resolvedReplyType-0532593c.js} +1 -1
- package/{resolvedReplyType-1a128514.js.map → resolvedReplyType-0532593c.js.map} +1 -1
- package/sendbirdSelectors.js +381 -332
- package/sendbirdSelectors.js.map +1 -1
- package/stringFormatterUtils-444f6f4c.js +14 -0
- package/{stringFormatterUtils-dbad592d.js.map → stringFormatterUtils-444f6f4c.js.map} +1 -1
- package/{stringSet-2814bf17.js → stringSet-1106c8ec.js} +9 -2
- package/stringSet-1106c8ec.js.map +1 -0
- package/{tokenize-4b153552.js → tokenize-d17bf862.js} +56 -61
- package/{tokenize-4b153552.js.map → tokenize-d17bf862.js.map} +1 -1
- package/tslib.es6-0c779aab.js +97 -0
- package/tslib.es6-0c779aab.js.map +1 -0
- package/types-4ffc52f6.js +15 -0
- package/types-4ffc52f6.js.map +1 -0
- package/types-50e412d8.js +9 -0
- package/types-50e412d8.js.map +1 -0
- package/ui/Accordion.js +18 -19
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +11 -10
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -10
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +59 -55
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +15 -16
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +15 -17
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +19 -26
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +41 -38
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +10 -9
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +5 -7
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +143 -144
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +14 -12
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +207 -177
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +23 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +14 -12
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +2 -2
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +28 -20
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +84 -65
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +14 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +12 -10
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +64 -60
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +10 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +186 -170
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput/hooks/usePaste.js +5 -4
- package/ui/MessageInput/hooks/usePaste.js.map +1 -1
- package/ui/MessageInput.js +48 -50
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +93 -72
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +64 -56
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +40 -49
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +32 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +11 -11
- package/ui/Modal.js +57 -59
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +47 -47
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +7 -8
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +17 -18
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +13 -17
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +147 -139
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +185 -178
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +220 -213
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +172 -164
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +106 -8
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +16 -15
- package/ui/PlaybackTime.js.map +1 -1
- package/ui/ProgressBar.js +15 -13
- package/ui/ProgressBar.js.map +1 -1
- package/ui/QuoteMessage.js +41 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +45 -31
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +17 -13
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +19 -19
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -14
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +21 -13
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +33 -31
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +21 -25
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +37 -28
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +86 -78
- package/ui/Toggle.js.map +1 -1
- package/ui/Tooltip.js +9 -8
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +18 -17
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +19 -20
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +80 -75
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +29 -34
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +49 -43
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +8 -7
- package/ui/VoiceMessgeInput.js.map +1 -1
- package/ui/Word.js +29 -27
- package/ui/Word.js.map +1 -1
- package/{useHandleUploadFiles-406a6c9c.js → useHandleUploadFiles-33aff88e.js} +111 -124
- package/useHandleUploadFiles-33aff88e.js.map +1 -0
- package/useLongPress-322bb6a3.js +103 -0
- package/useLongPress-322bb6a3.js.map +1 -0
- package/useSendMultipleFilesMessage-4489a0f6.js +283 -0
- package/useSendMultipleFilesMessage-4489a0f6.js.map +1 -0
- package/useSendbirdStateContext.js +5 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/useStatefulFileInfoList-dd95f949.js +219 -0
- package/useStatefulFileInfoList-dd95f949.js.map +1 -0
- package/utils/message/getOutgoingMessageState.js +8 -9
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +4 -4
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/{utils-7cc92ac2.js → utils-158c1683.js} +3 -3
- package/{utils-7cc92ac2.js.map → utils-158c1683.js.map} +1 -1
- package/utils-3660243c.js +25 -0
- package/utils-3660243c.js.map +1 -0
- package/utils-40040f8e.js +157 -0
- package/utils-40040f8e.js.map +1 -0
- package/utils-48a3ef27.js +31 -0
- package/utils-48a3ef27.js.map +1 -0
- package/utils-74c161a0.js +7 -0
- package/utils-74c161a0.js.map +1 -0
- package/utils-e98a7f8c.js +57 -0
- package/utils-e98a7f8c.js.map +1 -0
- package/uuid-3c77ef7b.js +15 -0
- package/{uuid-16373bba.js.map → uuid-3c77ef7b.js.map} +1 -1
- package/withSendbird.js +16 -22
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-1188e373.js +0 -1028
- package/ChannelListProvider-1188e373.js.map +0 -1
- package/ChannelProvider-9de00431.js +0 -1933
- package/ChannelProvider-9de00431.js.map +0 -1
- package/CreateChannelProvider-a2fad282.js +0 -44
- package/LocalizationContext-2463058b.js +0 -20
- package/MediaQueryContext-e3429d12.js +0 -87
- package/MediaQueryContext-e3429d12.js.map +0 -1
- package/MemberList-593867cb.js +0 -404
- package/OpenChannelProvider-3e4b8c8e.js +0 -1890
- package/RemoveMessageModal-9162aebe.js +0 -38
- package/RemoveMessageModal-9162aebe.js.map +0 -1
- package/ThreadProvider-9a3b145f.js +0 -1778
- package/ThreadProvider-9a3b145f.js.map +0 -1
- package/UserProfileContext-4ae968eb.js +0 -41
- package/UserProfileContext-4ae968eb.js.map +0 -1
- package/_rollupPluginBabelHelpers-50c9576f.js.map +0 -1
- package/cjs/ChannelListProvider-e55e6242.js +0 -1037
- package/cjs/ChannelListProvider-e55e6242.js.map +0 -1
- package/cjs/ChannelProvider-6fa73019.js +0 -1941
- package/cjs/ChannelProvider-6fa73019.js.map +0 -1
- package/cjs/CreateChannelProvider-8b8a557c.js +0 -52
- package/cjs/MediaQueryContext-73aac8cf.js +0 -94
- package/cjs/MediaQueryContext-73aac8cf.js.map +0 -1
- package/cjs/MemberList-26b8de48.js +0 -410
- package/cjs/OpenChannelListProvider-2e3ee48d.js +0 -439
- package/cjs/OpenChannelProvider-8577ea58.js +0 -1899
- package/cjs/RemoveMessageModal-dfeeb36a.js +0 -44
- package/cjs/RemoveMessageModal-dfeeb36a.js.map +0 -1
- package/cjs/ThreadProvider-8b0cf491.js +0 -1787
- package/cjs/ThreadProvider-8b0cf491.js.map +0 -1
- package/cjs/UserProfileContext-fa8d0383.js +0 -49
- package/cjs/UserProfileContext-fa8d0383.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-83d7e84b.js.map +0 -1
- package/cjs/color-d83b77ac.js.map +0 -1
- package/cjs/compareIds-bef997cb.js.map +0 -1
- package/cjs/const-67ff9e34.js +0 -20
- package/cjs/consts-b018b1ed.js +0 -6
- package/cjs/consts-b018b1ed.js.map +0 -1
- package/cjs/consts-bf228385.js +0 -6
- package/cjs/consts-d3b53f23.js +0 -6
- package/cjs/index-11f9cc0f.js.map +0 -1
- package/cjs/index-1a9fdbb4.js +0 -368
- package/cjs/index-1a9fdbb4.js.map +0 -1
- package/cjs/index-1f6b30ea.js +0 -330
- package/cjs/index-2ab19f9b.js +0 -57
- package/cjs/index-4b5a006d.js +0 -139
- package/cjs/index-4b5a006d.js.map +0 -1
- package/cjs/index-4eb7e2b5.js.map +0 -1
- package/cjs/index-56a25735.js +0 -171
- package/cjs/index-56a25735.js.map +0 -1
- package/cjs/index-6ab9a40d.js +0 -202
- package/cjs/index-7f41c4b6.js +0 -118
- package/cjs/index-7f41c4b6.js.map +0 -1
- package/cjs/index-81baccd0.js.map +0 -1
- package/cjs/index-857630c5.js.map +0 -1
- package/cjs/index-8ec12d1d.js +0 -164
- package/cjs/index-8ec12d1d.js.map +0 -1
- package/cjs/index-c9b003b3.js.map +0 -1
- package/cjs/index-cbcacbee.js +0 -9
- package/cjs/index-cbcacbee.js.map +0 -1
- package/cjs/index-d04f312e.js.map +0 -1
- package/cjs/index-e9ac5ae1.js +0 -58
- package/cjs/index-e9ac5ae1.js.map +0 -1
- package/cjs/index-fbe9cc73.js +0 -647
- package/cjs/index-fbe9cc73.js.map +0 -1
- package/cjs/index.module-a24e9cd7.js +0 -6
- package/cjs/index.module-a24e9cd7.js.map +0 -1
- package/cjs/stringFormatterUtils-8d6592ca.js +0 -16
- package/cjs/stringSet-d00535a5.js.map +0 -1
- package/cjs/topics-adde627b.js.map +0 -1
- package/cjs/types-0b5148cb.js +0 -17
- package/cjs/types-0b5148cb.js.map +0 -1
- package/cjs/useHandleUploadFiles-b2fc56e5.js.map +0 -1
- package/cjs/useLongPress-1c0f4696.js +0 -87
- package/cjs/useLongPress-1c0f4696.js.map +0 -1
- package/cjs/useSendMultipleFilesMessage-81cdc9d0.js +0 -109
- package/cjs/useSendMultipleFilesMessage-81cdc9d0.js.map +0 -1
- package/cjs/utils-418b4438.js +0 -62
- package/cjs/utils-418b4438.js.map +0 -1
- package/cjs/utils-5bfb4516.js +0 -35
- package/cjs/utils-5bfb4516.js.map +0 -1
- package/cjs/utils-68aa6bf6.js +0 -345
- package/cjs/utils-68aa6bf6.js.map +0 -1
- package/cjs/utils-b34d4e2c.js +0 -31
- package/cjs/utils-b34d4e2c.js.map +0 -1
- package/cjs/utils-c47c68b1.js +0 -6
- package/cjs/utils-c47c68b1.js.map +0 -1
- package/cjs/uuid-b2806cf5.js +0 -15
- package/compareIds-8ed6e36a.js +0 -15
- package/compareIds-8ed6e36a.js.map +0 -1
- package/const-711048c3.js +0 -13
- package/consts-675764c9.js +0 -4
- package/consts-675764c9.js.map +0 -1
- package/consts-691a3935.js +0 -37
- package/consts-6ee24012.js +0 -4
- package/consts-eb77e905.js +0 -4
- package/consts-eb77e905.js.map +0 -1
- package/context-b4c70964.js +0 -13
- package/index-128523eb.js +0 -110
- package/index-128523eb.js.map +0 -1
- package/index-13401b87.js.map +0 -1
- package/index-5cb32ab5.js.map +0 -1
- package/index-5d6a0f12.js +0 -598
- package/index-5d6a0f12.js.map +0 -1
- package/index-60a7bf91.js +0 -164
- package/index-60a7bf91.js.map +0 -1
- package/index-7700a436.js.map +0 -1
- package/index-7946293f.js +0 -152
- package/index-7946293f.js.map +0 -1
- package/index-7b7478f5.js +0 -132
- package/index-7b7478f5.js.map +0 -1
- package/index-82178c6a.js +0 -361
- package/index-82178c6a.js.map +0 -1
- package/index-98138798.js +0 -187
- package/index-98887e8d.js +0 -7
- package/index-98887e8d.js.map +0 -1
- package/index-ae7ef8cf.js +0 -51
- package/index-b25ffa7e.js.map +0 -1
- package/index-c421b228.js.map +0 -1
- package/index-d99155f7.js +0 -51
- package/index-d99155f7.js.map +0 -1
- package/index-daa3ae67.js.map +0 -1
- package/index-e15f6b6a.js +0 -320
- package/index.module-60af77d3.js +0 -4
- package/index.module-60af77d3.js.map +0 -1
- package/stringFormatterUtils-dbad592d.js +0 -14
- package/stringSet-2814bf17.js.map +0 -1
- package/topics-5659403d.js.map +0 -1
- package/types-89092633.js +0 -15
- package/types-89092633.js.map +0 -1
- package/useHandleUploadFiles-406a6c9c.js.map +0 -1
- package/useLongPress-5e1ad951.js +0 -85
- package/useLongPress-5e1ad951.js.map +0 -1
- package/useSendMultipleFilesMessage-a3a2c84b.js +0 -107
- package/useSendMultipleFilesMessage-a3a2c84b.js.map +0 -1
- package/utils-0c22998a.js +0 -306
- package/utils-0c22998a.js.map +0 -1
- package/utils-407da489.js +0 -4
- package/utils-407da489.js.map +0 -1
- package/utils-b97d5113.js +0 -57
- package/utils-b97d5113.js.map +0 -1
- package/utils-cae84d8a.js +0 -29
- package/utils-cae84d8a.js.map +0 -1
- package/utils-ebf008e2.js +0 -31
- package/utils-ebf008e2.js.map +0 -1
- package/uuid-16373bba.js +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLongPress-322bb6a3.js","sources":["../src/hooks/useLongPress.tsx"],"sourcesContent":["// thanks to: https://stackoverflow.com/questions/48048957/react-long-press-event\n/* example:\n const Component = ({ onClick }) => {\n const onLongPress = useLongPress({\n onClick: onClick,\n onLongPress: () => {\n alert('longpress');\n }\n }, {\n delay: 500,\n shouldPreventDefault: true,\n });\n return (\n <button {...onLongPress}>\n hello\n </button>\n )\n }\n*/\nimport React, {\n useState,\n useRef,\n useCallback,\n} from 'react';\nimport {\n useMediaQueryContext,\n} from '../lib/MediaQueryContext';\n\nconst DEFAULT_DURATION = 300;\n\nfunction preventDefault(e: Event) {\n if (!isTouchEvent(e)) {\n return;\n }\n\n if (e.touches.length < 2 && e.preventDefault) {\n e.preventDefault();\n }\n}\n\nexport function isTouchEvent(e: Event): e is TouchEvent {\n return e && 'touches' in e;\n}\n\ninterface PressHandlers<T> {\n onLongPress: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n onClick?: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n}\n\ninterface Options {\n delay?: number;\n shouldPreventDefault?: boolean;\n shouldStopPropagation?: boolean;\n}\n\ninterface UseLongPressType<T> {\n onTouchMove: (e: React.TouchEvent<T>) => void;\n onMouseDown: (e: React.MouseEvent<T>) => void;\n onTouchStart: (e: React.TouchEvent<T>) => void;\n onMouseUp: (e: React.MouseEvent<T>) => void;\n onMouseLeave: (e: React.MouseEvent<T>) => void;\n onTouchEnd: (e: React.TouchEvent<T>) => void;\n}\n\nexport default function useLongPress<T>({\n onLongPress,\n onClick,\n}: PressHandlers<T>, {\n delay = DEFAULT_DURATION,\n shouldPreventDefault = true,\n shouldStopPropagation = false,\n}: Options = {}): UseLongPressType<T> {\n const { isMobile } = useMediaQueryContext();\n const [longPressTriggered, setLongPressTriggered] = useState(false);\n const [dragTriggered, setDragTriggered] = useState(false);\n // https://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype\n const timeout = useRef<ReturnType<typeof setTimeout>>();\n const target = useRef<EventTarget>();\n\n const start = useCallback((e: React.MouseEvent<T> | React.TouchEvent<T>) => {\n e.persist();\n const clonedEvent = {\n ...e,\n };\n setDragTriggered(false);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n if (shouldPreventDefault && e.target) {\n e.target.addEventListener(\n 'touchend',\n preventDefault,\n {\n passive: false,\n },\n );\n target.current = e.target;\n }\n\n timeout.current = setTimeout(() => {\n onLongPress(clonedEvent);\n setLongPressTriggered(true);\n }, delay);\n }, [onLongPress, delay, shouldPreventDefault, shouldStopPropagation, isMobile]);\n\n const clear = useCallback((\n e: React.MouseEvent<T> | React.TouchEvent<T>,\n shouldTriggerClick = true,\n onDrag = false,\n ) => {\n if (onDrag) {\n setDragTriggered(true);\n } else {\n setDragTriggered(false);\n }\n if (timeout?.current) {\n clearTimeout(timeout.current);\n }\n if (shouldTriggerClick && !longPressTriggered && !dragTriggered) {\n onClick?.(e);\n }\n setLongPressTriggered(false);\n if (shouldPreventDefault && target.current) {\n target.current.removeEventListener('touchend', preventDefault);\n }\n }, [shouldPreventDefault, onClick, longPressTriggered, dragTriggered]);\n\n return {\n onMouseDown: (e: React.MouseEvent<T>) => start(e),\n onMouseUp: (e: React.MouseEvent<T>) => clear(e),\n onMouseLeave: (e: React.MouseEvent<T>) => clear(e, false),\n onTouchStart: (e: React.TouchEvent<T>) => start(e),\n // setDragTriggered as true on touchmove, so that next onTouchEnd is ignored\n // if we dont do it, onClick?.(e) will be triggred, see inside clear()\n onTouchMove: (e: React.TouchEvent<T>) => clear(e, false, true),\n onTouchEnd: (e: React.TouchEvent<T>) => clear(e),\n };\n}\n"],"names":["DEFAULT_DURATION","preventDefault","e","isTouchEvent","touches","length","useLongPress","_a","_b","onLongPress","onClick","_c","_d","delay","_e","shouldPreventDefault","_f","shouldStopPropagation","isMobile","useMediaQueryContext","_g","useState","longPressTriggered","setLongPressTriggered","_h","dragTriggered","setDragTriggered","timeout","useRef","target","start","useCallback","persist","clonedEvent","__assign","stopPropagation","addEventListener","passive","current","setTimeout","clear","shouldTriggerClick","onDrag","clearTimeout","removeEventListener","onMouseDown","onMouseUp","onMouseLeave","onTouchStart","onTouchMove","onTouchEnd"],"mappings":"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"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { PUBSUB_TOPICS } from './pubSub/topics.js';
|
|
3
|
+
import { s as scrollIntoLast$1 } from './utils-40040f8e.js';
|
|
4
|
+
import { f as format } from './index-c81fd6ec.js';
|
|
5
|
+
import { getOutgoingMessageState, OutgoingMessageStates } from './utils/message/getOutgoingMessageState.js';
|
|
6
|
+
|
|
7
|
+
var RESET_MESSAGES = 'RESET_MESSAGES';
|
|
8
|
+
var FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
|
|
9
|
+
var FETCH_INITIAL_MESSAGES_SUCCESS = 'FETCH_INITIAL_MESSAGES_SUCCESS';
|
|
10
|
+
var FETCH_INITIAL_MESSAGES_FAILURE = 'FETCH_INITIAL_MESSAGES_FAILURE';
|
|
11
|
+
var FETCH_PREV_MESSAGES_SUCCESS = 'FETCH_PREV_MESSAGES_SUCCESS';
|
|
12
|
+
var FETCH_PREV_MESSAGES_FAILURE = 'FETCH_PREV_MESSAGES_FAILURE';
|
|
13
|
+
var FETCH_NEXT_MESSAGES_SUCCESS = 'FETCH_NEXT_MESSAGES_SUCCESS';
|
|
14
|
+
var FETCH_NEXT_MESSAGES_FAILURE = 'FETCH_NEXT_MESSAGES_FAILURE';
|
|
15
|
+
var SEND_MESSAGE_START = 'SEND_MESSAGE_START';
|
|
16
|
+
var SEND_MESSAGE_SUCCESS = 'SEND_MESSAGE_SUCCESS';
|
|
17
|
+
var SEND_MESSAGE_FAILURE = 'SEND_MESSAGE_FAILURE';
|
|
18
|
+
var RESEND_MESSAGE_START = 'RESEND_MESSAGE_START';
|
|
19
|
+
var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';
|
|
20
|
+
var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';
|
|
21
|
+
var ON_MESSAGE_THREAD_INFO_UPDATED = 'ON_MESSAGE_THREAD_INFO_UPDATED';
|
|
22
|
+
var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';
|
|
23
|
+
var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';
|
|
24
|
+
var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';
|
|
25
|
+
var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';
|
|
26
|
+
var MARK_AS_READ = 'MARK_AS_READ';
|
|
27
|
+
var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';
|
|
28
|
+
var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';
|
|
29
|
+
var MESSAGE_LIST_PARAMS_CHANGED = 'MESSAGE_LIST_PARAMS_CHANGED';
|
|
30
|
+
var ON_FILE_INFO_UPLOADED = 'ON_FILE_INFO_UPLOADED';
|
|
31
|
+
|
|
32
|
+
var channelActions = /*#__PURE__*/Object.freeze({
|
|
33
|
+
__proto__: null,
|
|
34
|
+
RESET_MESSAGES: RESET_MESSAGES,
|
|
35
|
+
FETCH_INITIAL_MESSAGES_START: FETCH_INITIAL_MESSAGES_START,
|
|
36
|
+
FETCH_INITIAL_MESSAGES_SUCCESS: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
37
|
+
FETCH_INITIAL_MESSAGES_FAILURE: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
38
|
+
FETCH_PREV_MESSAGES_SUCCESS: FETCH_PREV_MESSAGES_SUCCESS,
|
|
39
|
+
FETCH_PREV_MESSAGES_FAILURE: FETCH_PREV_MESSAGES_FAILURE,
|
|
40
|
+
FETCH_NEXT_MESSAGES_SUCCESS: FETCH_NEXT_MESSAGES_SUCCESS,
|
|
41
|
+
FETCH_NEXT_MESSAGES_FAILURE: FETCH_NEXT_MESSAGES_FAILURE,
|
|
42
|
+
SEND_MESSAGE_START: SEND_MESSAGE_START,
|
|
43
|
+
SEND_MESSAGE_SUCCESS: SEND_MESSAGE_SUCCESS,
|
|
44
|
+
SEND_MESSAGE_FAILURE: SEND_MESSAGE_FAILURE,
|
|
45
|
+
RESEND_MESSAGE_START: RESEND_MESSAGE_START,
|
|
46
|
+
ON_MESSAGE_RECEIVED: ON_MESSAGE_RECEIVED,
|
|
47
|
+
ON_MESSAGE_UPDATED: ON_MESSAGE_UPDATED,
|
|
48
|
+
ON_MESSAGE_THREAD_INFO_UPDATED: ON_MESSAGE_THREAD_INFO_UPDATED,
|
|
49
|
+
ON_MESSAGE_DELETED: ON_MESSAGE_DELETED,
|
|
50
|
+
ON_MESSAGE_DELETED_BY_REQ_ID: ON_MESSAGE_DELETED_BY_REQ_ID,
|
|
51
|
+
SET_CURRENT_CHANNEL: SET_CURRENT_CHANNEL,
|
|
52
|
+
SET_CHANNEL_INVALID: SET_CHANNEL_INVALID,
|
|
53
|
+
MARK_AS_READ: MARK_AS_READ,
|
|
54
|
+
ON_REACTION_UPDATED: ON_REACTION_UPDATED,
|
|
55
|
+
SET_EMOJI_CONTAINER: SET_EMOJI_CONTAINER,
|
|
56
|
+
MESSAGE_LIST_PARAMS_CHANGED: MESSAGE_LIST_PARAMS_CHANGED,
|
|
57
|
+
ON_FILE_INFO_UPLOADED: ON_FILE_INFO_UPLOADED
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
var PublishingModuleType;
|
|
61
|
+
(function (PublishingModuleType) {
|
|
62
|
+
PublishingModuleType["CHANNEL"] = "CHANNEL";
|
|
63
|
+
PublishingModuleType["THREAD"] = "THREAD";
|
|
64
|
+
})(PublishingModuleType || (PublishingModuleType = {}));
|
|
65
|
+
|
|
66
|
+
var getNicknamesMapFromMembers = function (members) {
|
|
67
|
+
if (members === void 0) {
|
|
68
|
+
members = [];
|
|
69
|
+
}
|
|
70
|
+
var nicknamesMap = new Map();
|
|
71
|
+
for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
|
|
72
|
+
var _a = members[memberIndex],
|
|
73
|
+
userId = _a.userId,
|
|
74
|
+
nickname = _a.nickname;
|
|
75
|
+
nicknamesMap.set(userId, nickname);
|
|
76
|
+
}
|
|
77
|
+
return nicknamesMap;
|
|
78
|
+
};
|
|
79
|
+
var getParentMessageFrom = function (message) {
|
|
80
|
+
if (!message) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
if (isParentMessage(message)) {
|
|
84
|
+
return message;
|
|
85
|
+
}
|
|
86
|
+
if (isThreadMessage(message)) {
|
|
87
|
+
return (message === null || message === void 0 ? void 0 : message.parentMessage) || null;
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
};
|
|
91
|
+
var isParentMessage = function (message) {
|
|
92
|
+
return (message === null || message === void 0 ? void 0 : message.parentMessage) === null && typeof (message === null || message === void 0 ? void 0 : message.parentMessageId) === 'number' && !(message === null || message === void 0 ? void 0 : message.parentMessageId);
|
|
93
|
+
};
|
|
94
|
+
var isThreadMessage = function (message) {
|
|
95
|
+
return (message === null || message === void 0 ? void 0 : message.parentMessage) !== null && typeof (message === null || message === void 0 ? void 0 : message.parentMessageId) === 'number' && (message === null || message === void 0 ? void 0 : message.parentMessageId) > 0 && (message === null || message === void 0 ? void 0 : message.threadInfo) === null;
|
|
96
|
+
};
|
|
97
|
+
var isAboutSame = function (a, b, px) {
|
|
98
|
+
return Math.abs(a - b) <= px;
|
|
99
|
+
};
|
|
100
|
+
var isEmpty = function (val) {
|
|
101
|
+
return val === null || val === undefined;
|
|
102
|
+
};
|
|
103
|
+
// Some Ids return string and number inconsistently
|
|
104
|
+
// only use to comapre IDs
|
|
105
|
+
function compareIds(a, b) {
|
|
106
|
+
if (isEmpty(a) || isEmpty(b)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
var aString = a.toString();
|
|
110
|
+
var bString = b.toString();
|
|
111
|
+
return aString === bString;
|
|
112
|
+
}
|
|
113
|
+
var getMessageCreatedAt = function (message) {
|
|
114
|
+
return format(message.createdAt, 'p');
|
|
115
|
+
};
|
|
116
|
+
var isReadMessage = function (channel, message) {
|
|
117
|
+
return getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ;
|
|
118
|
+
};
|
|
119
|
+
var isSameGroup = function (message, comparingMessage, currentChannel) {
|
|
120
|
+
var _a, _b, _c, _d;
|
|
121
|
+
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 ? void 0 : message.sender) && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) && (message === null || message === void 0 ? void 0 : message.createdAt) && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.createdAt) && ((_a = message === null || message === void 0 ? void 0 : message.sender) === null || _a === void 0 ? void 0 : _a.userId) && ((_b = comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) === null || _b === void 0 ? void 0 : _b.userId))) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && ((_c = message === null || message === void 0 ? void 0 : message.sender) === null || _c === void 0 ? void 0 : _c.userId) === ((_d = comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) === null || _d === void 0 ? void 0 : _d.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage) && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage);
|
|
125
|
+
};
|
|
126
|
+
var compareMessagesForGrouping = function (prevMessage, currMessage, nextMessage, currentChannel, replyType) {
|
|
127
|
+
if (replyType === 'THREAD' && (currMessage === null || currMessage === void 0 ? void 0 : currMessage.threadInfo)) {
|
|
128
|
+
return [false, false];
|
|
129
|
+
}
|
|
130
|
+
var sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
|
|
131
|
+
var isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
|
|
132
|
+
return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
|
|
133
|
+
};
|
|
134
|
+
var scrollIntoLast = function (intialTry) {
|
|
135
|
+
if (intialTry === void 0) {
|
|
136
|
+
intialTry = 0;
|
|
137
|
+
}
|
|
138
|
+
var MAX_TRIES = 10;
|
|
139
|
+
var currentTry = intialTry;
|
|
140
|
+
if (currentTry > MAX_TRIES) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
var scrollDOM = document.querySelector('.sendbird-thread-ui--scroll');
|
|
145
|
+
// eslint-disable-next-line no-multi-assign
|
|
146
|
+
scrollDOM.scrollTop = scrollDOM.scrollHeight;
|
|
147
|
+
} catch (error) {
|
|
148
|
+
setTimeout(function () {
|
|
149
|
+
scrollIntoLast(currentTry + 1);
|
|
150
|
+
}, 500 * currentTry);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* pubSub is used instead of messagesDispatcher to avoid redundantly calling
|
|
156
|
+
* because this useSendMultipleFilesMessage is used in the Channel and Thread both
|
|
157
|
+
*/
|
|
158
|
+
var useSendMultipleFilesMessage = function (_a, _b) {
|
|
159
|
+
var currentChannel = _a.currentChannel,
|
|
160
|
+
onBeforeSendMultipleFilesMessage = _a.onBeforeSendMultipleFilesMessage,
|
|
161
|
+
publishingModules = _a.publishingModules;
|
|
162
|
+
var logger = _b.logger,
|
|
163
|
+
pubSub = _b.pubSub,
|
|
164
|
+
scrollRef = _b.scrollRef;
|
|
165
|
+
var sendMessage = useCallback(function (files, quoteMessage) {
|
|
166
|
+
return new Promise(function (resolve, reject) {
|
|
167
|
+
if (!currentChannel) {
|
|
168
|
+
logger.warning('Channel: Sending MFm failed, because currentChannel is null.', {
|
|
169
|
+
currentChannel: currentChannel
|
|
170
|
+
});
|
|
171
|
+
reject();
|
|
172
|
+
}
|
|
173
|
+
if (files.length <= 1) {
|
|
174
|
+
logger.warning('Channel: Sending MFM failed, because there are no multiple files.', {
|
|
175
|
+
files: files
|
|
176
|
+
});
|
|
177
|
+
reject();
|
|
178
|
+
}
|
|
179
|
+
var messageParams = {
|
|
180
|
+
fileInfoList: files.map(function (file) {
|
|
181
|
+
return {
|
|
182
|
+
file: file,
|
|
183
|
+
fileName: file.name,
|
|
184
|
+
fileSize: file.size,
|
|
185
|
+
mimeType: file.type
|
|
186
|
+
};
|
|
187
|
+
})
|
|
188
|
+
};
|
|
189
|
+
if (quoteMessage) {
|
|
190
|
+
messageParams.isReplyToChannel = true;
|
|
191
|
+
messageParams.parentMessageId = quoteMessage.messageId;
|
|
192
|
+
}
|
|
193
|
+
if (typeof onBeforeSendMultipleFilesMessage === 'function') {
|
|
194
|
+
messageParams = onBeforeSendMultipleFilesMessage(files, quoteMessage);
|
|
195
|
+
}
|
|
196
|
+
logger.info('Channel: Start sending MFM', {
|
|
197
|
+
messageParams: messageParams
|
|
198
|
+
});
|
|
199
|
+
try {
|
|
200
|
+
currentChannel.sendMultipleFilesMessage(messageParams)
|
|
201
|
+
/**
|
|
202
|
+
* We don't operate the onFileUploaded event for now
|
|
203
|
+
* until we will add UI/UX for it
|
|
204
|
+
*/.onFileUploaded(function (requestId, index, uploadableFileInfo, error) {
|
|
205
|
+
logger.info('Channel: onFileUploaded during sending MFM', {
|
|
206
|
+
requestId: requestId,
|
|
207
|
+
index: index,
|
|
208
|
+
error: error,
|
|
209
|
+
uploadableFileInfo: uploadableFileInfo
|
|
210
|
+
});
|
|
211
|
+
pubSub.publish(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, {
|
|
212
|
+
response: {
|
|
213
|
+
channelUrl: currentChannel.url,
|
|
214
|
+
requestId: requestId,
|
|
215
|
+
index: index,
|
|
216
|
+
uploadableFileInfo: uploadableFileInfo,
|
|
217
|
+
error: error
|
|
218
|
+
},
|
|
219
|
+
publishingModules: publishingModules
|
|
220
|
+
});
|
|
221
|
+
}).onPending(function (pendingMessage) {
|
|
222
|
+
logger.info('Channel: in progress of sending MFM', {
|
|
223
|
+
pendingMessage: pendingMessage,
|
|
224
|
+
fileInfoList: messageParams.fileInfoList
|
|
225
|
+
});
|
|
226
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
227
|
+
message: pendingMessage,
|
|
228
|
+
channel: currentChannel,
|
|
229
|
+
publishingModules: publishingModules
|
|
230
|
+
});
|
|
231
|
+
// We need this delay because rendering MFM takes time due to large image files.
|
|
232
|
+
setTimeout(function () {
|
|
233
|
+
if (scrollRef && publishingModules.includes(PublishingModuleType.CHANNEL)) {
|
|
234
|
+
scrollIntoLast$1(0, scrollRef);
|
|
235
|
+
}
|
|
236
|
+
if (publishingModules.includes(PublishingModuleType.THREAD)) {
|
|
237
|
+
scrollIntoLast(0);
|
|
238
|
+
}
|
|
239
|
+
}, 100);
|
|
240
|
+
}).onFailed(function (error, failedMessage) {
|
|
241
|
+
logger.error('Channel: Sending MFM failed.', {
|
|
242
|
+
error: error,
|
|
243
|
+
failedMessage: failedMessage
|
|
244
|
+
});
|
|
245
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, {
|
|
246
|
+
channel: currentChannel,
|
|
247
|
+
message: failedMessage,
|
|
248
|
+
publishingModules: publishingModules
|
|
249
|
+
});
|
|
250
|
+
reject(error);
|
|
251
|
+
}).onSucceeded(function (succeededMessage) {
|
|
252
|
+
logger.info('Channel: Sending voice message success!', {
|
|
253
|
+
succeededMessage: succeededMessage
|
|
254
|
+
});
|
|
255
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
|
|
256
|
+
channel: currentChannel,
|
|
257
|
+
message: succeededMessage,
|
|
258
|
+
publishingModules: publishingModules
|
|
259
|
+
});
|
|
260
|
+
// We need this delay because rendering MFM takes time due to large image files.
|
|
261
|
+
setTimeout(function () {
|
|
262
|
+
if (scrollRef && publishingModules.includes(PublishingModuleType.CHANNEL)) {
|
|
263
|
+
scrollIntoLast$1(0, scrollRef);
|
|
264
|
+
}
|
|
265
|
+
if (publishingModules.includes(PublishingModuleType.THREAD)) {
|
|
266
|
+
scrollIntoLast(0);
|
|
267
|
+
}
|
|
268
|
+
}, 100);
|
|
269
|
+
resolve(succeededMessage);
|
|
270
|
+
});
|
|
271
|
+
} catch (error) {
|
|
272
|
+
logger.error('Channel: Sending MFM failed.', {
|
|
273
|
+
error: error
|
|
274
|
+
});
|
|
275
|
+
reject(error);
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}, [currentChannel, onBeforeSendMultipleFilesMessage, publishingModules]);
|
|
279
|
+
return [sendMessage];
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
export { compareMessagesForGrouping as A, FETCH_INITIAL_MESSAGES_START as F, MARK_AS_READ as M, ON_MESSAGE_RECEIVED as O, PublishingModuleType as P, RESET_MESSAGES as R, SEND_MESSAGE_START as S, FETCH_INITIAL_MESSAGES_SUCCESS as a, FETCH_PREV_MESSAGES_SUCCESS as b, FETCH_NEXT_MESSAGES_SUCCESS as c, FETCH_INITIAL_MESSAGES_FAILURE as d, FETCH_PREV_MESSAGES_FAILURE as e, FETCH_NEXT_MESSAGES_FAILURE as f, SEND_MESSAGE_SUCCESS as g, SEND_MESSAGE_FAILURE as h, SET_CURRENT_CHANNEL as i, SET_CHANNEL_INVALID as j, ON_MESSAGE_UPDATED as k, ON_MESSAGE_THREAD_INFO_UPDATED as l, RESEND_MESSAGE_START as m, ON_MESSAGE_DELETED as n, ON_MESSAGE_DELETED_BY_REQ_ID as o, SET_EMOJI_CONTAINER as p, ON_REACTION_UPDATED as q, MESSAGE_LIST_PARAMS_CHANGED as r, ON_FILE_INFO_UPLOADED as s, channelActions as t, useSendMultipleFilesMessage as u, compareIds as v, scrollIntoLast as w, getParentMessageFrom as x, getNicknamesMapFromMembers as y, isAboutSame as z };
|
|
283
|
+
//# sourceMappingURL=useSendMultipleFilesMessage-4489a0f6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSendMultipleFilesMessage-4489a0f6.js","sources":["../src/modules/Channel/context/dux/actionTypes.ts","../src/modules/internalInterfaces.ts","../src/modules/Thread/context/utils.ts","../src/modules/Channel/context/hooks/useSendMultipleFilesMessage.ts"],"sourcesContent":["import { CreateAction } from '../../../../utils/typeHelpers/reducers/createAction';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { CoreMessageType, SendableMessageType } from '../../../../utils';\nimport { EmojiContainer } from '@sendbird/chat';\nimport { ReactionEvent, UploadableFileInfo } from '@sendbird/chat/message';\nimport { MessageListParams } from '../ChannelProvider';\n\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';\nexport const FETCH_INITIAL_MESSAGES_SUCCESS = 'FETCH_INITIAL_MESSAGES_SUCCESS';\nexport const FETCH_INITIAL_MESSAGES_FAILURE = 'FETCH_INITIAL_MESSAGES_FAILURE';\nexport const FETCH_PREV_MESSAGES_SUCCESS = 'FETCH_PREV_MESSAGES_SUCCESS';\nexport const FETCH_PREV_MESSAGES_FAILURE = 'FETCH_PREV_MESSAGES_FAILURE';\nexport const FETCH_NEXT_MESSAGES_SUCCESS = 'FETCH_NEXT_MESSAGES_SUCCESS';\nexport const FETCH_NEXT_MESSAGES_FAILURE = 'FETCH_NEXT_MESSAGES_FAILURE';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_MESSAGE_SUCCESS = 'SEND_MESSAGE_SUCCESS';\nexport const SEND_MESSAGE_FAILURE = 'SEND_MESSAGE_FAILURE';\nexport const RESEND_MESSAGE_START = 'RESEND_MESSAGE_START';\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_THREAD_INFO_UPDATED = 'ON_MESSAGE_THREAD_INFO_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const MESSAGE_LIST_PARAMS_CHANGED = 'MESSAGE_LIST_PARAMS_CHANGED';\nexport const ON_FILE_INFO_UPLOADED = 'ON_FILE_INFO_UPLOADED';\n\ntype CHANNEL_PAYLOAD_TYPES = {\n [RESET_MESSAGES]: null;\n [FETCH_INITIAL_MESSAGES_START]: null;\n [FETCH_INITIAL_MESSAGES_SUCCESS]: {\n currentGroupChannel: null | GroupChannel;\n messages: CoreMessageType[];\n };\n [FETCH_PREV_MESSAGES_SUCCESS]: {\n currentGroupChannel: null | GroupChannel;\n messages: CoreMessageType[];\n };\n [FETCH_NEXT_MESSAGES_SUCCESS]: {\n currentGroupChannel: null | GroupChannel;\n messages: CoreMessageType[];\n };\n [FETCH_INITIAL_MESSAGES_FAILURE]: {\n currentGroupChannel: null | GroupChannel;\n };\n [FETCH_PREV_MESSAGES_FAILURE]: {\n currentGroupChannel: null | GroupChannel;\n };\n [FETCH_NEXT_MESSAGES_FAILURE]: {\n currentGroupChannel: null | GroupChannel;\n };\n [SEND_MESSAGE_START]: SendableMessageType;\n [SEND_MESSAGE_SUCCESS]: SendableMessageType;\n [SEND_MESSAGE_FAILURE]: SendableMessageType;\n [SET_CURRENT_CHANNEL]: null | GroupChannel;\n [SET_CHANNEL_INVALID]: null;\n [ON_MESSAGE_RECEIVED]: {\n channel: GroupChannel;\n message: SendableMessageType;\n };\n [ON_MESSAGE_UPDATED]: {\n channel: GroupChannel;\n message: SendableMessageType;\n };\n [ON_MESSAGE_THREAD_INFO_UPDATED]: {\n channel: GroupChannel;\n event: any;\n };\n [RESEND_MESSAGE_START]: {\n reqId: number;\n };\n [MARK_AS_READ]: {\n channel: null | GroupChannel;\n };\n [ON_MESSAGE_DELETED]: MessageId;\n [ON_MESSAGE_DELETED_BY_REQ_ID]: RequestId;\n [SET_EMOJI_CONTAINER]: EmojiContainer;\n [ON_REACTION_UPDATED]: ReactionEvent;\n [MESSAGE_LIST_PARAMS_CHANGED]: MessageListParams;\n [ON_FILE_INFO_UPLOADED]: {\n channelUrl: string;\n requestId: number;\n index: number;\n uploadableFileInfo: UploadableFileInfo;\n error?: unknown;\n };\n};\n\ntype MessageId = number;\ntype RequestId = string;\n\nexport type ChannelActionTypes = CreateAction<CHANNEL_PAYLOAD_TYPES>;\n","export enum PublishingModuleType {\n CHANNEL = 'CHANNEL',\n THREAD = 'THREAD',\n}\n","import format from 'date-fns/format';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { BaseMessage } from '@sendbird/chat/message';\nimport { getOutgoingMessageState, OutgoingMessageStates } from '../../../utils/exports/getOutgoingMessageState';\nimport { SendableMessageType } from '../../../utils';\n\nexport const getNicknamesMapFromMembers = (members = []): Map<string, string> => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getParentMessageFrom = (message: SendableMessageType | null): SendableMessageType | BaseMessage => {\n if (!message) {\n return null;\n }\n if (isParentMessage(message)) {\n return message;\n }\n if (isThreadMessage(message)) {\n return message?.parentMessage || null;\n }\n return null;\n};\n\nexport const isParentMessage = (message: SendableMessageType): boolean => {\n return (\n message?.parentMessage === null\n && typeof message?.parentMessageId === 'number'\n && !message?.parentMessageId\n );\n};\n\nexport const isThreadMessage = (message: SendableMessageType): boolean => {\n return (\n message?.parentMessage !== null\n && typeof message?.parentMessageId === 'number'\n && message?.parentMessageId > 0\n && message?.threadInfo === null\n );\n};\n\nexport const isAboutSame = (a: number, b: number, px: number): boolean => (Math.abs(a - b) <= px);\n\nexport const isEmpty = (val: unknown): boolean => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport function compareIds(a: number | string, b: number | string): boolean {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n\nexport const getMessageCreatedAt = (message: SendableMessageType): string => format(message.createdAt, 'p');\nexport const isReadMessage = (channel: GroupChannel, message: SendableMessageType): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isSameGroup = (\n message: SendableMessageType,\n comparingMessage: SendableMessageType,\n currentChannel: GroupChannel,\n): boolean => {\n if (!(message\n && comparingMessage\n && message.messageType\n && message.messageType !== 'admin'\n && comparingMessage.messageType\n && comparingMessage?.messageType !== 'admin'\n && message?.sender\n && comparingMessage?.sender\n && message?.createdAt\n && comparingMessage?.createdAt\n && message?.sender?.userId\n && comparingMessage?.sender?.userId\n )) {\n return false;\n }\n return (\n message?.sendingStatus === comparingMessage?.sendingStatus\n && message?.sender?.userId === comparingMessage?.sender?.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendableMessageType,\n currMessage: SendableMessageType,\n nextMessage: SendableMessageType,\n currentChannel: GroupChannel,\n replyType: string,\n): [boolean, boolean] => {\n if (replyType === 'THREAD' && currMessage?.threadInfo) {\n return [false, false];\n }\n const sendingStatus = currMessage?.sendingStatus || '';\n const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';\n return [\n isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable,\n isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable,\n ];\n};\n\nexport const scrollIntoLast = (intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const scrollDOM = document.querySelector('.sendbird-thread-ui--scroll');\n // eslint-disable-next-line no-multi-assign\n scrollDOM.scrollTop = scrollDOM.scrollHeight;\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(currentTry + 1);\n }, 500 * currentTry);\n }\n};\n","import { useCallback } from 'react';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { MultipleFilesMessageCreateParams, UploadableFileInfo } from '@sendbird/chat/message';\nimport { MultipleFilesMessage } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport type { Nullable } from '../../../../types';\nimport PUBSUB_TOPICS from '../../../../lib/pubSub/topics';\nimport { scrollIntoLast as scrollIntoLastForChannel } from '../utils';\nimport { SendableMessageType } from '../../../../utils';\nimport { PublishingModuleType } from '../../../internalInterfaces';\nimport { scrollIntoLast as scrollIntoLastForThread } from '../../../Thread/context/utils';\n\nexport type OnBeforeSendMFMType = (\n files: Array<File>,\n quoteMessage?: SendableMessageType,\n) => MultipleFilesMessageCreateParams;\n\nexport interface UseSendMFMDynamicParams {\n currentChannel: Nullable<GroupChannel>;\n onBeforeSendMultipleFilesMessage?: OnBeforeSendMFMType;\n publishingModules: PublishingModuleType[];\n}\nexport interface UseSendMFMStaticParams {\n logger: Logger,\n pubSub: any,\n scrollRef?: React.RefObject<HTMLDivElement>;\n}\nexport interface FileUploadedPayload {\n channelUrl: string,\n requestId: string,\n index: number,\n uploadableFileInfo: UploadableFileInfo,\n error: Error,\n}\nexport type SendMFMFunctionType = (files: Array<File>, quoteMessage?: SendableMessageType) => Promise<MultipleFilesMessage>;\n\n/**\n * pubSub is used instead of messagesDispatcher to avoid redundantly calling\n * because this useSendMultipleFilesMessage is used in the Channel and Thread both\n */\nexport const useSendMultipleFilesMessage = ({\n currentChannel,\n onBeforeSendMultipleFilesMessage,\n publishingModules,\n}: UseSendMFMDynamicParams, {\n logger,\n pubSub,\n scrollRef,\n}: UseSendMFMStaticParams): Array<SendMFMFunctionType> => {\n const sendMessage = useCallback((\n files: Array<File>,\n quoteMessage?: SendableMessageType,\n ): Promise<MultipleFilesMessage> => {\n return new Promise((resolve, reject) => {\n if (!currentChannel) {\n logger.warning('Channel: Sending MFm failed, because currentChannel is null.', { currentChannel });\n reject();\n }\n if (files.length <= 1) {\n logger.warning('Channel: Sending MFM failed, because there are no multiple files.', { files });\n reject();\n }\n let messageParams: MultipleFilesMessageCreateParams = {\n fileInfoList: files.map((file: File): UploadableFileInfo => ({\n file,\n fileName: file.name,\n fileSize: file.size,\n mimeType: file.type,\n })),\n };\n if (quoteMessage) {\n messageParams.isReplyToChannel = true;\n messageParams.parentMessageId = quoteMessage.messageId;\n }\n if (typeof onBeforeSendMultipleFilesMessage === 'function') {\n messageParams = onBeforeSendMultipleFilesMessage(files, quoteMessage);\n }\n logger.info('Channel: Start sending MFM', { messageParams });\n try {\n currentChannel.sendMultipleFilesMessage(messageParams)\n /**\n * We don't operate the onFileUploaded event for now\n * until we will add UI/UX for it\n */\n .onFileUploaded((requestId, index, uploadableFileInfo: UploadableFileInfo, error) => {\n logger.info('Channel: onFileUploaded during sending MFM', {\n requestId,\n index,\n error,\n uploadableFileInfo,\n });\n pubSub.publish(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, {\n response: {\n channelUrl: currentChannel.url,\n requestId,\n index,\n uploadableFileInfo,\n error,\n },\n publishingModules,\n });\n })\n .onPending((pendingMessage: MultipleFilesMessage) => {\n logger.info('Channel: in progress of sending MFM', { pendingMessage, fileInfoList: messageParams.fileInfoList });\n pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {\n message: pendingMessage,\n channel: currentChannel,\n publishingModules,\n });\n // We need this delay because rendering MFM takes time due to large image files.\n setTimeout(() => {\n if (scrollRef && publishingModules.includes(PublishingModuleType.CHANNEL)) {\n scrollIntoLastForChannel(0, scrollRef);\n }\n if (publishingModules.includes(PublishingModuleType.THREAD)) {\n scrollIntoLastForThread(0);\n }\n }, 100);\n })\n .onFailed((error, failedMessage: MultipleFilesMessage) => {\n logger.error('Channel: Sending MFM failed.', { error, failedMessage });\n pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, {\n channel: currentChannel,\n message: failedMessage,\n publishingModules,\n });\n reject(error);\n })\n .onSucceeded((succeededMessage: MultipleFilesMessage) => {\n logger.info('Channel: Sending voice message success!', { succeededMessage });\n pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {\n channel: currentChannel,\n message: succeededMessage,\n publishingModules,\n });\n // We need this delay because rendering MFM takes time due to large image files.\n setTimeout(() => {\n if (scrollRef && publishingModules.includes(PublishingModuleType.CHANNEL)) {\n scrollIntoLastForChannel(0, scrollRef);\n }\n if (publishingModules.includes(PublishingModuleType.THREAD)) {\n scrollIntoLastForThread(0);\n }\n }, 100);\n resolve(succeededMessage);\n });\n } catch (error) {\n logger.error('Channel: Sending MFM failed.', { error });\n reject(error);\n }\n });\n }, [\n currentChannel,\n onBeforeSendMultipleFilesMessage,\n publishingModules,\n ]);\n return [sendMessage];\n};\n"],"names":["RESET_MESSAGES","FETCH_INITIAL_MESSAGES_START","FETCH_INITIAL_MESSAGES_SUCCESS","FETCH_INITIAL_MESSAGES_FAILURE","FETCH_PREV_MESSAGES_SUCCESS","FETCH_PREV_MESSAGES_FAILURE","FETCH_NEXT_MESSAGES_SUCCESS","FETCH_NEXT_MESSAGES_FAILURE","SEND_MESSAGE_START","SEND_MESSAGE_SUCCESS","SEND_MESSAGE_FAILURE","RESEND_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_THREAD_INFO_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","MESSAGE_LIST_PARAMS_CHANGED","ON_FILE_INFO_UPLOADED","PublishingModuleType","getNicknamesMapFromMembers","members","nicknamesMap","Map","memberIndex","length","_a","userId","nickname","set","getParentMessageFrom","message","isParentMessage","isThreadMessage","parentMessage","parentMessageId","threadInfo","isAboutSame","a","b","px","Math","abs","isEmpty","val","undefined","compareIds","aString","toString","bString","getMessageCreatedAt","format","createdAt","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isSameGroup","comparingMessage","currentChannel","messageType","sender","_b","sendingStatus","_c","_d","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","replyType","isAcceptable","scrollIntoLast","intialTry","MAX_TRIES","currentTry","scrollDOM","document","querySelector","scrollTop","scrollHeight","error","setTimeout","useSendMultipleFilesMessage","onBeforeSendMultipleFilesMessage","publishingModules","logger","pubSub","scrollRef","sendMessage","useCallback","files","quoteMessage","Promise","resolve","reject","warning","messageParams","fileInfoList","map","file","fileName","name","fileSize","size","mimeType","type","isReplyToChannel","messageId","info","sendMultipleFilesMessage","onFileUploaded","requestId","index","uploadableFileInfo","publish","PUBSUB_TOPICS","response","channelUrl","url","onPending","pendingMessage","includes","CHANNEL","scrollIntoLastForChannel","THREAD","scrollIntoLastForThread","onFailed","failedMessage","SEND_MESSAGE_FAILED","onSucceeded","succeededMessage","SEND_FILE_MESSAGE"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useContext } from 'react';
|
|
2
2
|
import { SendbirdSdkContext } from './withSendbird.js';
|
|
3
|
-
import './
|
|
3
|
+
import './tslib.es6-0c779aab.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Example:
|
|
@@ -10,10 +10,12 @@ import './_rollupPluginBabelHelpers-50c9576f.js';
|
|
|
10
10
|
* return (<div>...</div>);
|
|
11
11
|
* }
|
|
12
12
|
*/
|
|
13
|
+
var NO_CONTEXT_ERROR = 'No sendbird state value available. Make sure you are rendering `<SendbirdProvider>` at the top of your app.';
|
|
13
14
|
function useSendbirdStateContext() {
|
|
14
|
-
|
|
15
|
+
var context = useContext(SendbirdSdkContext);
|
|
16
|
+
if (!context) throw new Error(NO_CONTEXT_ERROR);
|
|
15
17
|
return context;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
export { useSendbirdStateContext as default };
|
|
20
|
+
export { useSendbirdStateContext as default, useSendbirdStateContext };
|
|
19
21
|
//# sourceMappingURL=useSendbirdStateContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSendbirdStateContext.js","sources":["../src/hooks/useSendbirdStateContext.tsx"],"sourcesContent":["/**\n * Example:\n * const MyComponent = () => {\n * const context = useSendbirdStateContext();\n * const sdk = sendbirdSelectors.getSdk(context);\n * return (<div>...</div>);\n * }\n */\nimport { useContext } from 'react';\n\nimport { SendbirdSdkContext } from '../lib/SendbirdSdkContext';\nimport { SendBirdState } from '../lib/types';\n\
|
|
1
|
+
{"version":3,"file":"useSendbirdStateContext.js","sources":["../src/hooks/useSendbirdStateContext.tsx"],"sourcesContent":["/**\n * Example:\n * const MyComponent = () => {\n * const context = useSendbirdStateContext();\n * const sdk = sendbirdSelectors.getSdk(context);\n * return (<div>...</div>);\n * }\n */\nimport { useContext } from 'react';\n\nimport { SendbirdSdkContext } from '../lib/SendbirdSdkContext';\nimport { SendBirdState } from '../lib/types';\n\nconst NO_CONTEXT_ERROR = 'No sendbird state value available. Make sure you are rendering `<SendbirdProvider>` at the top of your app.';\n\nexport function useSendbirdStateContext(): SendBirdState {\n const context = useContext(SendbirdSdkContext);\n if (!context) throw new Error(NO_CONTEXT_ERROR);\n return context;\n}\n\nexport default useSendbirdStateContext;\n"],"names":["NO_CONTEXT_ERROR","useSendbirdStateContext","context","useContext","SendbirdSdkContext","Error"],"mappings":";;;;AAAA;;;;;;;AAOG;AAMH,IAAMA,gBAAgB,GAAG,6GAA6G,CAAA;SAEtHC,uBAAuBA,GAAA;AACrC,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACC,kBAAkB,CAAC,CAAA;EAC9C,IAAI,CAACF,OAAO,EAAE,MAAM,IAAIG,KAAK,CAACL,gBAAgB,CAAC,CAAA;AAC/C,EAAA,OAAOE,OAAO,CAAA;AAChB;;;;"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import React__default, { useState, useMemo, useEffect } from 'react';
|
|
2
|
+
import Icon, { IconTypes, IconColors } from './ui/Icon.js';
|
|
3
|
+
import { SendingStatus } from '@sendbird/chat/message';
|
|
4
|
+
import ImageRenderer, { getBorderRadiusForMultipleImageRenderer } from './ui/ImageRenderer.js';
|
|
5
|
+
import { o as getClassName, j as isGif, c as isMultipleFilesMessage } from './index-fc1642cb.js';
|
|
6
|
+
import { F as FileViewer } from './index-7a1085b6.js';
|
|
7
|
+
import { K } from './index-c6095960.js';
|
|
8
|
+
|
|
9
|
+
function ImageGrid(_a) {
|
|
10
|
+
var _b;
|
|
11
|
+
var children = _a.children,
|
|
12
|
+
className = _a.className,
|
|
13
|
+
message = _a.message,
|
|
14
|
+
isReactionEnabled = _a.isReactionEnabled;
|
|
15
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
16
|
+
className: "sendbird-image-grid-wrap"
|
|
17
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
18
|
+
className: getClassName([className, 'sendbird-image-grid', isReactionEnabled && ((_b = message === null || message === void 0 ? void 0 : message.reactions) === null || _b === void 0 ? void 0 : _b.length) > 0 ? 'reactions' : ''])
|
|
19
|
+
}, children));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var GRID_WIDTH_CHAT_WEB = 400;
|
|
23
|
+
var GRID_SIDE_PADDING = 8;
|
|
24
|
+
var GRID_GAP = 4;
|
|
25
|
+
var TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 54;
|
|
26
|
+
var PROFILE_IMAGE_WIDTH = 40;
|
|
27
|
+
var CHAT_MOBILE_SIDE_PADDING = 48;
|
|
28
|
+
var THREAD_PARENT_WIDTH = 320;
|
|
29
|
+
var THREAD_PARENT_SIDE_PADDING = 28;
|
|
30
|
+
var THREAD_PARENT_GRID_MARGIN_LEFT = 12;
|
|
31
|
+
var THREAD_CHILD_WIDTH = 200;
|
|
32
|
+
var THREAD_CHILD_SIDE_PADDING = 8;
|
|
33
|
+
var THREAD_CHILD_MOBILE_SIDE_PADDING = 32;
|
|
34
|
+
var THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN = 60;
|
|
35
|
+
var MULTIPLE_FILES_IMAGE_SIDE_LENGTH = {
|
|
36
|
+
CHAT_WEB: "calc(".concat(GRID_WIDTH_CHAT_WEB / 2, "px - ").concat((GRID_SIDE_PADDING + GRID_GAP) / 2, "px)"),
|
|
37
|
+
CHAT_MOBILE: "calc(50vw - ".concat((CHAT_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2, "px)"),
|
|
38
|
+
THREAD_PARENT_WEB: "calc(".concat((THREAD_PARENT_WIDTH - (THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP)) / 2, "px)"),
|
|
39
|
+
THREAD_PARENT_MOBILE: "calc(50vw - ".concat((THREAD_PARENT_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_PARENT_GRID_MARGIN_LEFT + GRID_GAP) / 2, "px)"),
|
|
40
|
+
THREAD_CHILD_WEB: "calc(".concat((THREAD_CHILD_WIDTH - THREAD_CHILD_SIDE_PADDING - GRID_GAP) / 2, "px)"),
|
|
41
|
+
THREAD_CHILD_MOBILE: "calc(50vw - ".concat((THREAD_CHILD_MOBILE_SIDE_PADDING + PROFILE_IMAGE_WIDTH + THREAD_CHILD_MOBILE_TIMESTAMP_WIDTH_AND_ITS_SIDE_MARGIN + GRID_SIDE_PADDING + GRID_GAP) / 2, "px)")
|
|
42
|
+
};
|
|
43
|
+
var MULTIPLE_FILES_IMAGE_BORDER_RADIUS = {
|
|
44
|
+
CHAT_WEB: '6px',
|
|
45
|
+
CHAT_MOBILE: '6px',
|
|
46
|
+
THREAD_PARENT_WEB: '6px',
|
|
47
|
+
THREAD_PARENT_MOBILE: '6px',
|
|
48
|
+
THREAD_CHILD_WEB: '6px',
|
|
49
|
+
THREAD_CHILD_MOBILE: '6px'
|
|
50
|
+
};
|
|
51
|
+
var MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH = '34px';
|
|
52
|
+
|
|
53
|
+
var ThreadMessageKind = {
|
|
54
|
+
PARENT: 'parent',
|
|
55
|
+
CHILD: 'child'
|
|
56
|
+
};
|
|
57
|
+
function MultipleFilesMessageItemBody(_a) {
|
|
58
|
+
var className = _a.className,
|
|
59
|
+
message = _a.message,
|
|
60
|
+
_b = _a.isReactionEnabled,
|
|
61
|
+
isReactionEnabled = _b === void 0 ? false : _b,
|
|
62
|
+
threadMessageKindKey = _a.threadMessageKindKey,
|
|
63
|
+
_c = _a.statefulFileInfoList,
|
|
64
|
+
statefulFileInfoList = _c === void 0 ? [] : _c;
|
|
65
|
+
var _d = useState(-1),
|
|
66
|
+
currentFileViewerIndex = _d[0],
|
|
67
|
+
setCurrentFileViewerIndex = _d[1];
|
|
68
|
+
function onClose() {
|
|
69
|
+
setCurrentFileViewerIndex(-1);
|
|
70
|
+
}
|
|
71
|
+
function onClickLeft() {
|
|
72
|
+
setCurrentFileViewerIndex(currentFileViewerIndex === 0 ? statefulFileInfoList.length - 1 : currentFileViewerIndex - 1);
|
|
73
|
+
}
|
|
74
|
+
function onClickRight() {
|
|
75
|
+
setCurrentFileViewerIndex(currentFileViewerIndex === statefulFileInfoList.length - 1 ? 0 : currentFileViewerIndex + 1);
|
|
76
|
+
}
|
|
77
|
+
return threadMessageKindKey && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, currentFileViewerIndex > -1 && /*#__PURE__*/React__default.createElement(FileViewer, {
|
|
78
|
+
message: message,
|
|
79
|
+
statefulFileInfoList: statefulFileInfoList,
|
|
80
|
+
currentIndex: currentFileViewerIndex,
|
|
81
|
+
onClickLeft: onClickLeft,
|
|
82
|
+
onClickRight: onClickRight,
|
|
83
|
+
onClose: onClose
|
|
84
|
+
}), /*#__PURE__*/React__default.createElement(ImageGrid, {
|
|
85
|
+
className: className,
|
|
86
|
+
message: message,
|
|
87
|
+
isReactionEnabled: isReactionEnabled
|
|
88
|
+
}, statefulFileInfoList.map(function (fileInfo, index) {
|
|
89
|
+
var isGifValue = isGif(fileInfo.mimeType);
|
|
90
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
91
|
+
className: "sendbird-multiple-files-image-renderer-wrapper",
|
|
92
|
+
onClick: message.sendingStatus === SendingStatus.SUCCEEDED ? function () {
|
|
93
|
+
return setCurrentFileViewerIndex(index);
|
|
94
|
+
} : undefined,
|
|
95
|
+
key: "sendbird-multiple-files-image-renderer-".concat(index, "-").concat(fileInfo.url)
|
|
96
|
+
}, /*#__PURE__*/React__default.createElement(ImageRenderer, {
|
|
97
|
+
url: fileInfo.url,
|
|
98
|
+
fixedSize: false,
|
|
99
|
+
width: MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey],
|
|
100
|
+
maxSideLength: MULTIPLE_FILES_IMAGE_SIDE_LENGTH.CHAT_WEB,
|
|
101
|
+
height: MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey],
|
|
102
|
+
borderRadius: getBorderRadiusForMultipleImageRenderer(MULTIPLE_FILES_IMAGE_BORDER_RADIUS[threadMessageKindKey], index, statefulFileInfoList.length),
|
|
103
|
+
shadeOnHover: true,
|
|
104
|
+
isUploaded: !!fileInfo.isUploaded,
|
|
105
|
+
placeHolder: function (style_) {
|
|
106
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
107
|
+
className: "sendbird-multiple-files-image-renderer__thumbnail__placeholder",
|
|
108
|
+
style: style_
|
|
109
|
+
}, isGifValue ? /*#__PURE__*/React__default.createElement("div", {
|
|
110
|
+
className: "sendbird-multiple-files-image-renderer__thumbnail__placeholder__icon"
|
|
111
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
112
|
+
type: IconTypes.GIF,
|
|
113
|
+
fillColor: IconColors.THUMBNAIL_ICON,
|
|
114
|
+
width: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,
|
|
115
|
+
height: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH
|
|
116
|
+
})) : /*#__PURE__*/React__default.createElement(Icon, {
|
|
117
|
+
type: IconTypes.PHOTO,
|
|
118
|
+
fillColor: IconColors.ON_BACKGROUND_2,
|
|
119
|
+
width: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,
|
|
120
|
+
height: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH
|
|
121
|
+
}));
|
|
122
|
+
},
|
|
123
|
+
defaultComponent: /*#__PURE__*/React__default.createElement("div", {
|
|
124
|
+
className: "sendbird-multiple-files-image-renderer__thumbnail__placeholder"
|
|
125
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
126
|
+
type: IconTypes.THUMBNAIL_NONE,
|
|
127
|
+
fillColor: IconColors.ON_BACKGROUND_2,
|
|
128
|
+
width: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,
|
|
129
|
+
height: MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH
|
|
130
|
+
}))
|
|
131
|
+
}));
|
|
132
|
+
})));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function useThreadMessageKindKeySelector(_a) {
|
|
136
|
+
var threadMessageKind = _a.threadMessageKind,
|
|
137
|
+
isMobile = _a.isMobile;
|
|
138
|
+
var threadMessageKindKey = useMemo(function () {
|
|
139
|
+
return K(threadMessageKind).with(ThreadMessageKind.PARENT, function () {
|
|
140
|
+
return isMobile ? 'THREAD_PARENT_MOBILE' : 'THREAD_PARENT_WEB';
|
|
141
|
+
}).with(ThreadMessageKind.CHILD, function () {
|
|
142
|
+
return isMobile ? 'THREAD_CHILD_MOBILE' : 'THREAD_CHILD_WEB';
|
|
143
|
+
}).otherwise(function () {
|
|
144
|
+
return isMobile ? 'CHAT_MOBILE' : 'CHAT_WEB';
|
|
145
|
+
});
|
|
146
|
+
}, [isMobile, threadMessageKind]);
|
|
147
|
+
return threadMessageKindKey;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function createStatefulFileInfoList(message, oldStatefulFileInfoList) {
|
|
151
|
+
var _a;
|
|
152
|
+
if (!message) return null;
|
|
153
|
+
// Handle sent messages.
|
|
154
|
+
if (message.sendingStatus === SendingStatus.SUCCEEDED) {
|
|
155
|
+
return message.fileInfoList.map(function (fileInfo) {
|
|
156
|
+
return {
|
|
157
|
+
fileName: fileInfo.fileName,
|
|
158
|
+
fileSize: fileInfo.fileSize,
|
|
159
|
+
mimeType: fileInfo.mimeType,
|
|
160
|
+
thumbnails: fileInfo.thumbnails,
|
|
161
|
+
url: fileInfo.url,
|
|
162
|
+
isUploaded: true
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
// Handle unsent message.
|
|
167
|
+
if (!Array.isArray((_a = message.messageParams) === null || _a === void 0 ? void 0 : _a.fileInfoList)) return null;
|
|
168
|
+
return message.messageParams.fileInfoList.map(function (fileInfo, index) {
|
|
169
|
+
var _a, _b, _c;
|
|
170
|
+
return {
|
|
171
|
+
fileName: fileInfo.fileName,
|
|
172
|
+
fileSize: fileInfo.fileSize,
|
|
173
|
+
mimeType: fileInfo.mimeType,
|
|
174
|
+
/**
|
|
175
|
+
* Note here, we prioritize using fileUrl (implying uploaded state) over file.
|
|
176
|
+
* This is necessary because cache loaded pending/failed mfms is mixed with
|
|
177
|
+
* files (not yet uploaded ones) and fileUrls (uploaded).
|
|
178
|
+
*
|
|
179
|
+
* Notice that if file is used in the old state, it will not be replace with the new fileUrl
|
|
180
|
+
* because doing so will rerender the ImageRenderer component which makes rendering process awkward and slow.
|
|
181
|
+
* */
|
|
182
|
+
url: (_c = (_b = (_a = oldStatefulFileInfoList[index]) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : fileInfo.fileUrl) !== null && _c !== void 0 ? _c : fileInfo.file instanceof Blob ? URL.createObjectURL(fileInfo.file) : undefined,
|
|
183
|
+
/**
|
|
184
|
+
* Side note: It was a bad design to not include this property by SDK.
|
|
185
|
+
* Because if original object has fileUrl set and no file, then uploaded result remains
|
|
186
|
+
* the same so customer cannot know whether it has been uploaded or not.
|
|
187
|
+
*/
|
|
188
|
+
isUploaded: !fileInfo.file && typeof fileInfo.fileUrl === 'string' && fileInfo.fileUrl.length > 0
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
var useStatefulFileInfoList = function (message) {
|
|
194
|
+
var _a, _b, _c;
|
|
195
|
+
var _d = useState([]),
|
|
196
|
+
statefulFileInfoList = _d[0],
|
|
197
|
+
setStatefulFileInfoList = _d[1];
|
|
198
|
+
useEffect(function () {
|
|
199
|
+
if (isMultipleFilesMessage(message)) {
|
|
200
|
+
var newStatefulFileInfoList = createStatefulFileInfoList(message, statefulFileInfoList);
|
|
201
|
+
setStatefulFileInfoList(newStatefulFileInfoList);
|
|
202
|
+
}
|
|
203
|
+
}, [
|
|
204
|
+
// Sent message dependency.
|
|
205
|
+
(_a = message.fileInfoList) === null || _a === void 0 ? void 0 : _a.length,
|
|
206
|
+
// Unsent message dependency.
|
|
207
|
+
/**
|
|
208
|
+
* Side note: It was a bad design to not include 'isUploaded' property by SDK.
|
|
209
|
+
* Because if original object has fileUrl set and no file, then uploaded result remains
|
|
210
|
+
* the same so customer cannot know whether it has been uploaded or not.
|
|
211
|
+
*/
|
|
212
|
+
(_c = (_b = message.messageParams) === null || _b === void 0 ? void 0 : _b.fileInfoList) === null || _c === void 0 ? void 0 : _c.map(function (fileInfo) {
|
|
213
|
+
return fileInfo.fileUrl;
|
|
214
|
+
}).join(',')]);
|
|
215
|
+
return statefulFileInfoList;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
export { MultipleFilesMessageItemBody as M, ThreadMessageKind as T, useStatefulFileInfoList as a, useThreadMessageKindKeySelector as u };
|
|
219
|
+
//# sourceMappingURL=useStatefulFileInfoList-dd95f949.js.map
|