@sendbird/uikit-react 3.6.8 → 3.6.9
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 +66 -57
- package/App.js.map +1 -1
- package/CHANGELOG.md +167 -0
- package/Channel/components/ChannelHeader.js +22 -20
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +48 -42
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +18 -16
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +42 -37
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +48 -35
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +44 -38
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +25 -21
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +20 -18
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +18 -16
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +15 -13
- package/Channel/context.js.map +1 -1
- package/Channel/utils/compareMessagesForGrouping.js +7 -6
- package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/Channel/utils/getMessagePartsInfo.js +8 -7
- package/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/Channel.js +50 -42
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +16 -15
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +33 -31
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +31 -29
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +16 -15
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +9 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +33 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-63f3007c.js → ChannelListProvider-ba11ee5f.js} +8 -8
- package/{ChannelListProvider-63f3007c.js.map → ChannelListProvider-ba11ee5f.js.map} +1 -1
- package/{ChannelProvider-d6dedff9.js → ChannelProvider-7400e8f6.js} +67 -24
- package/ChannelProvider-7400e8f6.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +14 -12
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +15 -13
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +14 -13
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +16 -15
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +11 -10
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +14 -13
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -17
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +15 -14
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +16 -15
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +13 -12
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +15 -14
- package/CreateChannel.js.map +1 -1
- package/{CreateChannelProvider-32ceb13a.js → CreateChannelProvider-b2487387.js} +1 -1
- package/{CreateChannelProvider-32ceb13a.js.map → CreateChannelProvider-b2487387.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +11 -9
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile.js +14 -13
- package/EditUserProfile.js.map +1 -1
- package/{LocalizationContext-9a9a0064.js → LocalizationContext-c9b218d4.js} +3 -3
- package/{LocalizationContext-9a9a0064.js.map → LocalizationContext-c9b218d4.js.map} +1 -1
- package/{MediaQueryContext-aebb709a.js → MediaQueryContext-532b0a77.js} +1 -1
- package/{MediaQueryContext-aebb709a.js.map → MediaQueryContext-532b0a77.js.map} +1 -1
- package/{MemberList-54496842.js → MemberList-15511dd2.js} +7 -6
- package/{MemberList-54496842.js.map → MemberList-15511dd2.js.map} +1 -1
- package/Message/hooks/useDirtyGetMentions.js +1 -1
- package/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +13 -11
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +13 -11
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +20 -20
- package/OpenChannel/components/OpenChannelMessage.js +35 -32
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +34 -33
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +34 -33
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +34 -33
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +15 -13
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-6f1599b7.js → OpenChannelListProvider-a79c47d4.js} +3 -3
- package/{OpenChannelListProvider-6f1599b7.js.map → OpenChannelListProvider-a79c47d4.js.map} +1 -1
- package/{OpenChannelProvider-8fdab056.js → OpenChannelProvider-4f21a22d.js} +13 -8
- package/OpenChannelProvider-4f21a22d.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +16 -14
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +18 -17
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +19 -18
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +7 -0
- package/{RemoveMessageModal-715f4bd6.js → RemoveMessageModal-62276928.js} +7 -5
- package/RemoveMessageModal-62276928.js.map +1 -0
- package/SendbirdProvider.js +43 -24
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +39 -36
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +33 -23
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +43 -39
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +50 -40
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +48 -35
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +48 -43
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context.js +12 -8
- package/Thread/context.js.map +1 -1
- package/Thread.js +58 -44
- package/Thread.js.map +1 -1
- package/{ThreadProvider-696e3a32.js → ThreadProvider-593b6c29.js} +61 -15
- package/ThreadProvider-593b6c29.js.map +1 -0
- package/{UserProfileContext-9fba7a03.js → UserProfileContext-36e341fd.js} +1 -1
- package/{UserProfileContext-9fba7a03.js.map → UserProfileContext-36e341fd.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +12 -10
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +13 -11
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +11 -9
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/{WebAudioUtils-ba28e2b0.js → WebAudioUtils-ca6a01e4.js} +2 -2
- package/{WebAudioUtils-ba28e2b0.js.map → WebAudioUtils-ca6a01e4.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-0f2ee8c1.js → _rollupPluginBabelHelpers-ea73a031.js} +1 -1
- package/_rollupPluginBabelHelpers-ea73a031.js.map +1 -0
- package/{actionTypes-670a9a48.js → actionTypes-bd59e881.js} +1 -1
- package/{actionTypes-670a9a48.js.map → actionTypes-bd59e881.js.map} +1 -1
- package/cjs/App.js +66 -57
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +22 -20
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +48 -42
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +18 -16
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +42 -37
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +49 -36
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +44 -38
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +25 -21
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +20 -18
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +18 -16
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +15 -13
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -6
- package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/cjs/Channel/utils/getMessagePartsInfo.js +8 -7
- package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/cjs/Channel.js +50 -42
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +16 -15
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +33 -31
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +31 -29
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +16 -15
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +9 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +33 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-1506b1fa.js → ChannelListProvider-69db317f.js} +8 -8
- package/cjs/{ChannelListProvider-1506b1fa.js.map → ChannelListProvider-69db317f.js.map} +1 -1
- package/cjs/{ChannelProvider-c8bc29d3.js → ChannelProvider-2ee005bc.js} +67 -24
- package/cjs/ChannelProvider-2ee005bc.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +14 -12
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +15 -13
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +15 -14
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +19 -18
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +11 -10
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +14 -13
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -17
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +15 -14
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +16 -15
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +13 -12
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +15 -14
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/{CreateChannelProvider-f30302a5.js → CreateChannelProvider-1c4d626c.js} +1 -1
- package/cjs/{CreateChannelProvider-f30302a5.js.map → CreateChannelProvider-1c4d626c.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +11 -9
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile.js +14 -13
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-9c99457f.js → LocalizationContext-eb7a59da.js} +3 -3
- package/cjs/{LocalizationContext-9c99457f.js.map → LocalizationContext-eb7a59da.js.map} +1 -1
- package/cjs/{MediaQueryContext-a5c77095.js → MediaQueryContext-ca045060.js} +1 -1
- package/cjs/{MediaQueryContext-a5c77095.js.map → MediaQueryContext-ca045060.js.map} +1 -1
- package/cjs/{MemberList-166dd7de.js → MemberList-eea5c64b.js} +8 -7
- package/cjs/{MemberList-166dd7de.js.map → MemberList-eea5c64b.js.map} +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +13 -11
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +13 -11
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
- package/cjs/OpenChannel/components/OpenChannelMessage.js +35 -32
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -33
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +34 -33
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +34 -33
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +15 -13
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/{OpenChannelListProvider-74ae7138.js → OpenChannelListProvider-25a0f74d.js} +3 -3
- package/cjs/{OpenChannelListProvider-74ae7138.js.map → OpenChannelListProvider-25a0f74d.js.map} +1 -1
- package/cjs/{OpenChannelProvider-57c10c09.js → OpenChannelProvider-036e515e.js} +13 -8
- package/cjs/OpenChannelProvider-036e515e.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +16 -14
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +22 -21
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +19 -18
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-029b1c86.js → RemoveMessageModal-7ed24af4.js} +7 -5
- package/cjs/RemoveMessageModal-7ed24af4.js.map +1 -0
- package/cjs/SendbirdProvider.js +43 -24
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +39 -36
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +33 -23
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +43 -39
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +53 -43
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +49 -36
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +48 -43
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context.js +12 -8
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +58 -44
- package/cjs/Thread.js.map +1 -1
- package/cjs/{ThreadProvider-9dfc3ad5.js → ThreadProvider-4c93de8a.js} +61 -15
- package/cjs/ThreadProvider-4c93de8a.js.map +1 -0
- package/cjs/{UserProfileContext-1f226141.js → UserProfileContext-abe57718.js} +1 -1
- package/cjs/{UserProfileContext-1f226141.js.map → UserProfileContext-abe57718.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +12 -10
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +13 -11
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +11 -9
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/{WebAudioUtils-250f7398.js → WebAudioUtils-348c38b8.js} +2 -2
- package/cjs/{WebAudioUtils-250f7398.js.map → WebAudioUtils-348c38b8.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-117c3ffb.js → _rollupPluginBabelHelpers-a85bd364.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-a85bd364.js.map +1 -0
- package/cjs/{actionTypes-01de4d11.js → actionTypes-412ca236.js} +1 -1
- package/cjs/{actionTypes-01de4d11.js.map → actionTypes-412ca236.js.map} +1 -1
- package/cjs/{color-a057a4c2.js → color-2f1198fc.js} +1 -1
- package/cjs/{color-a057a4c2.js.map → color-2f1198fc.js.map} +1 -1
- package/cjs/{compareIds-49d9aea6.js → compareIds-89c258a0.js} +1 -1
- package/cjs/{compareIds-49d9aea6.js.map → compareIds-89c258a0.js.map} +1 -1
- package/cjs/{const-cd9b71c8.js → const-24d498a6.js} +1 -1
- package/cjs/{const-cd9b71c8.js.map → const-24d498a6.js.map} +1 -1
- package/cjs/{const-8e4d382d.js → const-95881697.js} +1 -1
- package/cjs/{const-8e4d382d.js.map → const-95881697.js.map} +1 -1
- package/cjs/{consts-4a51c64b.js → consts-2957b793.js} +1 -1
- package/cjs/{consts-4a51c64b.js.map → consts-2957b793.js.map} +1 -1
- package/cjs/{consts-fb9dd3a0.js → consts-7b830cc5.js} +5 -1
- package/cjs/{consts-fb9dd3a0.js.map → consts-7b830cc5.js.map} +1 -1
- package/cjs/{consts-3afe4fa8.js → consts-c5d38c32.js} +1 -1
- package/cjs/{consts-3afe4fa8.js.map → consts-c5d38c32.js.map} +1 -1
- package/cjs/{consts-d866b64a.js → consts-dde4f05d.js} +1 -1
- package/cjs/{consts-d866b64a.js.map → consts-dde4f05d.js.map} +1 -1
- package/cjs/{context-d7bb15b5.js → context-b53bf38e.js} +2 -2
- package/cjs/{context-d7bb15b5.js.map → context-b53bf38e.js.map} +1 -1
- package/cjs/dist/index.css +371 -280
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-df172622.js → index-03655429.js} +2 -2
- package/cjs/{index-df172622.js.map → index-03655429.js.map} +1 -1
- package/cjs/{index-dc15cf44.js → index-0f229ac7.js} +4 -4
- package/cjs/{index-dc15cf44.js.map → index-0f229ac7.js.map} +1 -1
- package/cjs/{index-a5aa0a9b.js → index-0f7049fb.js} +8 -7
- package/cjs/{index-a5aa0a9b.js.map → index-0f7049fb.js.map} +1 -1
- package/cjs/{index-5b3bc2e9.js → index-1f796e5a.js} +4 -4
- package/cjs/{index-5b3bc2e9.js.map → index-1f796e5a.js.map} +1 -1
- package/cjs/index-28c0a443.js +58 -0
- package/cjs/index-28c0a443.js.map +1 -0
- package/cjs/{index-15e4fb71.js → index-2fbc5922.js} +4 -4
- package/cjs/{index-15e4fb71.js.map → index-2fbc5922.js.map} +1 -1
- package/cjs/{index-5359bc78.js → index-2fd388b9.js} +6 -6
- package/cjs/{index-5359bc78.js.map → index-2fd388b9.js.map} +1 -1
- package/cjs/{index-9cffff55.js → index-494b5c25.js} +3 -3
- package/cjs/{index-9cffff55.js.map → index-494b5c25.js.map} +1 -1
- package/cjs/{index-b64ce51a.js → index-4d39de27.js} +10 -9
- package/cjs/index-4d39de27.js.map +1 -0
- package/cjs/{index-2413bae4.js → index-5628e0c0.js} +1 -1
- package/cjs/index-5628e0c0.js.map +1 -0
- package/cjs/{index-0599b6f2.js → index-613acaa0.js} +36 -4
- package/cjs/index-613acaa0.js.map +1 -0
- package/cjs/{index-fe1b738f.js → index-6e0a495a.js} +3 -3
- package/cjs/{index-fe1b738f.js.map → index-6e0a495a.js.map} +1 -1
- package/cjs/{index-2d4ea9ad.js → index-7e10ab98.js} +4 -4
- package/cjs/index-7e10ab98.js.map +1 -0
- package/cjs/{index-464461c9.js → index-910f48df.js} +20 -12
- package/cjs/index-910f48df.js.map +1 -0
- package/cjs/{index-d5522aef.js → index-967cbc91.js} +2 -2
- package/cjs/{index-d5522aef.js.map → index-967cbc91.js.map} +1 -1
- package/cjs/{index-0d4c4adf.js → index-9813a2f9.js} +3 -3
- package/cjs/{index-0d4c4adf.js.map → index-9813a2f9.js.map} +1 -1
- package/cjs/{index-913491a1.js → index-ae51b0df.js} +2 -2
- package/cjs/{index-913491a1.js.map → index-ae51b0df.js.map} +1 -1
- package/cjs/{index-ba4dea0c.js → index-c9a4a555.js} +1 -1
- package/cjs/{index-ba4dea0c.js.map → index-c9a4a555.js.map} +1 -1
- package/cjs/{index-c59af641.js → index-de4da1f2.js} +2 -2
- package/cjs/{index-c59af641.js.map → index-de4da1f2.js.map} +1 -1
- package/cjs/index-f0b55959.js +139 -0
- package/cjs/index-f0b55959.js.map +1 -0
- package/cjs/{index-4eb2a000.js → index-f40c4cf0.js} +2 -2
- package/cjs/{index-4eb2a000.js.map → index-f40c4cf0.js.map} +1 -1
- package/cjs/index.js +60 -55
- package/cjs/index.js.map +1 -1
- package/cjs/{index.module-2c2cf337.js → index.module-5c951066.js} +1 -1
- package/cjs/{index.module-2c2cf337.js.map → index.module-5c951066.js.map} +1 -1
- package/cjs/package.json +1 -1
- package/cjs/{resolvedReplyType-053d2dbc.js → resolvedReplyType-314fee09.js} +1 -1
- package/cjs/{resolvedReplyType-053d2dbc.js.map → resolvedReplyType-314fee09.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +3 -3
- package/cjs/stringFormatterUtils-3e53394c.js +16 -0
- package/cjs/stringFormatterUtils-3e53394c.js.map +1 -0
- package/cjs/{stringSet-dbdeec9c.js → stringSet-b75b75ae.js} +1 -1
- package/cjs/{stringSet-dbdeec9c.js.map → stringSet-b75b75ae.js.map} +1 -1
- package/cjs/{tokenize-7204c391.js → tokenize-42536b7a.js} +2 -2
- package/cjs/{tokenize-7204c391.js.map → tokenize-42536b7a.js.map} +1 -1
- package/cjs/{topics-c495cb3a.js → topics-2c35cfd7.js} +1 -1
- package/cjs/{topics-c495cb3a.js.map → topics-2c35cfd7.js.map} +1 -1
- package/cjs/{types-79ca7893.js → types-382588b3.js} +1 -1
- package/cjs/types-382588b3.js.map +1 -0
- package/cjs/ui/Accordion.js +2 -2
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +2 -2
- package/cjs/ui/Avatar.js +1 -1
- package/cjs/ui/Badge.js +4 -4
- package/cjs/ui/BottomSheet.js +6 -1
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +10 -12
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +2 -2
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +6 -5
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +3 -3
- package/cjs/ui/EmojiReactions.js +14 -13
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +7 -6
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +14 -13
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +3 -0
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +58 -14
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/MentionLabel.js +11 -10
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +43 -34
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
- package/cjs/ui/MessageInput.js +54 -40
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +9 -8
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +9 -8
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +18 -18
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +8 -8
- package/cjs/ui/MessageStatus.js +11 -10
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +26 -17
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +14 -14
- package/cjs/ui/OpenChannelAdminMessage.js +2 -2
- package/cjs/ui/OpenChannelAvatar.js +5 -5
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -15
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +18 -18
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -14
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +16 -15
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -5
- package/cjs/ui/PlaybackTime.js +2 -2
- package/cjs/ui/QuoteMessage.js +15 -13
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +14 -12
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +2 -2
- package/cjs/ui/ReactionButton.js +4 -4
- package/cjs/ui/SortByRow.js +1 -1
- package/cjs/ui/TextButton.js +1 -1
- package/cjs/ui/TextMessageItemBody.js +14 -14
- package/cjs/ui/ThreadReplies.js +5 -5
- package/cjs/ui/ThumbnailMessageItemBody.js +16 -17
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +2 -2
- package/cjs/ui/UnknownMessageItemBody.js +7 -6
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +11 -10
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +12 -10
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +7 -7
- package/cjs/ui/Word.js +11 -10
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/{VoiceMessageInputWrapper-953affee.js → useHandleUploadFiles-84bd5a9a.js} +129 -8
- package/cjs/useHandleUploadFiles-84bd5a9a.js.map +1 -0
- package/cjs/{useLongPress-e7c92bb0.js → useLongPress-49aa9a49.js} +3 -3
- package/cjs/{useLongPress-e7c92bb0.js.map → useLongPress-49aa9a49.js.map} +1 -1
- package/cjs/useSendMultipleFilesMessage-c5266ca8.js +109 -0
- package/cjs/useSendMultipleFilesMessage-c5266ca8.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -2
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/{utils-b6cca626.js → utils-1e9e97b5.js} +4 -4
- package/cjs/{utils-b6cca626.js.map → utils-1e9e97b5.js.map} +1 -1
- package/cjs/{utils-657ea6e9.js → utils-4e18a724.js} +1 -1
- package/cjs/{utils-657ea6e9.js.map → utils-4e18a724.js.map} +1 -1
- package/cjs/{utils-c2f38151.js → utils-8958cb75.js} +1 -1
- package/cjs/{utils-c2f38151.js.map → utils-8958cb75.js.map} +1 -1
- package/cjs/{utils-90a7cd20.js → utils-b3e9e1b8.js} +2 -2
- package/cjs/{utils-90a7cd20.js.map → utils-b3e9e1b8.js.map} +1 -1
- package/cjs/{utils-cc9de39b.js → utils-d5a929c9.js} +1 -1
- package/cjs/{utils-cc9de39b.js.map → utils-d5a929c9.js.map} +1 -1
- package/cjs/utils-d6285655.js +62 -0
- package/cjs/utils-d6285655.js.map +1 -0
- package/cjs/{uuid-b2882230.js → uuid-34728ced.js} +1 -1
- package/cjs/{uuid-b2882230.js.map → uuid-34728ced.js.map} +1 -1
- package/cjs/withSendbird.js +8 -1
- package/cjs/withSendbird.js.map +1 -1
- package/{color-65ef45d7.js → color-4cef414f.js} +1 -1
- package/{color-65ef45d7.js.map → color-4cef414f.js.map} +1 -1
- package/{compareIds-c0aa8024.js → compareIds-7e93f2e7.js} +1 -1
- package/{compareIds-c0aa8024.js.map → compareIds-7e93f2e7.js.map} +1 -1
- package/{const-2c36fe72.js → const-48ffde74.js} +1 -1
- package/{const-2c36fe72.js.map → const-48ffde74.js.map} +1 -1
- package/{const-537b3aa9.js → const-6c10846e.js} +1 -1
- package/{const-537b3aa9.js.map → const-6c10846e.js.map} +1 -1
- package/{consts-397a92f1.js → consts-439d56b4.js} +5 -2
- package/{consts-397a92f1.js.map → consts-439d56b4.js.map} +1 -1
- package/{consts-ee08d763.js → consts-a979689d.js} +1 -1
- package/{consts-ee08d763.js.map → consts-a979689d.js.map} +1 -1
- package/{consts-066d732d.js → consts-aad4bf65.js} +1 -1
- package/{consts-066d732d.js.map → consts-aad4bf65.js.map} +1 -1
- package/{consts-c105f2e8.js → consts-bd684c8d.js} +1 -1
- package/{consts-c105f2e8.js.map → consts-bd684c8d.js.map} +1 -1
- package/{context-524b02ab.js → context-9946197c.js} +2 -2
- package/{context-524b02ab.js.map → context-9946197c.js.map} +1 -1
- package/dist/index.css +371 -280
- package/dist/index.css.map +1 -1
- package/{index-2969a2df.js → index-0a50eba0.js} +20 -12
- package/index-0a50eba0.js.map +1 -0
- package/{index-72d247f7.js → index-1833cc50.js} +2 -2
- package/{index-72d247f7.js.map → index-1833cc50.js.map} +1 -1
- package/{index-3f6516a2.js → index-2d23ff73.js} +4 -4
- package/index-2d23ff73.js.map +1 -0
- package/{index-4236c5c8.js → index-320a1756.js} +2 -2
- package/{index-4236c5c8.js.map → index-320a1756.js.map} +1 -1
- package/{index-d6ceb67a.js → index-3370a58d.js} +2 -2
- package/{index-d6ceb67a.js.map → index-3370a58d.js.map} +1 -1
- package/{index-f1d37762.js → index-373d3069.js} +4 -4
- package/{index-f1d37762.js.map → index-373d3069.js.map} +1 -1
- package/index-44d3dac3.js +132 -0
- package/index-44d3dac3.js.map +1 -0
- package/{index-91634369.js → index-516ad99d.js} +1 -1
- package/{index-91634369.js.map → index-516ad99d.js.map} +1 -1
- package/{index-40e8e312.js → index-526cbeea.js} +2 -2
- package/{index-40e8e312.js.map → index-526cbeea.js.map} +1 -1
- package/{index-4c58b734.js → index-6bca558b.js} +8 -7
- package/{index-4c58b734.js.map → index-6bca558b.js.map} +1 -1
- package/{index-4c4b34c9.js → index-6d0ae6a0.js} +3 -3
- package/{index-4c4b34c9.js.map → index-6d0ae6a0.js.map} +1 -1
- package/{index-da7bc750.js → index-825c96d3.js} +3 -3
- package/{index-da7bc750.js.map → index-825c96d3.js.map} +1 -1
- package/{index-d972c8e3.js → index-9083293d.js} +4 -4
- package/{index-d972c8e3.js.map → index-9083293d.js.map} +1 -1
- package/{index-aa87ac03.js → index-a0bd5ef9.js} +3 -3
- package/{index-aa87ac03.js.map → index-a0bd5ef9.js.map} +1 -1
- package/{index-8017e2b5.js → index-b346dc02.js} +10 -9
- package/index-b346dc02.js.map +1 -0
- package/index-bae83553.js +51 -0
- package/index-bae83553.js.map +1 -0
- package/{index-39eeabbb.js → index-c323f04b.js} +33 -5
- package/index-c323f04b.js.map +1 -0
- package/{index-5ebb83a2.js → index-c5cb0bb2.js} +4 -4
- package/{index-5ebb83a2.js.map → index-c5cb0bb2.js.map} +1 -1
- package/{index-3e2f101e.js → index-d9b66555.js} +6 -6
- package/{index-3e2f101e.js.map → index-d9b66555.js.map} +1 -1
- package/{index-d16a8084.js → index-e2afa53f.js} +1 -1
- package/index-e2afa53f.js.map +1 -0
- package/{index-7c1266b5.js → index-fa19fef7.js} +2 -2
- package/{index-7c1266b5.js.map → index-fa19fef7.js.map} +1 -1
- package/index.d.ts +155 -31
- package/index.js +60 -55
- package/index.js.map +1 -1
- package/{index.module-b694546f.js → index.module-efef0194.js} +1 -1
- package/{index.module-b694546f.js.map → index.module-efef0194.js.map} +1 -1
- package/package.json +1 -1
- package/{resolvedReplyType-97610f1a.js → resolvedReplyType-84f1270f.js} +1 -1
- package/{resolvedReplyType-97610f1a.js.map → resolvedReplyType-84f1270f.js.map} +1 -1
- package/sendbirdSelectors.js +3 -3
- package/stringFormatterUtils-beea8d82.js +14 -0
- package/stringFormatterUtils-beea8d82.js.map +1 -0
- package/{stringSet-ed242956.js → stringSet-9fe06e0d.js} +1 -1
- package/{stringSet-ed242956.js.map → stringSet-9fe06e0d.js.map} +1 -1
- package/{tokenize-3c45100f.js → tokenize-d34eb5c6.js} +2 -2
- package/{tokenize-3c45100f.js.map → tokenize-d34eb5c6.js.map} +1 -1
- package/{topics-da8f3f42.js → topics-edd6182d.js} +1 -1
- package/{topics-da8f3f42.js.map → topics-edd6182d.js.map} +1 -1
- package/{types-3826bbff.js → types-269fec15.js} +1 -1
- package/types-269fec15.js.map +1 -0
- package/ui/Accordion.js +2 -2
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +2 -2
- package/ui/Avatar.js +1 -1
- package/ui/Badge.js +4 -4
- package/ui/BottomSheet.js +6 -1
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +10 -12
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +2 -2
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +6 -5
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +3 -3
- package/ui/EmojiReactions.js +14 -13
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +7 -6
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +14 -13
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +3 -0
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +59 -15
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/MentionLabel.js +11 -10
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +42 -33
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput/hooks/usePaste.js +4 -4
- package/ui/MessageInput.js +54 -40
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +9 -8
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +9 -8
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +18 -18
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +8 -8
- package/ui/MessageStatus.js +11 -10
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +26 -18
- package/ui/Modal.js.map +1 -1
- package/ui/OGMessageItemBody.js +14 -14
- package/ui/OpenChannelAdminMessage.js +2 -2
- package/ui/OpenChannelAvatar.js +5 -5
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -15
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +18 -18
- package/ui/OpenchannelThumbnailMessage.js +15 -14
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +16 -15
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +15 -13
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +14 -12
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +2 -2
- package/ui/ReactionButton.js +4 -4
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +1 -1
- package/ui/TextMessageItemBody.js +14 -14
- package/ui/ThreadReplies.js +5 -5
- package/ui/ThumbnailMessageItemBody.js +14 -15
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/UnknownMessageItemBody.js +7 -6
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +11 -10
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +12 -10
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +7 -7
- package/ui/Word.js +11 -10
- package/ui/Word.js.map +1 -1
- package/{VoiceMessageInputWrapper-b074aec5.js → useHandleUploadFiles-210750cc.js} +130 -10
- package/useHandleUploadFiles-210750cc.js.map +1 -0
- package/{useLongPress-0189f9c3.js → useLongPress-4b698dbb.js} +3 -3
- package/{useLongPress-0189f9c3.js.map → useLongPress-4b698dbb.js.map} +1 -1
- package/useSendMultipleFilesMessage-4a45ffbe.js +107 -0
- package/useSendMultipleFilesMessage-4a45ffbe.js.map +1 -0
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +3 -2
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/{utils-40781609.js → utils-1bfac67e.js} +1 -1
- package/{utils-40781609.js.map → utils-1bfac67e.js.map} +1 -1
- package/{utils-cae5adba.js → utils-4d948dec.js} +2 -2
- package/{utils-cae5adba.js.map → utils-4d948dec.js.map} +1 -1
- package/{utils-3bd17cc2.js → utils-55c9df93.js} +1 -1
- package/{utils-3bd17cc2.js.map → utils-55c9df93.js.map} +1 -1
- package/utils-73dd35ca.js +57 -0
- package/utils-73dd35ca.js.map +1 -0
- package/{utils-373b8143.js → utils-a184f6ea.js} +1 -1
- package/{utils-373b8143.js.map → utils-a184f6ea.js.map} +1 -1
- package/{utils-b7161189.js → utils-ec15538c.js} +4 -4
- package/{utils-b7161189.js.map → utils-ec15538c.js.map} +1 -1
- package/{uuid-6d982751.js → uuid-9094f15c.js} +1 -1
- package/{uuid-6d982751.js.map → uuid-9094f15c.js.map} +1 -1
- package/withSendbird.js +8 -1
- package/withSendbird.js.map +1 -1
- package/ChannelProvider-d6dedff9.js.map +0 -1
- package/OpenChannelProvider-8fdab056.js.map +0 -1
- package/RemoveMessageModal-715f4bd6.js.map +0 -1
- package/ThreadProvider-696e3a32.js.map +0 -1
- package/VoiceMessageInputWrapper-b074aec5.js.map +0 -1
- package/_rollupPluginBabelHelpers-0f2ee8c1.js.map +0 -1
- package/cjs/ChannelProvider-c8bc29d3.js.map +0 -1
- package/cjs/OpenChannelProvider-57c10c09.js.map +0 -1
- package/cjs/RemoveMessageModal-029b1c86.js.map +0 -1
- package/cjs/ThreadProvider-9dfc3ad5.js.map +0 -1
- package/cjs/VoiceMessageInputWrapper-953affee.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-117c3ffb.js.map +0 -1
- package/cjs/index-0599b6f2.js.map +0 -1
- package/cjs/index-2413bae4.js.map +0 -1
- package/cjs/index-2d4ea9ad.js.map +0 -1
- package/cjs/index-464461c9.js.map +0 -1
- package/cjs/index-b64ce51a.js.map +0 -1
- package/cjs/types-79ca7893.js.map +0 -1
- package/index-2969a2df.js.map +0 -1
- package/index-39eeabbb.js.map +0 -1
- package/index-3f6516a2.js.map +0 -1
- package/index-8017e2b5.js.map +0 -1
- package/index-d16a8084.js.map +0 -1
- package/types-3826bbff.js.map +0 -1
package/ui/MessageInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n const textField = ref?.current;\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && textField?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_ref","channel","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","isRequired","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\n// import { isChannelTypeSupportsMultipleFilesMessage } from './utils';\nimport { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n getMimeTypesUIKitAccepts,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n // isSelectingMultipleFilesEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n acceptableMimeTypes,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n const textField = ref?.current;\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && textField?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n // It will affect to <Channel /> and <Thread />\n onChange={(event) => {\n const { files } = event.currentTarget;\n onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);\n event.target.value = '';\n }}\n accept={getMimeTypesUIKitAccepts(acceptableMimeTypes)}\n // multiple={\n // isSelectingMultipleFilesEnabled\n // && isChannelTypeSupportsMultipleFilesMessage(channel)\n // }\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n // isSelectingMultipleFilesEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n placeholder: PropTypes.string,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n messageFieldId: PropTypes.string,\n acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),\n // Mention\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n setMentionedUsers: PropTypes.func,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n // Voice Message\n onVoiceMessageIconClick: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n // isSelectingMultipleFilesEnabled: false,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n acceptableMimeTypes: null,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_ref","channel","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","acceptableMimeTypes","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","value","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","event","files","currentTarget","target","accept","getMimeTypesUIKitAccepts","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","number","func","shape","isRequired","defaultProps"],"mappings":"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"}
|
package/ui/MessageItemMenu.js
CHANGED
|
@@ -2,18 +2,19 @@ import React__default, { useContext, useRef } from 'react';
|
|
|
2
2
|
import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
|
|
3
3
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
4
4
|
import IconButton from './IconButton.js';
|
|
5
|
-
import {
|
|
6
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
7
|
-
import { R as Role } from '../types-
|
|
8
|
-
import '../_rollupPluginBabelHelpers-
|
|
5
|
+
import { w as isUserMessage, F as isSentMessage, G as isFailedMessage, H as isPendingMessage, m as getClassName, I as copyToClipboard } from '../index-c323f04b.js';
|
|
6
|
+
import { a as LocalizationContext } from '../LocalizationContext-c9b218d4.js';
|
|
7
|
+
import { R as Role } from '../types-269fec15.js';
|
|
8
|
+
import '../_rollupPluginBabelHelpers-ea73a031.js';
|
|
9
9
|
import 'react-dom';
|
|
10
10
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
11
|
+
import '../uuid-9094f15c.js';
|
|
12
|
+
import '../index-fa19fef7.js';
|
|
13
13
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
14
|
+
import '../stringSet-9fe06e0d.js';
|
|
15
15
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../index-
|
|
16
|
+
import '../index.module-efef0194.js';
|
|
17
|
+
import '../index-516ad99d.js';
|
|
17
18
|
|
|
18
19
|
function MessageItemMenu(_ref) {
|
|
19
20
|
var _channel$isGroupChann;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage, SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage, SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
@@ -4,18 +4,19 @@ import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
|
4
4
|
import IconButton from './IconButton.js';
|
|
5
5
|
import ImageRenderer from './ImageRenderer.js';
|
|
6
6
|
import ReactionButton from './ReactionButton.js';
|
|
7
|
-
import {
|
|
8
|
-
import '../_rollupPluginBabelHelpers-
|
|
7
|
+
import { H as isPendingMessage, G as isFailedMessage, m as getClassName, J as getEmojiListAll } from '../index-c323f04b.js';
|
|
8
|
+
import '../_rollupPluginBabelHelpers-ea73a031.js';
|
|
9
9
|
import 'react-dom';
|
|
10
10
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
11
|
+
import '../uuid-9094f15c.js';
|
|
12
|
+
import '../index-fa19fef7.js';
|
|
13
13
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
14
|
+
import '../stringSet-9fe06e0d.js';
|
|
15
15
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../
|
|
17
|
-
import '../
|
|
18
|
-
import '../
|
|
16
|
+
import '../index.module-efef0194.js';
|
|
17
|
+
import '../useLongPress-4b698dbb.js';
|
|
18
|
+
import '../MediaQueryContext-532b0a77.js';
|
|
19
|
+
import '../utils-1bfac67e.js';
|
|
19
20
|
|
|
20
21
|
function MessageItemReactionMenu(_ref) {
|
|
21
22
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { Reaction } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage, SendableMessageType } from '../../utils';\nimport { SpaceFromTriggerType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n userId: string;\n spaceFromTrigger?: SpaceFromTriggerType;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: SendableMessageType, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = { x: 0, y: 0 },\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds\n ?.some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_ref","className","message","userId","spaceFromTrigger","x","y","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","dataSbId","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { Reaction } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage, SendableMessageType } from '../../utils';\nimport { SpaceFromTriggerType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n userId: string;\n spaceFromTrigger?: SpaceFromTriggerType;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: SendableMessageType, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = { x: 0, y: 0 },\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds\n ?.some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_ref","className","message","userId","spaceFromTrigger","x","y","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","dataSbId","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import Avatar from './Avatar.js';
|
|
3
3
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
4
|
-
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-
|
|
5
|
-
import { u as useLocalization } from '../LocalizationContext-
|
|
6
|
-
import { f as format } from '../index-
|
|
7
|
-
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-
|
|
8
|
-
import {
|
|
4
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../index-fa19fef7.js';
|
|
5
|
+
import { u as useLocalization } from '../LocalizationContext-c9b218d4.js';
|
|
6
|
+
import { f as format } from '../index-1833cc50.js';
|
|
7
|
+
import { i as isToday, a as isYesterday, b as isThisYear } from '../index-6d0ae6a0.js';
|
|
8
|
+
import { d as isVoiceMessage } from '../index-c323f04b.js';
|
|
9
|
+
import { g as getMessageFirstFileUrl, a as getMessageFirstFileName } from '../utils-73dd35ca.js';
|
|
9
10
|
import './ImageRenderer.js';
|
|
10
|
-
import '../uuid-
|
|
11
|
+
import '../uuid-9094f15c.js';
|
|
11
12
|
import 'prop-types';
|
|
12
|
-
import '../stringSet-
|
|
13
|
-
import '../index-
|
|
14
|
-
import '../index-
|
|
15
|
-
import '../_rollupPluginBabelHelpers-
|
|
13
|
+
import '../stringSet-9fe06e0d.js';
|
|
14
|
+
import '../index-516ad99d.js';
|
|
15
|
+
import '../index-3370a58d.js';
|
|
16
|
+
import '../_rollupPluginBabelHelpers-ea73a031.js';
|
|
16
17
|
import '../utils/message/getOutgoingMessageState.js';
|
|
18
|
+
import '../index.module-efef0194.js';
|
|
17
19
|
|
|
18
20
|
function getCreatedAt(_ref) {
|
|
19
21
|
let {
|
|
@@ -39,11 +41,9 @@ function getCreatedAt(_ref) {
|
|
|
39
41
|
return format(createdAt, 'yyyy/M/d', optionalParam);
|
|
40
42
|
}
|
|
41
43
|
function getIconOfFileType(message) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const fileMessageUrl = url;
|
|
46
|
-
const fileExtension = fileMessageUrl.match(/\.([^.]*?)(?=\?|#|$)/)[1];
|
|
44
|
+
var _getMessageFirstFileU, _fileMessageUrl$match, _fileMessageUrl$match2;
|
|
45
|
+
const fileMessageUrl = (_getMessageFirstFileU = getMessageFirstFileUrl(message)) !== null && _getMessageFirstFileU !== void 0 ? _getMessageFirstFileU : '';
|
|
46
|
+
const fileExtension = (_fileMessageUrl$match = (_fileMessageUrl$match2 = fileMessageUrl.match(/\.([^.]*?)(?=\?|#|$)/)) === null || _fileMessageUrl$match2 === void 0 ? void 0 : _fileMessageUrl$match2[1]) !== null && _fileMessageUrl$match !== void 0 ? _fileMessageUrl$match : '';
|
|
47
47
|
if (/(jpg|jpeg|png)$/i.test(fileExtension)) {
|
|
48
48
|
return IconTypes.PHOTO;
|
|
49
49
|
} else if (/mp4$/i.test(fileExtension) || isVoiceMessage(message)) {
|
|
@@ -65,10 +65,10 @@ function MessageSearchFileItem(props) {
|
|
|
65
65
|
onClick
|
|
66
66
|
} = props;
|
|
67
67
|
const {
|
|
68
|
-
createdAt
|
|
69
|
-
url,
|
|
70
|
-
name
|
|
68
|
+
createdAt
|
|
71
69
|
} = message;
|
|
70
|
+
const url = getMessageFirstFileUrl(message);
|
|
71
|
+
const name = getMessageFirstFileName(message);
|
|
72
72
|
// @ts-ignore
|
|
73
73
|
const sender = message.sender || message._sender;
|
|
74
74
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSearchFileItem.js","sources":["../../src/ui/MessageSearchFileItem/utils.ts","../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\nimport { isVoiceMessage } from '../../utils';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension) || isVoiceMessage(message)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\nimport { isVoiceMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n const isVoiceMsg = isVoiceMessage(message);\n const prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : (name || url);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n {!isVoiceMsg && (\n <div className={'sendbird-message-search-file-item__right__content__type-icon'}>\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n )}\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {prettyFilename}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet })}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_ref","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","isVoiceMessage","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","dateLocale","useLocalization","isVoiceMsg","prettyFilename","VOICE_MESSAGE","React","createElement","Array","isArray","join","e","stopPropagation","Avatar","src","alt","width","height","Label","type","LabelTypography","SUBTITLE_2","color","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","fillColor","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageSearchFileItem.js","sources":["../../src/ui/MessageSearchFileItem/utils.ts","../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\nimport { isVoiceMessage } from '../../utils';\nimport { getMessageFirstFileUrl } from '../QuoteMessage/utils';\nimport { MultipleFilesMessage } from '@sendbird/chat/message';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage | MultipleFilesMessage): string {\n const fileMessageUrl = getMessageFirstFileUrl(message) ?? '';\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))?.[1] ?? '';\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension) || isVoiceMessage(message)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\nimport { isVoiceMessage } from '../../utils';\nimport { MultipleFilesMessage } from '@sendbird/chat/message';\nimport { getMessageFirstFileName, getMessageFirstFileUrl } from '../QuoteMessage/utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage | MultipleFilesMessage;\n selected?: boolean;\n onClick?: (message: FileMessage | MultipleFilesMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt } = message;\n const url: string = getMessageFirstFileUrl(message);\n const name: string = getMessageFirstFileName(message);\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n const isVoiceMsg = isVoiceMessage(message);\n const prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : (name || url);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n {!isVoiceMsg && (\n <div className={'sendbird-message-search-file-item__right__content__type-icon'}>\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n )}\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {prettyFilename}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet })}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_ref","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","_getMessageFirstFileU","_fileMessageUrl$match","_fileMessageUrl$match2","fileMessageUrl","getMessageFirstFileUrl","fileExtension","match","test","IconTypes","PHOTO","isVoiceMessage","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","url","name","getMessageFirstFileName","sender","_sender","profileUrl","nickname","dateLocale","useLocalization","isVoiceMsg","prettyFilename","VOICE_MESSAGE","React","createElement","Array","isArray","join","e","stopPropagation","Avatar","src","alt","width","height","Label","type","LabelTypography","SUBTITLE_2","color","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","fillColor","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
|