@sendbird/uikit-react 3.7.0 → 3.8.1
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 +295 -563
- package/App.js.map +1 -1
- package/CHANGELOG.md +79 -0
- package/Channel/components/ChannelHeader.js +51 -97
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +89 -132
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +73 -142
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +10 -15
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +287 -388
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +172 -238
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +263 -323
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +38 -50
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +179 -264
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +74 -80
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +27 -31
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +17 -16
- package/Channel/context.js.map +1 -1
- package/Channel/hooks/useInitialMessagesFetch.js +109 -0
- package/Channel/hooks/useInitialMessagesFetch.js.map +1 -0
- package/Channel/utils/compareMessagesForGrouping.js +19 -16
- package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/Channel/utils/getMessagePartsInfo.js +26 -37
- package/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/Channel.js +60 -104
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +34 -53
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +30 -57
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +103 -160
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +103 -168
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +53 -111
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +9 -9
- package/ChannelList.js +37 -60
- package/ChannelList.js.map +1 -1
- package/ChannelSettings/components/ChannelProfile.js +46 -78
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +80 -112
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +80 -134
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +53 -80
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +414 -792
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +46 -90
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +39 -58
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +62 -84
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +21 -39
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -34
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +144 -181
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +65 -114
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +19 -34
- package/CreateChannel.js.map +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +52 -109
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +42 -51
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +16 -32
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +82 -143
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +13 -20
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +16 -25
- package/EditUserProfile.js.map +1 -1
- package/Message/context.js +21 -24
- package/Message/context.js.map +1 -1
- package/Message/hooks/useDirtyGetMentions.js +52 -63
- package/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +72 -124
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +237 -339
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +58 -121
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +9 -13
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +33 -74
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +41 -59
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +159 -247
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +86 -121
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +61 -83
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +38 -58
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +93 -166
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +20 -59
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +23 -42
- package/OpenChannelList.js.map +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +71 -125
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +36 -62
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +54 -86
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +456 -830
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +17 -20
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +115 -125
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +22 -35
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +0 -10
- package/SendbirdProvider.js +991 -1235
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +196 -350
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +107 -197
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +23 -51
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +116 -152
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +271 -531
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +155 -213
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +195 -271
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +21 -21
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +1223 -1634
- package/Thread/context.js.map +1 -1
- package/Thread.js +61 -100
- package/Thread.js.map +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +56 -77
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +121 -151
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +95 -108
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/chunks/bundle--Hrow3p-.js +42 -0
- package/chunks/bundle--Hrow3p-.js.map +1 -0
- package/chunks/bundle-06CfHADE.js +26 -0
- package/chunks/bundle-06CfHADE.js.map +1 -0
- package/{index-09847c0f.js → chunks/bundle-0BwB1B7t.js} +1 -1
- package/chunks/bundle-0BwB1B7t.js.map +1 -0
- package/{consts-57c888b9.js → chunks/bundle-0plqkdfC.js} +1 -1
- package/chunks/bundle-0plqkdfC.js.map +1 -0
- package/{types-781e0bab.js → chunks/bundle-1uIyPhfL.js} +6 -6
- package/chunks/bundle-1uIyPhfL.js.map +1 -0
- package/chunks/bundle-2oi09sb6.js +277 -0
- package/chunks/bundle-2oi09sb6.js.map +1 -0
- package/chunks/bundle-3KS1YB09.js +25 -0
- package/chunks/bundle-3KS1YB09.js.map +1 -0
- package/chunks/bundle-3oeQjqp5.js +14 -0
- package/chunks/bundle-3oeQjqp5.js.map +1 -0
- package/chunks/bundle-4zdVdGkr.js +213 -0
- package/chunks/bundle-4zdVdGkr.js.map +1 -0
- package/chunks/bundle-5Z7nY-qa.js +355 -0
- package/chunks/bundle-5Z7nY-qa.js.map +1 -0
- package/chunks/bundle-62G-DTVs.js +211 -0
- package/chunks/bundle-62G-DTVs.js.map +1 -0
- package/chunks/bundle-6G8kMIS1.js +1455 -0
- package/chunks/bundle-6G8kMIS1.js.map +1 -0
- package/chunks/bundle-7-9WA7QK.js +222 -0
- package/chunks/bundle-7-9WA7QK.js.map +1 -0
- package/chunks/bundle-7DHTLnV3.js +98 -0
- package/chunks/bundle-7DHTLnV3.js.map +1 -0
- package/chunks/bundle-9uR-6efo.js +77 -0
- package/chunks/bundle-9uR-6efo.js.map +1 -0
- package/{tslib.es6-c2fb729e.js → chunks/bundle-AVOWwEQ4.js} +2 -2
- package/chunks/bundle-AVOWwEQ4.js.map +1 -0
- package/chunks/bundle-DwZzB6nL.js +16 -0
- package/chunks/bundle-DwZzB6nL.js.map +1 -0
- package/chunks/bundle-EZnDY3Tc.js +131 -0
- package/chunks/bundle-EZnDY3Tc.js.map +1 -0
- package/chunks/bundle-F63fi8fP.js +24 -0
- package/chunks/bundle-F63fi8fP.js.map +1 -0
- package/chunks/bundle-FQAabli1.js +5 -0
- package/chunks/bundle-FQAabli1.js.map +1 -0
- package/chunks/bundle-G3cS-S1W.js +24 -0
- package/chunks/bundle-G3cS-S1W.js.map +1 -0
- package/chunks/bundle-GqUhOzeC.js +16 -0
- package/chunks/bundle-GqUhOzeC.js.map +1 -0
- package/chunks/bundle-J7RD0FpU.js +96 -0
- package/chunks/bundle-J7RD0FpU.js.map +1 -0
- package/{index-f8a9cb51.js → chunks/bundle-J7om32yx.js} +12 -3
- package/chunks/bundle-J7om32yx.js.map +1 -0
- package/{const-73db0277.js → chunks/bundle-JGFwpJZJ.js} +10 -10
- package/chunks/bundle-JGFwpJZJ.js.map +1 -0
- package/chunks/bundle-KaSW5xxP.js +176 -0
- package/chunks/bundle-KaSW5xxP.js.map +1 -0
- package/{index-2d27aeef.js → chunks/bundle-LPkaaUo4.js} +202 -64
- package/chunks/bundle-LPkaaUo4.js.map +1 -0
- package/chunks/bundle-Lh7-eKPZ.js +125 -0
- package/chunks/bundle-Lh7-eKPZ.js.map +1 -0
- package/chunks/bundle-NcHt88Fs.js +8 -0
- package/chunks/bundle-NcHt88Fs.js.map +1 -0
- package/chunks/bundle-OoXqnc0l.js +657 -0
- package/chunks/bundle-OoXqnc0l.js.map +1 -0
- package/chunks/bundle-PK1dgVwp.js +57 -0
- package/chunks/bundle-PK1dgVwp.js.map +1 -0
- package/chunks/bundle-QKq7b-WA.js +76 -0
- package/chunks/bundle-QKq7b-WA.js.map +1 -0
- package/chunks/bundle-QeQV8Aqe.js +28 -0
- package/chunks/bundle-QeQV8Aqe.js.map +1 -0
- package/chunks/bundle-TWJd6cza.js +826 -0
- package/chunks/bundle-TWJd6cza.js.map +1 -0
- package/{consts-d9c5f25a.js → chunks/bundle-UjngV2Kp.js} +28 -28
- package/chunks/bundle-UjngV2Kp.js.map +1 -0
- package/chunks/bundle-VSkY75XQ.js +72 -0
- package/chunks/bundle-VSkY75XQ.js.map +1 -0
- package/chunks/bundle-YwxAxKwQ.js +1519 -0
- package/chunks/bundle-YwxAxKwQ.js.map +1 -0
- package/{index-682a192c.js → chunks/bundle-ZZuBYhV1.js} +4 -2
- package/chunks/bundle-ZZuBYhV1.js.map +1 -0
- package/chunks/bundle-_2iSz8ke.js +353 -0
- package/chunks/bundle-_2iSz8ke.js.map +1 -0
- package/{consts-be37687e.js → chunks/bundle-_nlJSeuz.js} +1 -1
- package/chunks/bundle-_nlJSeuz.js.map +1 -0
- package/chunks/bundle-fQ2M7pMu.js +151 -0
- package/chunks/bundle-fQ2M7pMu.js.map +1 -0
- package/chunks/bundle-fbmUkwMs.js +173 -0
- package/chunks/bundle-fbmUkwMs.js.map +1 -0
- package/chunks/bundle-gYyMZyCn.js +62 -0
- package/chunks/bundle-gYyMZyCn.js.map +1 -0
- package/{uuid-c15b8b3b.js → chunks/bundle-iPDlyZXo.js} +11 -13
- package/chunks/bundle-iPDlyZXo.js.map +1 -0
- package/chunks/bundle-jUubN32Z.js +36 -0
- package/chunks/bundle-jUubN32Z.js.map +1 -0
- package/chunks/bundle-kBtT3HBi.js +230 -0
- package/chunks/bundle-kBtT3HBi.js.map +1 -0
- package/chunks/bundle-kPOY92Qs.js +132 -0
- package/chunks/bundle-kPOY92Qs.js.map +1 -0
- package/{consts-4ec7d640.js → chunks/bundle-kaJaYGwQ.js} +1 -1
- package/chunks/bundle-kaJaYGwQ.js.map +1 -0
- package/chunks/bundle-lDOyfwhb.js +78 -0
- package/chunks/bundle-lDOyfwhb.js.map +1 -0
- package/{index-e4277f9c.js → chunks/bundle-ltzZCtkR.js} +42 -15
- package/chunks/bundle-ltzZCtkR.js.map +1 -0
- package/chunks/bundle-ndy1oWfZ.js +12 -0
- package/chunks/bundle-ndy1oWfZ.js.map +1 -0
- package/chunks/bundle-r7_GdraW.js +233 -0
- package/chunks/bundle-r7_GdraW.js.map +1 -0
- package/{resolvedReplyType-fb987595.js → chunks/bundle-rX7vrYxX.js} +27 -27
- package/chunks/bundle-rX7vrYxX.js.map +1 -0
- package/chunks/bundle-tK1qgIcU.js +18 -0
- package/chunks/bundle-tK1qgIcU.js.map +1 -0
- package/chunks/bundle-um2Azmnd.js +31 -0
- package/chunks/bundle-um2Azmnd.js.map +1 -0
- package/chunks/bundle-w-pB0qJ8.js +36 -0
- package/chunks/bundle-w-pB0qJ8.js.map +1 -0
- package/chunks/bundle-x3udz03j.js +77 -0
- package/chunks/bundle-x3udz03j.js.map +1 -0
- package/chunks/bundle-zch8NdOh.js +220 -0
- package/chunks/bundle-zch8NdOh.js.map +1 -0
- package/chunks/bundle-zqQY3xFx.js +69 -0
- package/chunks/bundle-zqQY3xFx.js.map +1 -0
- package/cjs/App.js +295 -567
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +51 -101
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +89 -136
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +74 -147
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +10 -19
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +286 -391
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +172 -242
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +261 -325
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +38 -54
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +178 -267
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +74 -84
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +26 -34
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +17 -18
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel/hooks/useInitialMessagesFetch.js +111 -0
- package/cjs/Channel/hooks/useInitialMessagesFetch.js.map +1 -0
- package/cjs/Channel/utils/compareMessagesForGrouping.js +19 -18
- package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/cjs/Channel/utils/getMessagePartsInfo.js +26 -39
- package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/cjs/Channel.js +60 -108
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +35 -58
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +30 -61
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +103 -164
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +103 -172
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +53 -115
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +9 -11
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +37 -64
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelProfile.js +46 -82
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +80 -116
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +80 -138
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +53 -84
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +413 -795
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +46 -94
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +39 -62
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +62 -90
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +21 -43
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -38
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +144 -185
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +65 -118
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -6
- package/cjs/CreateChannel/context.js.map +1 -1
- package/cjs/CreateChannel.js +19 -38
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +52 -113
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +42 -57
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +16 -36
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +82 -147
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +13 -26
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +16 -29
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/Message/context.js +21 -30
- package/cjs/Message/context.js.map +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js +52 -65
- package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +73 -129
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +237 -345
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +58 -125
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +9 -17
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +33 -78
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +41 -63
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +159 -251
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +86 -125
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +61 -87
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -10
- package/cjs/OpenChannel/context.js.map +1 -1
- package/cjs/OpenChannel.js +38 -62
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +93 -170
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +20 -63
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +4 -4
- package/cjs/OpenChannelList.js +23 -46
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +71 -129
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +36 -66
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +54 -90
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +456 -834
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +17 -20
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +115 -131
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +22 -39
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/SendbirdProvider.js +992 -1242
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +196 -354
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +107 -201
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +23 -55
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +116 -156
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +271 -535
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +155 -217
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +195 -275
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +21 -23
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +1223 -1640
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +61 -104
- package/cjs/Thread.js.map +1 -1
- package/cjs/VoicePlayer/context.js +3 -5
- package/cjs/VoicePlayer/context.js.map +1 -1
- package/cjs/VoicePlayer/useVoicePlayer.js +56 -79
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +121 -155
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +95 -110
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/chunks/bundle-2KPLdyEL.js +128 -0
- package/cjs/chunks/bundle-2KPLdyEL.js.map +1 -0
- package/cjs/chunks/bundle-3qeMVUne.js +38 -0
- package/cjs/chunks/bundle-3qeMVUne.js.map +1 -0
- package/cjs/{consts-f54b15c2.js → chunks/bundle-4iro9CUN.js} +27 -27
- package/cjs/chunks/bundle-4iro9CUN.js.map +1 -0
- package/cjs/chunks/bundle-5l7POen0.js +215 -0
- package/cjs/chunks/bundle-5l7POen0.js.map +1 -0
- package/cjs/chunks/bundle-6fWeHUzf.js +46 -0
- package/cjs/chunks/bundle-6fWeHUzf.js.map +1 -0
- package/cjs/chunks/bundle-80bw1Z-w.js +20 -0
- package/cjs/chunks/bundle-80bw1Z-w.js.map +1 -0
- package/cjs/chunks/bundle-8lUFYwiz.js +163 -0
- package/cjs/chunks/bundle-8lUFYwiz.js.map +1 -0
- package/cjs/chunks/bundle-A9-xoiFy.js +18 -0
- package/cjs/chunks/bundle-A9-xoiFy.js.map +1 -0
- package/cjs/chunks/bundle-ACXel153.js +27 -0
- package/cjs/chunks/bundle-ACXel153.js.map +1 -0
- package/cjs/chunks/bundle-BUF_nc4Q.js +707 -0
- package/cjs/chunks/bundle-BUF_nc4Q.js.map +1 -0
- package/cjs/chunks/bundle-Bekm94S6.js +137 -0
- package/cjs/chunks/bundle-Bekm94S6.js.map +1 -0
- package/cjs/chunks/bundle-Ch6xNfpK.js +1460 -0
- package/cjs/chunks/bundle-Ch6xNfpK.js.map +1 -0
- package/cjs/chunks/bundle-Co06yFqb.js +178 -0
- package/cjs/chunks/bundle-Co06yFqb.js.map +1 -0
- package/cjs/{consts-b711321c.js → chunks/bundle-DRPbz-J2.js} +1 -1
- package/cjs/chunks/bundle-DRPbz-J2.js.map +1 -0
- package/cjs/chunks/bundle-DTSMqW5p.js +39 -0
- package/cjs/chunks/bundle-DTSMqW5p.js.map +1 -0
- package/cjs/{index-e8928da6.js → chunks/bundle-EVv3xRW8.js} +42 -15
- package/cjs/chunks/bundle-EVv3xRW8.js.map +1 -0
- package/cjs/chunks/bundle-FCrfVx0P.js +79 -0
- package/cjs/chunks/bundle-FCrfVx0P.js.map +1 -0
- package/cjs/chunks/bundle-FI-ZNmbG.js +30 -0
- package/cjs/chunks/bundle-FI-ZNmbG.js.map +1 -0
- package/cjs/chunks/bundle-LoNtsKOJ.js +217 -0
- package/cjs/chunks/bundle-LoNtsKOJ.js.map +1 -0
- package/cjs/{types-feda9656.js → chunks/bundle-M6v8bdc6.js} +6 -6
- package/cjs/chunks/bundle-M6v8bdc6.js.map +1 -0
- package/cjs/{consts-61d83828.js → chunks/bundle-MB8QdyyQ.js} +1 -1
- package/cjs/chunks/bundle-MB8QdyyQ.js.map +1 -0
- package/cjs/chunks/bundle-MwYMtlCB.js +109 -0
- package/cjs/chunks/bundle-MwYMtlCB.js.map +1 -0
- package/cjs/chunks/bundle-NOQysszZ.js +10 -0
- package/cjs/chunks/bundle-NOQysszZ.js.map +1 -0
- package/cjs/chunks/bundle-OfmF0BBb.js +99 -0
- package/cjs/chunks/bundle-OfmF0BBb.js.map +1 -0
- package/cjs/{consts-b3c4f548.js → chunks/bundle-PoR4V_kd.js} +1 -1
- package/cjs/chunks/bundle-PoR4V_kd.js.map +1 -0
- package/cjs/{index-54279ec2.js → chunks/bundle-RG3ZDmvE.js} +1 -1
- package/cjs/chunks/bundle-RG3ZDmvE.js.map +1 -0
- package/cjs/chunks/bundle-RV4B0RCM.js +27 -0
- package/cjs/chunks/bundle-RV4B0RCM.js.map +1 -0
- package/cjs/chunks/bundle-TCdgqawd.js +75 -0
- package/cjs/chunks/bundle-TCdgqawd.js.map +1 -0
- package/cjs/{const-c9e7a340.js → chunks/bundle-VHUezYnn.js} +10 -10
- package/cjs/chunks/bundle-VHUezYnn.js.map +1 -0
- package/cjs/chunks/bundle-Y0ibVW_O.js +139 -0
- package/cjs/chunks/bundle-Y0ibVW_O.js.map +1 -0
- package/cjs/chunks/bundle-YRW87MiX.js +22 -0
- package/cjs/chunks/bundle-YRW87MiX.js.map +1 -0
- package/cjs/{uuid-9a117e16.js → chunks/bundle-Z8uBiYyS.js} +11 -13
- package/cjs/chunks/bundle-Z8uBiYyS.js.map +1 -0
- package/cjs/chunks/bundle-ZYvG_yE0.js +26 -0
- package/cjs/chunks/bundle-ZYvG_yE0.js.map +1 -0
- package/cjs/chunks/bundle-_R3HdLLP.js +831 -0
- package/cjs/chunks/bundle-_R3HdLLP.js.map +1 -0
- package/cjs/chunks/bundle-_yIYQoui.js +1523 -0
- package/cjs/chunks/bundle-_yIYQoui.js.map +1 -0
- package/cjs/chunks/bundle-a_NGo240.js +16 -0
- package/cjs/chunks/bundle-a_NGo240.js.map +1 -0
- package/cjs/chunks/bundle-bQffWPr0.js +84 -0
- package/cjs/chunks/bundle-bQffWPr0.js.map +1 -0
- package/cjs/{index-7627b546.js → chunks/bundle-cKt6NzI1.js} +12 -3
- package/cjs/chunks/bundle-cKt6NzI1.js.map +1 -0
- package/cjs/chunks/bundle-fTDV9UxX.js +84 -0
- package/cjs/chunks/bundle-fTDV9UxX.js.map +1 -0
- package/cjs/chunks/bundle-h48X_8mu.js +224 -0
- package/cjs/chunks/bundle-h48X_8mu.js.map +1 -0
- package/cjs/chunks/bundle-kkxTVcGD.js +79 -0
- package/cjs/chunks/bundle-kkxTVcGD.js.map +1 -0
- package/cjs/chunks/bundle-leALuaxJ.js +228 -0
- package/cjs/chunks/bundle-leALuaxJ.js.map +1 -0
- package/cjs/chunks/bundle-lj7KorhP.js +81 -0
- package/cjs/chunks/bundle-lj7KorhP.js.map +1 -0
- package/cjs/chunks/bundle-lkluBCYi.js +74 -0
- package/cjs/chunks/bundle-lkluBCYi.js.map +1 -0
- package/cjs/{tslib.es6-c74b513f.js → chunks/bundle-mc8PQfi_.js} +1 -1
- package/cjs/chunks/bundle-mc8PQfi_.js.map +1 -0
- package/cjs/chunks/bundle-n6O0NYfY.js +279 -0
- package/cjs/chunks/bundle-n6O0NYfY.js.map +1 -0
- package/cjs/chunks/bundle-o5pJIgS7.js +35 -0
- package/cjs/chunks/bundle-o5pJIgS7.js.map +1 -0
- package/cjs/chunks/bundle-o66lc7qg.js +69 -0
- package/cjs/chunks/bundle-o66lc7qg.js.map +1 -0
- package/cjs/chunks/bundle-oISd80pA.js +28 -0
- package/cjs/chunks/bundle-oISd80pA.js.map +1 -0
- package/cjs/chunks/bundle-oiMScSG6.js +236 -0
- package/cjs/chunks/bundle-oiMScSG6.js.map +1 -0
- package/cjs/{index-3448df64.js → chunks/bundle-pLajF9mf.js} +202 -64
- package/cjs/chunks/bundle-pLajF9mf.js.map +1 -0
- package/cjs/chunks/bundle-t70SIG3R.js +181 -0
- package/cjs/chunks/bundle-t70SIG3R.js.map +1 -0
- package/cjs/chunks/bundle-tooLK5gn.js +360 -0
- package/cjs/chunks/bundle-tooLK5gn.js.map +1 -0
- package/cjs/chunks/bundle-u4ZfKyD_.js +15 -0
- package/cjs/chunks/bundle-u4ZfKyD_.js.map +1 -0
- package/cjs/{index-134e9852.js → chunks/bundle-uE1K1eGs.js} +4 -2
- package/cjs/chunks/bundle-uE1K1eGs.js.map +1 -0
- package/cjs/chunks/bundle-vWOLHFBL.js +356 -0
- package/cjs/chunks/bundle-vWOLHFBL.js.map +1 -0
- package/cjs/chunks/bundle-viTxhrPr.js +8 -0
- package/cjs/chunks/bundle-viTxhrPr.js.map +1 -0
- package/cjs/{resolvedReplyType-c4564ebe.js → chunks/bundle-wPu8WyIh.js} +26 -26
- package/cjs/chunks/bundle-wPu8WyIh.js.map +1 -0
- package/cjs/chunks/bundle-xy995kna.js +236 -0
- package/cjs/chunks/bundle-xy995kna.js.map +1 -0
- package/cjs/handlers/OpenChannelHandler.js +2 -2
- package/cjs/handlers/OpenChannelHandler.js.map +1 -1
- package/cjs/handlers/SessionHandler.js +2 -2
- package/cjs/handlers/SessionHandler.js.map +1 -1
- package/cjs/hooks/useModal.js +47 -72
- package/cjs/hooks/useModal.js.map +1 -1
- package/cjs/index.js +61 -65
- package/cjs/index.js.map +1 -1
- package/cjs/lame.all.js +14799 -681
- package/cjs/lame.all.js.map +1 -1
- package/cjs/package.json +1 -3
- package/cjs/pubSub/topics.js +12 -17
- package/cjs/pubSub/topics.js.map +1 -1
- package/cjs/sendbirdSelectors.js +551 -619
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/ui/Accordion.js +40 -57
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +9 -22
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +13 -23
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +9 -199
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +18 -26
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +28 -38
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +41 -63
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +21 -48
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +15 -28
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +11 -22
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +196 -285
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +13 -28
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +144 -331
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +30 -53
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +18 -17
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +558 -729
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +18 -49
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +103 -154
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -42
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +4 -4
- package/cjs/ui/LinkLabel.js +22 -51
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +11 -25
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +49 -83
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +4 -19
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +245 -414
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput/hooks/usePaste.js +6 -6
- package/cjs/ui/MessageInput.js +447 -625
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +110 -166
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +39 -102
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +78 -115
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +50 -84
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +13 -13
- package/cjs/ui/Modal.js +18 -131
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/MutedAvatarOverlay.js +14 -30
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +66 -111
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +9 -18
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +15 -30
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +22 -61
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +114 -238
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +157 -332
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +152 -317
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +126 -268
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +46 -105
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +12 -26
- package/cjs/ui/PlaybackTime.js.map +1 -1
- package/cjs/ui/ProgressBar.js +13 -31
- package/cjs/ui/ProgressBar.js.map +1 -1
- package/cjs/ui/QuoteMessage.js +70 -146
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +71 -102
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +20 -46
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +17 -39
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +23 -35
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +9 -29
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +43 -59
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +33 -71
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +34 -74
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +110 -189
- package/cjs/ui/Toggle.js.map +1 -1
- package/cjs/ui/Tooltip.js +9 -20
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +13 -45
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +20 -34
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +51 -118
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +45 -74
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +53 -106
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +9 -11
- package/cjs/ui/VoiceMessgeInput.js.map +1 -1
- package/cjs/ui/Word.js +60 -89
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useSendbirdStateContext.js +16 -15
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +32 -31
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -5
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/withSendbird.js +18 -23
- package/cjs/withSendbird.js.map +1 -1
- package/dist/index.css +1014 -903
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js +2 -2
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js +2 -2
- package/handlers/SessionHandler.js.map +1 -1
- package/hooks/useModal.js +47 -65
- package/hooks/useModal.js.map +1 -1
- package/index.js +58 -60
- package/index.js.map +1 -1
- package/lame.all.js +14797 -679
- package/lame.all.js.map +1 -1
- package/package.json +1454 -79
- package/pubSub/topics.js +1 -17
- package/pubSub/topics.js.map +1 -1
- package/sendbirdSelectors.js +550 -618
- package/sendbirdSelectors.js.map +1 -1
- package/types/hooks/VoicePlayer/dux/actionTypes.d.ts +14 -0
- package/types/hooks/VoicePlayer/dux/initialState.d.ts +30 -0
- package/types/hooks/VoicePlayer/dux/reducer.d.ts +25 -0
- package/types/hooks/VoicePlayer/index.d.ts +19 -0
- package/types/hooks/VoicePlayer/useVoicePlayer.d.ts +16 -0
- package/types/hooks/VoicePlayer/utils.d.ts +2 -0
- package/types/hooks/VoiceRecorder/WebAudioUtils.d.ts +4 -0
- package/types/hooks/VoiceRecorder/index.d.ts +20 -0
- package/types/hooks/VoiceRecorder/useVoiceRecorder.d.ts +18 -0
- package/types/hooks/useAppendDomNode.d.ts +2 -0
- package/types/hooks/useDebounce.d.ts +1 -0
- package/types/hooks/useHandleOnScrollCallback/index.d.ts +11 -0
- package/types/hooks/useLongPress.d.ts +21 -0
- package/types/hooks/useModal/ModalRoot/index.d.ts +4 -0
- package/types/hooks/useModal/index.d.ts +15 -0
- package/types/hooks/useMouseHover.d.ts +7 -0
- package/types/hooks/useOutsideAlerter.d.ts +7 -0
- package/types/hooks/useSendbirdStateContext.d.ts +3 -0
- package/types/hooks/useUnmount.d.ts +2 -0
- package/types/index.d.ts +13 -0
- package/types/lib/LocalizationContext.d.ts +19 -0
- package/types/lib/Logger/index.d.ts +24 -0
- package/types/lib/MediaQueryContext.d.ts +14 -0
- package/types/lib/Sendbird.d.ts +65 -0
- package/types/lib/SendbirdSdkContext.d.ts +9 -0
- package/types/lib/SendbirdState.d.ts +7 -0
- package/types/lib/UserProfileContext.d.ts +22 -0
- package/types/lib/VoiceMessageProvider.d.ts +7 -0
- package/types/lib/dux/sdk/actionTypes.d.ts +16 -0
- package/types/lib/dux/sdk/initialState.d.ts +9 -0
- package/types/lib/dux/sdk/reducers.d.ts +3 -0
- package/types/lib/dux/user/actionTypes.d.ts +14 -0
- package/types/lib/dux/user/initialState.d.ts +8 -0
- package/types/lib/dux/user/reducers.d.ts +3 -0
- package/types/lib/handlers/ConnectionHandler.d.ts +5 -0
- package/types/lib/handlers/GroupChannelHandler.d.ts +7 -0
- package/types/lib/handlers/OpenChannelHandler.d.ts +5 -0
- package/types/lib/handlers/SessionHandler.d.ts +5 -0
- package/types/lib/handlers/UserEventHandler.d.ts +5 -0
- package/types/lib/hooks/schedulerFactory.d.ts +11 -0
- package/types/lib/hooks/useConnect/__test__/data.mocks.d.ts +15 -0
- package/types/lib/hooks/useConnect/connect.d.ts +2 -0
- package/types/lib/hooks/useConnect/disconnectSdk.d.ts +2 -0
- package/types/lib/hooks/useConnect/index.d.ts +2 -0
- package/types/lib/hooks/useConnect/setupConnection.d.ts +18 -0
- package/types/lib/hooks/useConnect/types.d.ts +42 -0
- package/types/lib/hooks/useMarkAsDeliveredScheduler.d.ts +15 -0
- package/types/lib/hooks/useMarkAsReadScheduler.d.ts +15 -0
- package/types/lib/hooks/useOnlineStatus.d.ts +4 -0
- package/types/lib/hooks/useTheme.d.ts +2 -0
- package/types/lib/pubSub/index.d.ts +19 -0
- package/types/lib/pubSub/topics.d.ts +86 -0
- package/types/lib/selectors.d.ts +248 -0
- package/types/lib/types.d.ts +166 -0
- package/types/lib/utils/resolvedReplyType.d.ts +28 -0
- package/types/lib/utils/uikitConfigMapper.d.ts +5 -0
- package/types/modules/App/AppLayout.d.ts +3 -0
- package/types/modules/App/DesktopLayout.d.ts +3 -0
- package/types/modules/App/MobileLayout.d.ts +4 -0
- package/types/modules/App/index.d.ts +44 -0
- package/types/modules/App/types.d.ts +72 -0
- package/types/modules/Channel/components/ChannelHeader/index.d.ts +7 -0
- package/types/modules/Channel/components/ChannelHeader/utils.d.ts +4 -0
- package/types/modules/Channel/components/ChannelUI/index.d.ts +19 -0
- package/types/modules/Channel/components/FileViewer/index.d.ts +21 -0
- package/types/modules/Channel/components/FrozenNotification/index.d.ts +7 -0
- package/types/modules/Channel/components/Message/index.d.ts +15 -0
- package/types/modules/Channel/components/MessageInput/VoiceMessageInputWrapper.d.ts +10 -0
- package/types/modules/Channel/components/MessageInput/index.d.ts +11 -0
- package/types/modules/Channel/components/MessageInput/useHandleUploadFiles.d.ts +19 -0
- package/types/modules/Channel/components/MessageList/getMessagePartsInfo.d.ts +20 -0
- package/types/modules/Channel/components/MessageList/hooks/useScrollBehavior.d.ts +1 -0
- package/types/modules/Channel/components/MessageList/hooks/useSetScrollToBottom.d.ts +7 -0
- package/types/modules/Channel/components/MessageList/index.d.ts +12 -0
- package/types/modules/Channel/components/RemoveMessageModal.d.ts +9 -0
- package/types/modules/Channel/components/SuggestedMentionList/SuggestedUserMentionItem.d.ts +21 -0
- package/types/modules/Channel/components/SuggestedMentionList/index.d.ts +20 -0
- package/types/modules/Channel/components/SuggestedMentionList/utils.d.ts +3 -0
- package/types/modules/Channel/components/SuggestedReplies/index.d.ts +10 -0
- package/types/modules/Channel/components/TypingIndicator.d.ts +8 -0
- package/types/modules/Channel/components/UnreadCount/index.d.ts +12 -0
- package/types/modules/Channel/context/ChannelProvider.d.ts +131 -0
- package/types/modules/Channel/context/compareMessagesForGrouping.d.ts +10 -0
- package/types/modules/Channel/context/const.d.ts +9 -0
- package/types/modules/Channel/context/dux/actionTypes.d.ts +93 -0
- package/types/modules/Channel/context/dux/initialState.d.ts +25 -0
- package/types/modules/Channel/context/dux/reducers.d.ts +3 -0
- package/types/modules/Channel/context/hooks/useDeleteMessageCallback.d.ts +14 -0
- package/types/modules/Channel/context/hooks/useGetChannel.d.ts +18 -0
- package/types/modules/Channel/context/hooks/useHandleChannelEvents.d.ts +29 -0
- package/types/modules/Channel/context/hooks/useHandleChannelPubsubEvents.d.ts +11 -0
- package/types/modules/Channel/context/hooks/useHandleReconnect.d.ts +23 -0
- package/types/modules/Channel/context/hooks/useInitialMessagesFetch.d.ts +20 -0
- package/types/modules/Channel/context/hooks/useReconnectOnIdle.d.ts +5 -0
- package/types/modules/Channel/context/hooks/useResendMessageCallback.d.ts +14 -0
- package/types/modules/Channel/context/hooks/useScrollCallback.d.ts +21 -0
- package/types/modules/Channel/context/hooks/useScrollDownCallback.d.ts +23 -0
- package/types/modules/Channel/context/hooks/useScrollToMessage.d.ts +14 -0
- package/types/modules/Channel/context/hooks/useSendFileMessageCallback.d.ts +21 -0
- package/types/modules/Channel/context/hooks/useSendMessageCallback.d.ts +27 -0
- package/types/modules/Channel/context/hooks/useSendMultipleFilesMessage.d.ts +32 -0
- package/types/modules/Channel/context/hooks/useSendVoiceMessageCallback.d.ts +21 -0
- package/types/modules/Channel/context/hooks/useStatefulFileInfoList.d.ts +3 -0
- package/types/modules/Channel/context/hooks/useThreadMessageKindKeySelector.d.ts +7 -0
- package/types/modules/Channel/context/hooks/useToggleReactionCallback.d.ts +11 -0
- package/types/modules/Channel/context/hooks/useUpdateMessageCallback.d.ts +26 -0
- package/types/modules/Channel/context/utils.d.ts +18 -0
- package/types/modules/Channel/index.d.ts +7 -0
- package/types/modules/ChannelList/components/AddChannel/index.d.ts +3 -0
- package/types/modules/ChannelList/components/ChannelListHeader/index.d.ts +11 -0
- package/types/modules/ChannelList/components/ChannelListUI/index.d.ts +23 -0
- package/types/modules/ChannelList/components/ChannelPreview/index.d.ts +16 -0
- package/types/modules/ChannelList/components/ChannelPreview/utils.d.ts +10 -0
- package/types/modules/ChannelList/components/ChannelPreviewAction.d.ts +9 -0
- package/types/modules/ChannelList/components/LeaveChannel/index.d.ts +9 -0
- package/types/modules/ChannelList/components/Placeholder.d.ts +7 -0
- package/types/modules/ChannelList/context/ChannelListProvider.d.ts +75 -0
- package/types/modules/ChannelList/context/hooks/useActiveChannelUrl.d.ts +15 -0
- package/types/modules/ChannelList/context/hooks/useFetchChannelList.d.ts +17 -0
- package/types/modules/ChannelList/dux/actionTypes.d.ts +66 -0
- package/types/modules/ChannelList/dux/getNextChannel.d.ts +14 -0
- package/types/modules/ChannelList/dux/initialState.d.ts +12 -0
- package/types/modules/ChannelList/dux/reducers.d.ts +3 -0
- package/types/modules/ChannelList/index.d.ts +7 -0
- package/types/modules/ChannelList/utils.d.ts +35 -0
- package/types/modules/ChannelSettings/components/ChannelProfile/index.d.ts +4 -0
- package/types/modules/ChannelSettings/components/ChannelSettingsUI/index.d.ts +10 -0
- package/types/modules/ChannelSettings/components/EditDetailsModal/index.d.ts +7 -0
- package/types/modules/ChannelSettings/components/LeaveChannel/index.d.ts +8 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/AddOperatorsModal.d.ts +7 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/BannedUserList.d.ts +3 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/BannedUsersModal.d.ts +6 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/InviteUsersModal.d.ts +7 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/MemberList.d.ts +3 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/MembersModal.d.ts +6 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/MutedMemberList.d.ts +3 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/MutedMembersModal.d.ts +6 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/OperatorList.d.ts +3 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/OperatorsModal.d.ts +6 -0
- package/types/modules/ChannelSettings/components/ModerationPanel/index.d.ts +3 -0
- package/types/modules/ChannelSettings/components/UserListItem/index.d.ts +19 -0
- package/types/modules/ChannelSettings/components/UserPanel/index.d.ts +4 -0
- package/types/modules/ChannelSettings/context/ChannelSettingsProvider.d.ts +47 -0
- package/types/modules/ChannelSettings/index.d.ts +7 -0
- package/types/modules/CreateChannel/components/CreateChannelUI/index.d.ts +8 -0
- package/types/modules/CreateChannel/components/InviteUsers/index.d.ts +9 -0
- package/types/modules/CreateChannel/components/InviteUsers/utils.d.ts +12 -0
- package/types/modules/CreateChannel/components/SelectChannelType.d.ts +6 -0
- package/types/modules/CreateChannel/context/CreateChannelProvider.d.ts +37 -0
- package/types/modules/CreateChannel/index.d.ts +7 -0
- package/types/modules/CreateChannel/types.d.ts +5 -0
- package/types/modules/CreateChannel/utils.d.ts +3 -0
- package/types/modules/CreateOpenChannel/components/CreateOpenChannelUI/index.d.ts +9 -0
- package/types/modules/CreateOpenChannel/context/CreateOpenChannelProvider.d.ts +22 -0
- package/types/modules/CreateOpenChannel/index.d.ts +7 -0
- package/types/modules/EditUserProfile/components/EditUserProfileUI/index.d.ts +3 -0
- package/types/modules/EditUserProfile/context/EditUserProfileProvider.d.ts +16 -0
- package/types/modules/EditUserProfile/index.d.ts +4 -0
- package/types/modules/Message/components/TextFragment/index.d.ts +6 -0
- package/types/modules/Message/consts.d.ts +1 -0
- package/types/modules/Message/context/MessageProvider.d.ts +11 -0
- package/types/modules/Message/hooks/useDirtyGetMentions.d.ts +14 -0
- package/types/modules/Message/utils/getMentionNodes.d.ts +1 -0
- package/types/modules/Message/utils/tokens/keyGenerator.d.ts +1 -0
- package/types/modules/Message/utils/tokens/tokenize.d.ts +18 -0
- package/types/modules/Message/utils/tokens/types.d.ts +37 -0
- package/types/modules/MessageSearch/components/MessageSearchUI/index.d.ts +15 -0
- package/types/modules/MessageSearch/context/MessageSearchProvider.d.ts +41 -0
- package/types/modules/MessageSearch/context/dux/actionTypes.d.ts +8 -0
- package/types/modules/MessageSearch/context/dux/initialState.d.ts +14 -0
- package/types/modules/MessageSearch/context/dux/reducers.d.ts +7 -0
- package/types/modules/MessageSearch/context/hooks/useGetSearchedMessages.d.ts +24 -0
- package/types/modules/MessageSearch/context/hooks/useScrollCallback.d.ts +20 -0
- package/types/modules/MessageSearch/context/hooks/useSearchStringEffect.d.ts +11 -0
- package/types/modules/MessageSearch/context/hooks/useSetChannel.d.ts +16 -0
- package/types/modules/MessageSearch/index.d.ts +10 -0
- package/types/modules/OpenChannel/components/FrozenChannelNotification/index.d.ts +4 -0
- package/types/modules/OpenChannel/components/OpenChannelHeader/index.d.ts +3 -0
- package/types/modules/OpenChannel/components/OpenChannelInput/index.d.ts +6 -0
- package/types/modules/OpenChannel/components/OpenChannelMessage/RemoveMessageModal.d.ts +10 -0
- package/types/modules/OpenChannel/components/OpenChannelMessage/index.d.ts +12 -0
- package/types/modules/OpenChannel/components/OpenChannelMessage/utils.d.ts +37 -0
- package/types/modules/OpenChannel/components/OpenChannelMessageList/index.d.ts +9 -0
- package/types/modules/OpenChannel/components/OpenChannelUI/index.d.ts +13 -0
- package/types/modules/OpenChannel/context/OpenChannelProvider.d.ts +52 -0
- package/types/modules/OpenChannel/context/dux/actionTypes.d.ts +37 -0
- package/types/modules/OpenChannel/context/dux/initialState.d.ts +19 -0
- package/types/modules/OpenChannel/context/dux/reducers.d.ts +7 -0
- package/types/modules/OpenChannel/context/hooks/useCheckScrollBottom.d.ts +10 -0
- package/types/modules/OpenChannel/context/hooks/useDeleteMessageCallback.d.ts +17 -0
- package/types/modules/OpenChannel/context/hooks/useFileUploadCallback.d.ts +27 -0
- package/types/modules/OpenChannel/context/hooks/useHandleChannelEvents.d.ts +20 -0
- package/types/modules/OpenChannel/context/hooks/useInitialMessagesFetch.d.ts +14 -0
- package/types/modules/OpenChannel/context/hooks/useResendMessageCallback.d.ts +17 -0
- package/types/modules/OpenChannel/context/hooks/useScrollCallback.d.ts +18 -0
- package/types/modules/OpenChannel/context/hooks/useSendMessageCallback.d.ts +22 -0
- package/types/modules/OpenChannel/context/hooks/useSetChannel.d.ts +20 -0
- package/types/modules/OpenChannel/context/hooks/useTrimMessageList.d.ts +17 -0
- package/types/modules/OpenChannel/context/hooks/useUpdateMessageCallback.d.ts +17 -0
- package/types/modules/OpenChannel/context/utils.d.ts +16 -0
- package/types/modules/OpenChannel/index.d.ts +7 -0
- package/types/modules/OpenChannelApp/Community.d.ts +11 -0
- package/types/modules/OpenChannelApp/Streaming.d.ts +11 -0
- package/types/modules/OpenChannelApp/assets/Icons.d.ts +7 -0
- package/types/modules/OpenChannelApp/components/CommunityChannelList.d.ts +7 -0
- package/types/modules/OpenChannelApp/components/DummyStream.d.ts +20 -0
- package/types/modules/OpenChannelApp/components/Login.d.ts +12 -0
- package/types/modules/OpenChannelApp/components/OpenChannelPreview.d.ts +11 -0
- package/types/modules/OpenChannelApp/components/Profile.d.ts +8 -0
- package/types/modules/OpenChannelApp/components/StreamingChannelList.d.ts +7 -0
- package/types/modules/OpenChannelApp/index.d.ts +16 -0
- package/types/modules/OpenChannelApp/stories/utils.d.ts +6 -0
- package/types/modules/OpenChannelList/components/OpenChannelListUI/index.d.ts +18 -0
- package/types/modules/OpenChannelList/components/OpenChannelPreview/index.d.ts +11 -0
- package/types/modules/OpenChannelList/context/OpenChannelListInterfaces.d.ts +42 -0
- package/types/modules/OpenChannelList/context/OpenChannelListProvider.d.ts +9 -0
- package/types/modules/OpenChannelList/context/dux/actionTypes.d.ts +14 -0
- package/types/modules/OpenChannelList/context/dux/initialState.d.ts +10 -0
- package/types/modules/OpenChannelList/context/dux/reducer.d.ts +6 -0
- package/types/modules/OpenChannelList/context/hooks/createChannelListQuery.d.ts +13 -0
- package/types/modules/OpenChannelList/context/hooks/useFetchNextCallback.d.ts +15 -0
- package/types/modules/OpenChannelList/context/hooks/useRefreshOpenChannelList.d.ts +14 -0
- package/types/modules/OpenChannelList/context/hooks/useSetupOpenChannelList.d.ts +14 -0
- package/types/modules/OpenChannelList/index.d.ts +7 -0
- package/types/modules/OpenChannelSettings/components/EditDetailsModal.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/InvalidChannel.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/OpenChannelProfile/index.d.ts +3 -0
- package/types/modules/OpenChannelSettings/components/OpenChannelSettingsUI/index.d.ts +8 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/AddOperatorsModal.d.ts +7 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/BannedUserList.d.ts +3 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/BannedUsersModal.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/DeleteOpenChannel.d.ts +2 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/MutedParticipantList.d.ts +3 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/MutedParticipantsModal.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/OperatorList.d.ts +3 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/OperatorsModal.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/OperatorUI/index.d.ts +7 -0
- package/types/modules/OpenChannelSettings/components/ParticipantUI/ParticipantItem.d.ts +17 -0
- package/types/modules/OpenChannelSettings/components/ParticipantUI/ParticipantsModal.d.ts +6 -0
- package/types/modules/OpenChannelSettings/components/ParticipantUI/index.d.ts +6 -0
- package/types/modules/OpenChannelSettings/context/OpenChannelSettingsProvider.d.ts +27 -0
- package/types/modules/OpenChannelSettings/index.d.ts +7 -0
- package/types/modules/Thread/components/ParentMessageInfo/ParentMessageInfoItem.d.ts +9 -0
- package/types/modules/Thread/components/ParentMessageInfo/index.d.ts +6 -0
- package/types/modules/Thread/components/RemoveMessageModal.d.ts +9 -0
- package/types/modules/Thread/components/ThreadHeader/index.d.ts +14 -0
- package/types/modules/Thread/components/ThreadList/ThreadListItem.d.ts +14 -0
- package/types/modules/Thread/components/ThreadList/ThreadListItemContent.d.ts +30 -0
- package/types/modules/Thread/components/ThreadList/index.d.ts +18 -0
- package/types/modules/Thread/components/ThreadMessageInput/index.d.ts +11 -0
- package/types/modules/Thread/components/ThreadUI/index.d.ts +23 -0
- package/types/modules/Thread/components/ThreadUI/useMemorizedHeader.d.ts +6 -0
- package/types/modules/Thread/components/ThreadUI/useMemorizedParentMessageInfo.d.ts +11 -0
- package/types/modules/Thread/components/ThreadUI/useMemorizedThreadList.d.ts +8 -0
- package/types/modules/Thread/consts.d.ts +2 -0
- package/types/modules/Thread/context/ThreadProvider.d.ts +43 -0
- package/types/modules/Thread/context/dux/actionTypes.d.ts +38 -0
- package/types/modules/Thread/context/dux/initialState.d.ts +22 -0
- package/types/modules/Thread/context/dux/reducer.d.ts +8 -0
- package/types/modules/Thread/context/hooks/useDeleteMessageCallback.d.ts +12 -0
- package/types/modules/Thread/context/hooks/useGetAllEmoji.d.ts +11 -0
- package/types/modules/Thread/context/hooks/useGetChannel.d.ts +18 -0
- package/types/modules/Thread/context/hooks/useGetNextThreadsCallback.d.ts +17 -0
- package/types/modules/Thread/context/hooks/useGetParentMessage.d.ts +15 -0
- package/types/modules/Thread/context/hooks/useGetPrevThreadsCallback.d.ts +17 -0
- package/types/modules/Thread/context/hooks/useGetThreadList.d.ts +14 -0
- package/types/modules/Thread/context/hooks/useHandleChannelEvents.d.ts +13 -0
- package/types/modules/Thread/context/hooks/useHandleThreadPubsubEvents.d.ts +16 -0
- package/types/modules/Thread/context/hooks/useResendMessageCallback.d.ts +14 -0
- package/types/modules/Thread/context/hooks/useSendFileMessage.d.ts +17 -0
- package/types/modules/Thread/context/hooks/useSendMultipleFilesMessage.d.ts +8 -0
- package/types/modules/Thread/context/hooks/useSendUserMessageCallback.d.ts +25 -0
- package/types/modules/Thread/context/hooks/useSendVoiceMessageCallback.d.ts +17 -0
- package/types/modules/Thread/context/hooks/useToggleReactionsCallback.d.ts +10 -0
- package/types/modules/Thread/context/hooks/useUpdateMessageCallback.d.ts +14 -0
- package/types/modules/Thread/context/utils.d.ts +15 -0
- package/types/modules/Thread/index.d.ts +8 -0
- package/types/modules/Thread/types.d.ts +18 -0
- package/types/modules/internalInterfaces.d.ts +6 -0
- package/types/types.d.ts +55 -0
- package/types/ui/Accordion/AccordionGroup.d.ts +7 -0
- package/types/ui/Accordion/context.d.ts +8 -0
- package/types/ui/Accordion/index.d.ts +13 -0
- package/types/ui/AdminMessage/adminMessageDummyData.mock.d.ts +29 -0
- package/types/ui/AdminMessage/index.d.ts +9 -0
- package/types/ui/Avatar/MutedAvatarOverlay.d.ts +8 -0
- package/types/ui/Avatar/index.d.ts +27 -0
- package/types/ui/Badge/index.d.ts +8 -0
- package/types/ui/BottomSheet/index.d.ts +9 -0
- package/types/ui/Button/index.d.ts +13 -0
- package/types/ui/Button/types.d.ts +10 -0
- package/types/ui/Button/utils.d.ts +3 -0
- package/types/ui/ChannelAvatar/OpenChannelAvatar.d.ts +10 -0
- package/types/ui/ChannelAvatar/index.d.ts +12 -0
- package/types/ui/ChannelAvatar/utils.d.ts +6 -0
- package/types/ui/Checkbox/index.d.ts +9 -0
- package/types/ui/ConnectionStatus/index.d.ts +4 -0
- package/types/ui/ContextMenu/EmojiListItems.d.ts +15 -0
- package/types/ui/ContextMenu/MenuItems.d.ts +29 -0
- package/types/ui/ContextMenu/index.d.ts +24 -0
- package/types/ui/DateSeparator/index.d.ts +10 -0
- package/types/ui/Docs/Introduction.d.ts +2 -0
- package/types/ui/EmojiReactions/AddReactionBadgeItem.d.ts +5 -0
- package/types/ui/EmojiReactions/ReactionItem.d.ts +17 -0
- package/types/ui/EmojiReactions/index.d.ts +21 -0
- package/types/ui/FileMessageItemBody/index.d.ts +13 -0
- package/types/ui/FileViewer/DeleteButton.d.ts +5 -0
- package/types/ui/FileViewer/Slider.d.ts +3 -0
- package/types/ui/FileViewer/data.mock.d.ts +84 -0
- package/types/ui/FileViewer/hooks/useKeyDown.d.ts +8 -0
- package/types/ui/FileViewer/index.d.ts +17 -0
- package/types/ui/FileViewer/types.d.ts +44 -0
- package/types/ui/FileViewer/utils.d.ts +4 -0
- package/types/ui/Icon/colors.d.ts +42 -0
- package/types/ui/Icon/index.d.ts +96 -0
- package/types/ui/Icon/type.d.ts +61 -0
- package/types/ui/Icon/utils.d.ts +4 -0
- package/types/ui/IconButton/index.d.ts +17 -0
- package/types/ui/ImageGrid/index.d.ts +11 -0
- package/types/ui/ImageRenderer/index.d.ts +27 -0
- package/types/ui/ImageRenderer/useDynamicSideLength.d.ts +8 -0
- package/types/ui/ImageRenderer/utils.d.ts +1 -0
- package/types/ui/Input/index.d.ts +15 -0
- package/types/ui/Label/index.d.ts +37 -0
- package/types/ui/Label/stringFormatterUtils.d.ts +2 -0
- package/types/ui/Label/stringSet.d.ts +189 -0
- package/types/ui/Label/types.d.ts +24 -0
- package/types/ui/Label/utils.d.ts +4 -0
- package/types/ui/LegacyEditUserProfile/index.d.ts +20 -0
- package/types/ui/LinkLabel/index.d.ts +37 -0
- package/types/ui/Loader/index.d.ts +9 -0
- package/types/ui/MentionLabel/index.d.ts +10 -0
- package/types/ui/MentionUserLabel/consts.d.ts +1 -0
- package/types/ui/MentionUserLabel/index.d.ts +11 -0
- package/types/ui/MentionUserLabel/renderToString.d.ts +6 -0
- package/types/ui/MessageContent/MessageBody/index.d.ts +18 -0
- package/types/ui/MessageContent/MessageHeader/index.d.ts +10 -0
- package/types/ui/MessageContent/MessageProfile/index.d.ts +15 -0
- package/types/ui/MessageContent/index.d.ts +44 -0
- package/types/ui/MessageInput/const.d.ts +15 -0
- package/types/ui/MessageInput/hooks/usePaste/consts.d.ts +5 -0
- package/types/ui/MessageInput/hooks/usePaste/index.d.ts +4 -0
- package/types/ui/MessageInput/hooks/usePaste/insertTemplate.d.ts +2 -0
- package/types/ui/MessageInput/hooks/usePaste/types.d.ts +15 -0
- package/types/ui/MessageInput/hooks/usePaste/utils.d.ts +10 -0
- package/types/ui/MessageInput/index.d.ts +47 -0
- package/types/ui/MessageInput/messageInputUtils.d.ts +21 -0
- package/types/ui/MessageInput/utils.d.ts +9 -0
- package/types/ui/MessageItemMenu/index.d.ts +26 -0
- package/types/ui/MessageItemReactionMenu/index.d.ts +16 -0
- package/types/ui/MessageSearchFileItem/index.d.ts +12 -0
- package/types/ui/MessageSearchFileItem/mockFileMessage.d.ts +180 -0
- package/types/ui/MessageSearchFileItem/utils.d.ts +12 -0
- package/types/ui/MessageSearchItem/getCreatedAt.d.ts +8 -0
- package/types/ui/MessageSearchItem/index.d.ts +11 -0
- package/types/ui/MessageSearchItem/messageDummyDate.mock.d.ts +5 -0
- package/types/ui/MessageStatus/index.d.ts +15 -0
- package/types/ui/MessageStatus/messageDummyData.mock.d.ts +7 -0
- package/types/ui/MobileMenu/MobileBottomSheet.d.ts +4 -0
- package/types/ui/MobileMenu/MobileContextMenu.d.ts +4 -0
- package/types/ui/MobileMenu/MobileEmojisBottomSheet.d.ts +11 -0
- package/types/ui/MobileMenu/ReactedMembersBottomSheet.d.ts +14 -0
- package/types/ui/MobileMenu/index.d.ts +5 -0
- package/types/ui/MobileMenu/types.d.ts +32 -0
- package/types/ui/Modal/index.d.ts +40 -0
- package/types/ui/MultipleFilesMessageItemBody/const.d.ts +17 -0
- package/types/ui/MultipleFilesMessageItemBody/index.d.ts +21 -0
- package/types/ui/OGMessageItemBody/consts.d.ts +1 -0
- package/types/ui/OGMessageItemBody/index.d.ts +14 -0
- package/types/ui/OpenChannelAdminMessage/index.d.ts +9 -0
- package/types/ui/OpenChannelMobileMenu/index.d.ts +15 -0
- package/types/ui/OpenchannelConversationHeader/index.d.ts +11 -0
- package/types/ui/OpenchannelFileMessage/index.d.ts +17 -0
- package/types/ui/OpenchannelFileMessage/mockMessages.d.ts +75 -0
- package/types/ui/OpenchannelFileMessage/utils.d.ts +2 -0
- package/types/ui/OpenchannelOGMessage/index.d.ts +18 -0
- package/types/ui/OpenchannelOGMessage/utils.d.ts +4 -0
- package/types/ui/OpenchannelThumbnailMessage/index.d.ts +18 -0
- package/types/ui/OpenchannelThumbnailMessage/utils.d.ts +6 -0
- package/types/ui/OpenchannelUserMessage/index.d.ts +18 -0
- package/types/ui/OpenchannelUserMessage/utils.d.ts +5 -0
- package/types/ui/PlaceHolder/index.d.ts +19 -0
- package/types/ui/PlaybackTime/index.d.ts +11 -0
- package/types/ui/ProgressBar/index.d.ts +16 -0
- package/types/ui/QuoteMessage/index.d.ts +13 -0
- package/types/ui/QuoteMessage/utils.d.ts +7 -0
- package/types/ui/QuoteMessageInput/QuoteMessageThumbnail.d.ts +8 -0
- package/types/ui/QuoteMessageInput/index.d.ts +10 -0
- package/types/ui/QuoteMessageInput/mockMessage.d.ts +362 -0
- package/types/ui/ReactionBadge/index.d.ts +12 -0
- package/types/ui/ReactionButton/index.d.ts +13 -0
- package/types/ui/SortByRow/index.d.ts +10 -0
- package/types/ui/TextButton/index.d.ts +13 -0
- package/types/ui/TextMessageItemBody/consts.d.ts +1 -0
- package/types/ui/TextMessageItemBody/index.d.ts +13 -0
- package/types/ui/ThreadReplies/index.d.ts +9 -0
- package/types/ui/ThumbnailMessageItemBody/index.d.ts +15 -0
- package/types/ui/Toggle/ToggleContainer.d.ts +7 -0
- package/types/ui/Toggle/ToggleContext.d.ts +19 -0
- package/types/ui/Toggle/ToggleUI.d.ts +12 -0
- package/types/ui/Toggle/index.d.ts +11 -0
- package/types/ui/Toggle/utils.d.ts +1 -0
- package/types/ui/Tooltip/index.d.ts +7 -0
- package/types/ui/TooltipWrapper/index.d.ts +8 -0
- package/types/ui/TypingIndicatorMessage/TypingDots.d.ts +4 -0
- package/types/ui/TypingIndicatorMessage/index.d.ts +6 -0
- package/types/ui/UnknownMessageItemBody/index.d.ts +12 -0
- package/types/ui/UserListItem/index.d.ts +21 -0
- package/types/ui/UserProfile/index.d.ts +17 -0
- package/types/ui/VoiceMessageInput/controlerIcons.d.ts +7 -0
- package/types/ui/VoiceMessageInput/index.d.ts +16 -0
- package/types/ui/VoiceMessageInput/types.d.ts +7 -0
- package/types/ui/VoiceMessageItemBody/index.d.ts +12 -0
- package/types/ui/Word/index.d.ts +17 -0
- package/types/utils/cloneMessage.d.ts +2 -0
- package/types/utils/color.d.ts +12 -0
- package/types/utils/compareIds.d.ts +1 -0
- package/types/utils/compressImages.d.ts +11 -0
- package/types/utils/consts.d.ts +23 -0
- package/types/utils/createStatefulFileInfoList.d.ts +11 -0
- package/types/utils/exports/getOutgoingMessageState.d.ts +13 -0
- package/types/utils/getIsReactionEnabled.d.ts +11 -0
- package/types/utils/index.d.ts +142 -0
- package/types/utils/isVoiceMessage.d.ts +1 -0
- package/types/utils/numberToPx.d.ts +2 -0
- package/types/utils/openChannelUtils.d.ts +44 -0
- package/types/utils/pxToNumber.d.ts +2 -0
- package/types/utils/testMocks/error.d.ts +9 -0
- package/types/utils/testMocks/message.d.ts +23 -0
- package/types/utils/testMocks/messageRequestHandler.d.ts +15 -0
- package/types/utils/typeHelpers/objectValues.d.ts +16 -0
- package/types/utils/typeHelpers/partialDeep.d.ts +14 -0
- package/types/utils/typeHelpers/reducers/createAction.d.ts +17 -0
- package/types/utils/useDidMountEffect.d.ts +2 -0
- package/types/utils/utils.d.ts +10 -0
- package/types/utils/uuid.d.ts +2 -0
- package/ui/Accordion.js +39 -52
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +9 -18
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +13 -19
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +7 -197
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +18 -22
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +28 -34
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +42 -53
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +21 -44
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +15 -24
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +11 -18
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +195 -280
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +13 -24
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +144 -327
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +30 -49
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +17 -16
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +541 -707
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +18 -45
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +102 -149
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +15 -37
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +3 -3
- package/ui/LinkLabel.js +21 -45
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +11 -21
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +49 -79
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +4 -15
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +248 -413
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput/hooks/usePaste.js +5 -5
- package/ui/MessageInput.js +448 -621
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +110 -162
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +39 -98
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +78 -111
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +50 -80
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +12 -12
- package/ui/Modal.js +13 -126
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +14 -26
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +66 -107
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +9 -14
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +15 -26
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +22 -57
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +114 -234
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +157 -328
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +152 -313
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +126 -264
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +45 -100
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +11 -21
- package/ui/PlaybackTime.js.map +1 -1
- package/ui/ProgressBar.js +12 -26
- package/ui/ProgressBar.js.map +1 -1
- package/ui/QuoteMessage.js +70 -142
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +71 -98
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +20 -42
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +17 -35
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +23 -31
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +9 -25
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +43 -55
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +33 -67
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +34 -70
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +110 -183
- package/ui/Toggle.js.map +1 -1
- package/ui/Tooltip.js +9 -16
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +13 -41
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +20 -30
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +51 -114
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +46 -71
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +52 -101
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +9 -9
- package/ui/Word.js +60 -85
- package/ui/Word.js.map +1 -1
- package/useSendbirdStateContext.js +15 -14
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +32 -29
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +3 -3
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/withSendbird.js +17 -18
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-eccd99c6.js +0 -1051
- package/ChannelListProvider-eccd99c6.js.map +0 -1
- package/ChannelProvider-9ba5893a.js +0 -2079
- package/ChannelProvider-9ba5893a.js.map +0 -1
- package/CreateChannelProvider-a2885972.js +0 -48
- package/CreateChannelProvider-a2885972.js.map +0 -1
- package/LocalizationContext-287ee149.js +0 -20
- package/LocalizationContext-287ee149.js.map +0 -1
- package/MediaQueryContext-114ca049.js +0 -85
- package/MediaQueryContext-114ca049.js.map +0 -1
- package/MemberList-4e71a841.js +0 -422
- package/MemberList-4e71a841.js.map +0 -1
- package/OpenChannelListProvider-45d4ab54.js +0 -407
- package/OpenChannelListProvider-45d4ab54.js.map +0 -1
- package/OpenChannelProvider-9818f9ed.js +0 -1850
- package/OpenChannelProvider-9818f9ed.js.map +0 -1
- package/RemoveMessageModal-007c2f04.js +0 -33
- package/RemoveMessageModal-007c2f04.js.map +0 -1
- package/UserProfileContext-2001a468.js +0 -34
- package/UserProfileContext-2001a468.js.map +0 -1
- package/WebAudioUtils-31f7c8eb.js +0 -126
- package/WebAudioUtils-31f7c8eb.js.map +0 -1
- package/_rollupPluginBabelHelpers-e92eb032.js +0 -66
- package/_rollupPluginBabelHelpers-e92eb032.js.map +0 -1
- package/actionTypes-324495ed.js +0 -8
- package/actionTypes-324495ed.js.map +0 -1
- package/cjs/ChannelListProvider-d0ad5a84.js +0 -1060
- package/cjs/ChannelListProvider-d0ad5a84.js.map +0 -1
- package/cjs/ChannelProvider-fc111e5f.js +0 -2087
- package/cjs/ChannelProvider-fc111e5f.js.map +0 -1
- package/cjs/CreateChannelProvider-c3c843e4.js +0 -55
- package/cjs/CreateChannelProvider-c3c843e4.js.map +0 -1
- package/cjs/LocalizationContext-58b6ed7c.js +0 -28
- package/cjs/LocalizationContext-58b6ed7c.js.map +0 -1
- package/cjs/MediaQueryContext-6141d955.js +0 -92
- package/cjs/MediaQueryContext-6141d955.js.map +0 -1
- package/cjs/MemberList-2bd3db33.js +0 -428
- package/cjs/MemberList-2bd3db33.js.map +0 -1
- package/cjs/OpenChannelListProvider-a8560978.js +0 -416
- package/cjs/OpenChannelListProvider-a8560978.js.map +0 -1
- package/cjs/OpenChannelProvider-39f13647.js +0 -1859
- package/cjs/OpenChannelProvider-39f13647.js.map +0 -1
- package/cjs/RemoveMessageModal-afc3e268.js +0 -39
- package/cjs/RemoveMessageModal-afc3e268.js.map +0 -1
- package/cjs/UserProfileContext-c6d7abb7.js +0 -41
- package/cjs/UserProfileContext-c6d7abb7.js.map +0 -1
- package/cjs/WebAudioUtils-36803ab2.js +0 -129
- package/cjs/WebAudioUtils-36803ab2.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-f5b0dfb9.js +0 -69
- package/cjs/_rollupPluginBabelHelpers-f5b0dfb9.js.map +0 -1
- package/cjs/actionTypes-327123b5.js +0 -10
- package/cjs/actionTypes-327123b5.js.map +0 -1
- package/cjs/color-5bf5a8f5.js +0 -36
- package/cjs/color-5bf5a8f5.js.map +0 -1
- package/cjs/compareIds-28c6af62.js +0 -18
- package/cjs/compareIds-28c6af62.js.map +0 -1
- package/cjs/const-876980e8.js +0 -22
- package/cjs/const-876980e8.js.map +0 -1
- package/cjs/const-c9e7a340.js.map +0 -1
- package/cjs/consts-61d83828.js.map +0 -1
- package/cjs/consts-b3c4f548.js.map +0 -1
- package/cjs/consts-b711321c.js.map +0 -1
- package/cjs/consts-f54b15c2.js.map +0 -1
- package/cjs/context-6684538e.js +0 -19
- package/cjs/context-6684538e.js.map +0 -1
- package/cjs/dist/index.css +0 -7702
- package/cjs/dist/index.css.map +0 -1
- package/cjs/index-134e9852.js.map +0 -1
- package/cjs/index-3448df64.js.map +0 -1
- package/cjs/index-45933be9.js +0 -197
- package/cjs/index-45933be9.js.map +0 -1
- package/cjs/index-4c378655.js +0 -163
- package/cjs/index-4c378655.js.map +0 -1
- package/cjs/index-4e939c26.js +0 -369
- package/cjs/index-4e939c26.js.map +0 -1
- package/cjs/index-520e12b8.js +0 -173
- package/cjs/index-520e12b8.js.map +0 -1
- package/cjs/index-54279ec2.js.map +0 -1
- package/cjs/index-692ea6aa.js +0 -76
- package/cjs/index-692ea6aa.js.map +0 -1
- package/cjs/index-7627b546.js.map +0 -1
- package/cjs/index-a95c4ab4.js +0 -308
- package/cjs/index-a95c4ab4.js.map +0 -1
- package/cjs/index-b5a9b4b7.js +0 -129
- package/cjs/index-b5a9b4b7.js.map +0 -1
- package/cjs/index-b8ba4548.js +0 -20
- package/cjs/index-b8ba4548.js.map +0 -1
- package/cjs/index-bc6623d7.js +0 -289
- package/cjs/index-bc6623d7.js.map +0 -1
- package/cjs/index-cc2e05a4.js +0 -227
- package/cjs/index-cc2e05a4.js.map +0 -1
- package/cjs/index-ce07a2a3.js +0 -59
- package/cjs/index-ce07a2a3.js.map +0 -1
- package/cjs/index-dbe8dd84.js +0 -741
- package/cjs/index-dbe8dd84.js.map +0 -1
- package/cjs/index-e5e6d9b0.js +0 -468
- package/cjs/index-e5e6d9b0.js.map +0 -1
- package/cjs/index-e8928da6.js.map +0 -1
- package/cjs/resolvedReplyType-c4564ebe.js.map +0 -1
- package/cjs/stringFormatterUtils-92dbef3c.js +0 -16
- package/cjs/stringFormatterUtils-92dbef3c.js.map +0 -1
- package/cjs/stringSet-1539ac47.js +0 -212
- package/cjs/stringSet-1539ac47.js.map +0 -1
- package/cjs/tokenize-d5286fa8.js +0 -159
- package/cjs/tokenize-d5286fa8.js.map +0 -1
- package/cjs/tslib.es6-c74b513f.js.map +0 -1
- package/cjs/types-d0d770c3.js +0 -15
- package/cjs/types-d0d770c3.js.map +0 -1
- package/cjs/types-feda9656.js.map +0 -1
- package/cjs/useHandleUploadFiles-39e8d107.js +0 -284
- package/cjs/useHandleUploadFiles-39e8d107.js.map +0 -1
- package/cjs/useLongPress-18b7af79.js +0 -105
- package/cjs/useLongPress-18b7af79.js.map +0 -1
- package/cjs/useSendMultipleFilesMessage-d6a3d5cf.js +0 -316
- package/cjs/useSendMultipleFilesMessage-d6a3d5cf.js.map +0 -1
- package/cjs/useStatefulFileInfoList-c510792f.js +0 -228
- package/cjs/useStatefulFileInfoList-c510792f.js.map +0 -1
- package/cjs/utils-1d0f1e0c.js +0 -28
- package/cjs/utils-1d0f1e0c.js.map +0 -1
- package/cjs/utils-9193a195.js +0 -170
- package/cjs/utils-9193a195.js.map +0 -1
- package/cjs/utils-93ca9d57.js +0 -62
- package/cjs/utils-93ca9d57.js.map +0 -1
- package/cjs/utils-98441ba6.js +0 -35
- package/cjs/utils-98441ba6.js.map +0 -1
- package/cjs/utils-e6c4b2b0.js +0 -27
- package/cjs/utils-e6c4b2b0.js.map +0 -1
- package/cjs/utils-eb6d90e0.js +0 -10
- package/cjs/utils-eb6d90e0.js.map +0 -1
- package/cjs/uuid-9a117e16.js.map +0 -1
- package/color-57373b4c.js +0 -34
- package/color-57373b4c.js.map +0 -1
- package/compareIds-7e517404.js +0 -16
- package/compareIds-7e517404.js.map +0 -1
- package/const-73db0277.js.map +0 -1
- package/const-93731a4c.js +0 -18
- package/const-93731a4c.js.map +0 -1
- package/consts-4ec7d640.js.map +0 -1
- package/consts-57c888b9.js.map +0 -1
- package/consts-be37687e.js.map +0 -1
- package/consts-d9c5f25a.js.map +0 -1
- package/context-729493c4.js +0 -12
- package/context-729493c4.js.map +0 -1
- package/index-04bd1a59.js +0 -13
- package/index-04bd1a59.js.map +0 -1
- package/index-09847c0f.js.map +0 -1
- package/index-0f017704.js +0 -280
- package/index-0f017704.js.map +0 -1
- package/index-2d27aeef.js.map +0 -1
- package/index-493689bd.js +0 -156
- package/index-493689bd.js.map +0 -1
- package/index-494f9e79.js +0 -73
- package/index-494f9e79.js.map +0 -1
- package/index-4b4e9682.js +0 -161
- package/index-4b4e9682.js.map +0 -1
- package/index-62d5f020.js +0 -362
- package/index-62d5f020.js.map +0 -1
- package/index-682a192c.js.map +0 -1
- package/index-686a551d.js +0 -182
- package/index-686a551d.js.map +0 -1
- package/index-6b3b1eca.js +0 -217
- package/index-6b3b1eca.js.map +0 -1
- package/index-776554c0.js +0 -692
- package/index-776554c0.js.map +0 -1
- package/index-92741c7e.js +0 -118
- package/index-92741c7e.js.map +0 -1
- package/index-a0638563.js +0 -53
- package/index-a0638563.js.map +0 -1
- package/index-c22e4772.js +0 -462
- package/index-c22e4772.js.map +0 -1
- package/index-e04159fe.js +0 -298
- package/index-e04159fe.js.map +0 -1
- package/index-e4277f9c.js.map +0 -1
- package/index-f8a9cb51.js.map +0 -1
- package/index.d.ts +0 -2963
- package/resolvedReplyType-fb987595.js.map +0 -1
- package/stringFormatterUtils-abbe70ba.js +0 -14
- package/stringFormatterUtils-abbe70ba.js.map +0 -1
- package/stringSet-6422c6b9.js +0 -210
- package/stringSet-6422c6b9.js.map +0 -1
- package/tokenize-eae44765.js +0 -154
- package/tokenize-eae44765.js.map +0 -1
- package/tslib.es6-c2fb729e.js.map +0 -1
- package/types-781e0bab.js.map +0 -1
- package/types-9d43ac6e.js +0 -15
- package/types-9d43ac6e.js.map +0 -1
- package/useHandleUploadFiles-5ede1bfe.js +0 -277
- package/useHandleUploadFiles-5ede1bfe.js.map +0 -1
- package/useLongPress-f8655a14.js +0 -103
- package/useLongPress-f8655a14.js.map +0 -1
- package/useSendMultipleFilesMessage-b8256698.js +0 -283
- package/useSendMultipleFilesMessage-b8256698.js.map +0 -1
- package/useStatefulFileInfoList-5e68b93f.js +0 -219
- package/useStatefulFileInfoList-5e68b93f.js.map +0 -1
- package/utils-2c1f072b.js +0 -31
- package/utils-2c1f072b.js.map +0 -1
- package/utils-6c50a6d1.js +0 -7
- package/utils-6c50a6d1.js.map +0 -1
- package/utils-aa4086dc.js +0 -157
- package/utils-aa4086dc.js.map +0 -1
- package/utils-bfc0ab3b.js +0 -57
- package/utils-bfc0ab3b.js.map +0 -1
- package/utils-fa321757.js +0 -26
- package/utils-fa321757.js.map +0 -1
- package/utils-fc1f5aa0.js +0 -25
- package/utils-fc1f5aa0.js.map +0 -1
- package/uuid-c15b8b3b.js.map +0 -1
package/cjs/index-bc6623d7.js
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f5b0dfb9.js');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var reactDom = require('react-dom');
|
|
6
|
-
var LocalizationContext = require('./LocalizationContext-58b6ed7c.js');
|
|
7
|
-
var tslib_es6 = require('./tslib.es6-c74b513f.js');
|
|
8
|
-
require('./index-54279ec2.js');
|
|
9
|
-
var utils = require('./utils-eb6d90e0.js');
|
|
10
|
-
var ui_Label = require('./index-b5a9b4b7.js');
|
|
11
|
-
require('./types-d0d770c3.js');
|
|
12
|
-
var ui_Icon = require('./ui/Icon.js');
|
|
13
|
-
var index$1 = require('./index-b8ba4548.js');
|
|
14
|
-
var index = require('./index-dbe8dd84.js');
|
|
15
|
-
var ui_Avatar = require('./ui/Avatar.js');
|
|
16
|
-
var consts = require('./consts-f54b15c2.js');
|
|
17
|
-
|
|
18
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
|
-
|
|
20
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
21
|
-
|
|
22
|
-
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
|
|
23
|
-
var SUPPORTED_MIMES = {
|
|
24
|
-
IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'],
|
|
25
|
-
VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4']
|
|
26
|
-
};
|
|
27
|
-
var isImage = function (type) {
|
|
28
|
-
return SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;
|
|
29
|
-
};
|
|
30
|
-
var isVideo = function (type) {
|
|
31
|
-
return SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;
|
|
32
|
-
};
|
|
33
|
-
tslib_es6.__assign({}, SUPPORTED_MIMES);
|
|
34
|
-
var ViewerTypes = {
|
|
35
|
-
SINGLE: 'SINGLE',
|
|
36
|
-
MULTI: 'MULTI'
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
function useKeyDown(_a) {
|
|
40
|
-
var props = _a.props,
|
|
41
|
-
ref = _a.ref;
|
|
42
|
-
var onClose = props.onClose;
|
|
43
|
-
var onClickLeft = utils.noop;
|
|
44
|
-
var onClickRight = utils.noop;
|
|
45
|
-
if (props.viewerType === ViewerTypes.MULTI) {
|
|
46
|
-
onClickLeft = props.onClickLeft;
|
|
47
|
-
onClickRight = props.onClickRight;
|
|
48
|
-
}
|
|
49
|
-
React.useLayoutEffect(function () {
|
|
50
|
-
var _a;
|
|
51
|
-
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
52
|
-
}, [ref.current]);
|
|
53
|
-
// this usecallback is not super necessary
|
|
54
|
-
// discuss with others and remove it if it's not needed
|
|
55
|
-
var onKeyDown = React.useCallback(function (event) {
|
|
56
|
-
switch (event.key) {
|
|
57
|
-
case 'Escape':
|
|
58
|
-
// @ts-ignore
|
|
59
|
-
onClose(event);
|
|
60
|
-
break;
|
|
61
|
-
case 'ArrowLeft':
|
|
62
|
-
onClickLeft();
|
|
63
|
-
break;
|
|
64
|
-
case 'ArrowRight':
|
|
65
|
-
onClickRight();
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
event.stopPropagation();
|
|
69
|
-
}, [onClose, onClickLeft, onClickRight]);
|
|
70
|
-
return {
|
|
71
|
-
onKeyDown: onKeyDown
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function mapFileViewerComponentProps(_a) {
|
|
76
|
-
var props = _a.props;
|
|
77
|
-
if (props.viewerType === ViewerTypes.MULTI) {
|
|
78
|
-
var _b = props,
|
|
79
|
-
fileInfoList = _b.fileInfoList,
|
|
80
|
-
currentIndex = _b.currentIndex;
|
|
81
|
-
return fileInfoList[currentIndex];
|
|
82
|
-
}
|
|
83
|
-
var fileInfo = props;
|
|
84
|
-
return {
|
|
85
|
-
name: fileInfo.name,
|
|
86
|
-
type: fileInfo.type,
|
|
87
|
-
url: fileInfo.url
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function DeleteButton(props) {
|
|
92
|
-
if (props.viewerType !== ViewerTypes.MULTI) {
|
|
93
|
-
var onDelete_1 = props.onDelete,
|
|
94
|
-
isByMe = props.isByMe,
|
|
95
|
-
disableDelete_1 = props.disableDelete,
|
|
96
|
-
className = props.className;
|
|
97
|
-
return isByMe ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
98
|
-
className: "sendbird-fileviewer__header__right__actions__delete ".concat(className)
|
|
99
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
100
|
-
className: disableDelete_1 ? 'disabled' : '',
|
|
101
|
-
type: ui_Icon.IconTypes.DELETE,
|
|
102
|
-
fillColor: disableDelete_1 ? ui_Icon.IconColors.GRAY : ui_Icon.IconColors.ON_BACKGROUND_1,
|
|
103
|
-
height: "24px",
|
|
104
|
-
width: "24px",
|
|
105
|
-
onClick: function (e) {
|
|
106
|
-
if (!disableDelete_1) {
|
|
107
|
-
onDelete_1 === null || onDelete_1 === void 0 ? void 0 : onDelete_1(e);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
})) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
111
|
-
}
|
|
112
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// this is a slider component that is used to navigate between images
|
|
116
|
-
function Slider(props) {
|
|
117
|
-
if (props.viewerType === ViewerTypes.MULTI) {
|
|
118
|
-
var onClickLeft_1 = props.onClickLeft,
|
|
119
|
-
onClickRight_1 = props.onClickRight;
|
|
120
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
121
|
-
className: "sendbird-file-viewer-slider"
|
|
122
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
123
|
-
className: "sendbird-file-viewer-arrow--left"
|
|
124
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
125
|
-
type: ui_Icon.IconTypes.SLIDE_LEFT,
|
|
126
|
-
fillColor: ui_Icon.IconColors.ON_BACKGROUND_1,
|
|
127
|
-
height: consts.SLIDER_BUTTON_ICON_SIDE_LENGTH,
|
|
128
|
-
width: consts.SLIDER_BUTTON_ICON_SIDE_LENGTH,
|
|
129
|
-
onClick: function (e) {
|
|
130
|
-
onClickLeft_1 === null || onClickLeft_1 === void 0 ? void 0 : onClickLeft_1();
|
|
131
|
-
e.stopPropagation();
|
|
132
|
-
}
|
|
133
|
-
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
134
|
-
className: "sendbird-file-viewer-arrow--right"
|
|
135
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
136
|
-
type: ui_Icon.IconTypes.SLIDE_LEFT,
|
|
137
|
-
fillColor: ui_Icon.IconColors.ON_BACKGROUND_1,
|
|
138
|
-
height: consts.SLIDER_BUTTON_ICON_SIDE_LENGTH,
|
|
139
|
-
width: consts.SLIDER_BUTTON_ICON_SIDE_LENGTH,
|
|
140
|
-
onClick: function (e) {
|
|
141
|
-
e.stopPropagation();
|
|
142
|
-
onClickRight_1 === null || onClickRight_1 === void 0 ? void 0 : onClickRight_1();
|
|
143
|
-
}
|
|
144
|
-
})));
|
|
145
|
-
}
|
|
146
|
-
// return empty fragment if viewerType is not ViewerTypes.MULTI
|
|
147
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
var FileViewerComponent = function (props) {
|
|
151
|
-
var ref = React.useRef(null);
|
|
152
|
-
var profileUrl = props.profileUrl,
|
|
153
|
-
nickname = props.nickname,
|
|
154
|
-
onClose = props.onClose;
|
|
155
|
-
var onKeyDown = useKeyDown({
|
|
156
|
-
props: props,
|
|
157
|
-
ref: ref
|
|
158
|
-
}).onKeyDown;
|
|
159
|
-
var _a = mapFileViewerComponentProps({
|
|
160
|
-
props: props
|
|
161
|
-
}),
|
|
162
|
-
name = _a.name,
|
|
163
|
-
type = _a.type,
|
|
164
|
-
url = _a.url;
|
|
165
|
-
var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet;
|
|
166
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
167
|
-
className: "sendbird-fileviewer",
|
|
168
|
-
onKeyDown: onKeyDown
|
|
169
|
-
// to focus
|
|
170
|
-
,
|
|
171
|
-
tabIndex: 1,
|
|
172
|
-
ref: ref
|
|
173
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
174
|
-
className: "sendbird-fileviewer__header"
|
|
175
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
176
|
-
className: "sendbird-fileviewer__header__left"
|
|
177
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
178
|
-
className: "sendbird-fileviewer__header__left__avatar"
|
|
179
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Avatar["default"], {
|
|
180
|
-
height: "32px",
|
|
181
|
-
width: "32px",
|
|
182
|
-
src: profileUrl
|
|
183
|
-
})), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
184
|
-
className: "sendbird-fileviewer__header__left__filename",
|
|
185
|
-
type: ui_Label.LabelTypography.H_2,
|
|
186
|
-
color: ui_Label.LabelColors.ONBACKGROUND_1
|
|
187
|
-
}, name), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
188
|
-
className: "sendbird-fileviewer__header__left__sender-name",
|
|
189
|
-
type: ui_Label.LabelTypography.BODY_1,
|
|
190
|
-
color: ui_Label.LabelColors.ONBACKGROUND_2
|
|
191
|
-
}, nickname)), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
192
|
-
className: "sendbird-fileviewer__header__right"
|
|
193
|
-
}, index.isSupportedFileView(type) && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
194
|
-
className: "sendbird-fileviewer__header__right__actions"
|
|
195
|
-
}, /*#__PURE__*/React__default["default"].createElement("a", {
|
|
196
|
-
className: "sendbird-fileviewer__header__right__actions__download",
|
|
197
|
-
rel: "noopener noreferrer",
|
|
198
|
-
href: url,
|
|
199
|
-
target: "_blank"
|
|
200
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
201
|
-
type: ui_Icon.IconTypes.DOWNLOAD,
|
|
202
|
-
fillColor: ui_Icon.IconColors.ON_BACKGROUND_1,
|
|
203
|
-
height: "24px",
|
|
204
|
-
width: "24px"
|
|
205
|
-
})), /*#__PURE__*/React__default["default"].createElement(DeleteButton, _rollupPluginBabelHelpers._extends({
|
|
206
|
-
className: "sendbird-fileviewer__header__right__actions__delete"
|
|
207
|
-
}, props))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
208
|
-
className: "sendbird-fileviewer__header__right__actions__close"
|
|
209
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
210
|
-
type: ui_Icon.IconTypes.CLOSE,
|
|
211
|
-
fillColor: ui_Icon.IconColors.ON_BACKGROUND_1,
|
|
212
|
-
height: "24px",
|
|
213
|
-
width: "24px",
|
|
214
|
-
onClick: function (e) {
|
|
215
|
-
return onClose === null || onClose === void 0 ? void 0 : onClose(e);
|
|
216
|
-
}
|
|
217
|
-
})))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
218
|
-
className: "sendbird-fileviewer__content"
|
|
219
|
-
}, index.isVideo(type) && /*#__PURE__*/React__default["default"].createElement("video", {
|
|
220
|
-
controls: true,
|
|
221
|
-
className: "sendbird-fileviewer__content__video"
|
|
222
|
-
}, /*#__PURE__*/React__default["default"].createElement("source", {
|
|
223
|
-
src: url,
|
|
224
|
-
type: type
|
|
225
|
-
})), index.isImage(type) && /*#__PURE__*/React__default["default"].createElement("img", {
|
|
226
|
-
src: url,
|
|
227
|
-
alt: name,
|
|
228
|
-
className: props.viewerType === ViewerTypes.MULTI ? 'sendbird-fileviewer__content__img__multi' : 'sendbird-fileviewer__content__img'
|
|
229
|
-
}), !index.isSupportedFileView(type) && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
230
|
-
className: "sendbird-fileviewer__content__unsupported"
|
|
231
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
232
|
-
type: ui_Label.LabelTypography.H_1,
|
|
233
|
-
color: ui_Label.LabelColors.ONBACKGROUND_1
|
|
234
|
-
}, (stringSet === null || stringSet === void 0 ? void 0 : stringSet.UI__FILE_VIEWER__UNSUPPORT) || 'Unsupported message')), /*#__PURE__*/React__default["default"].createElement(Slider, props)));
|
|
235
|
-
};
|
|
236
|
-
function FileViewer(_a) {
|
|
237
|
-
var _b, _c, _d;
|
|
238
|
-
var message = _a.message,
|
|
239
|
-
_e = _a.statefulFileInfoList,
|
|
240
|
-
statefulFileInfoList = _e === void 0 ? [] : _e,
|
|
241
|
-
onClose = _a.onClose,
|
|
242
|
-
_f = _a.isByMe,
|
|
243
|
-
isByMe = _f === void 0 ? false : _f,
|
|
244
|
-
onDelete = _a.onDelete,
|
|
245
|
-
currentIndex = _a.currentIndex,
|
|
246
|
-
onClickLeft = _a.onClickLeft,
|
|
247
|
-
onClickRight = _a.onClickRight;
|
|
248
|
-
if (index.isMultipleFilesMessage(message)) {
|
|
249
|
-
var castedMessage = message;
|
|
250
|
-
return /*#__PURE__*/React__default["default"].createElement(FileViewerComponent, {
|
|
251
|
-
profileUrl: castedMessage.sender.profileUrl,
|
|
252
|
-
nickname: castedMessage.sender.nickname,
|
|
253
|
-
viewerType: ViewerTypes.MULTI,
|
|
254
|
-
fileInfoList: statefulFileInfoList.filter(function (fileInfo) {
|
|
255
|
-
return fileInfo.url; // Caution: This assumes that defined url means file upload has completed.
|
|
256
|
-
}).map(function (fileInfo) {
|
|
257
|
-
return {
|
|
258
|
-
name: fileInfo.fileName || '',
|
|
259
|
-
type: fileInfo.mimeType || '',
|
|
260
|
-
url: fileInfo.url
|
|
261
|
-
};
|
|
262
|
-
}),
|
|
263
|
-
currentIndex: currentIndex || 0,
|
|
264
|
-
onClickLeft: onClickLeft || utils.noop,
|
|
265
|
-
onClickRight: onClickRight || utils.noop,
|
|
266
|
-
onClose: onClose
|
|
267
|
-
});
|
|
268
|
-
} else if (index.isFileMessage(message)) {
|
|
269
|
-
var castedMessage = message;
|
|
270
|
-
return /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React__default["default"].createElement(FileViewerComponent, {
|
|
271
|
-
profileUrl: (_b = castedMessage.sender) === null || _b === void 0 ? void 0 : _b.profileUrl,
|
|
272
|
-
nickname: (_c = castedMessage.sender) === null || _c === void 0 ? void 0 : _c.nickname,
|
|
273
|
-
name: castedMessage.name,
|
|
274
|
-
type: castedMessage.type,
|
|
275
|
-
url: castedMessage === null || castedMessage === void 0 ? void 0 : castedMessage.url,
|
|
276
|
-
isByMe: isByMe,
|
|
277
|
-
disableDelete: (((_d = castedMessage.threadInfo) === null || _d === void 0 ? void 0 : _d.replyCount) || 0) > 0,
|
|
278
|
-
onClose: onClose,
|
|
279
|
-
onDelete: onDelete || utils.noop
|
|
280
|
-
}), document.getElementById(index$1.MODAL_ROOT));
|
|
281
|
-
}
|
|
282
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
exports.FileViewer = FileViewer;
|
|
286
|
-
exports.FileViewerComponent = FileViewerComponent;
|
|
287
|
-
exports.isImage = isImage;
|
|
288
|
-
exports.isVideo = isVideo;
|
|
289
|
-
//# sourceMappingURL=index-bc6623d7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-bc6623d7.js","sources":["../../src/ui/FileViewer/types.ts","../../src/ui/FileViewer/hooks/useKeyDown.ts","../../src/ui/FileViewer/utils.ts","../../src/ui/FileViewer/DeleteButton.tsx","../../src/ui/FileViewer/Slider.tsx","../../src/ui/FileViewer/index.tsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\n\n// TODO: refactor this to -> as const pattern\nexport type SupportedImageMimesType = 'image/jpeg' | 'image/jpg' | 'image/png' | 'image/gif' | 'image/svg+xml' | 'image/webp';\nexport type SupportedVideoMimesType = 'video/mpeg' | 'video/ogg' | 'video/webm' | 'video/mp4';\nexport type SupportedMimesType = SupportedImageMimesType | SupportedVideoMimesType;\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type: SupportedImageMimesType): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: SupportedVideoMimesType): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: SupportedMimesType): boolean => type === 'image/gif';\nexport const unSupported = (type: SupportedMimesType): boolean => (\n !(\n isImage(type as SupportedImageMimesType)\n || isVideo(type as SupportedVideoMimesType)\n )\n);\n\nexport default { ...SUPPORTED_MIMES };\n\nexport const ViewerTypes = {\n SINGLE: 'SINGLE',\n MULTI: 'MULTI',\n} as const;\n\nexport type ViewerType = keyof typeof ViewerTypes;\n\nexport interface SenderInfo {\n profileUrl: string;\n nickname: string;\n}\nexport interface FileInfo {\n name: string;\n type: string;\n url: string;\n}\n\nexport interface BaseViewer {\n onClose: (e: React.MouseEvent) => void;\n}\n\nexport interface SingleFileViewer extends SenderInfo, FileInfo, BaseViewer {\n viewerType?: typeof ViewerTypes.SINGLE;\n isByMe?: boolean;\n disableDelete?: boolean;\n onDelete: (e: React.MouseEvent) => void;\n}\n\nexport interface MultiFilesViewer extends SenderInfo, BaseViewer {\n viewerType: typeof ViewerTypes.MULTI;\n fileInfoList: FileInfo[];\n currentIndex: number;\n onClickLeft: () => void;\n onClickRight: () => void;\n}\n\nexport type FileViewerComponentProps = SingleFileViewer | MultiFilesViewer;\n","import { useCallback, useLayoutEffect } from 'react';\nimport { noop } from '../../../utils/utils';\nimport { FileViewerComponentProps, ViewerTypes } from '../types';\n\nexport function useKeyDown({ props, ref }: {\n props: FileViewerComponentProps,\n ref: React.RefObject<HTMLDivElement>;\n}): {\n onKeyDown: React.KeyboardEventHandler<HTMLDivElement>;\n} {\n const { onClose } = props;\n let onClickLeft = noop;\n let onClickRight = noop;\n if (props.viewerType === ViewerTypes.MULTI) {\n onClickLeft = props.onClickLeft;\n onClickRight = props.onClickRight;\n }\n\n useLayoutEffect(() => {\n ref.current?.focus();\n }, [ref.current]);\n\n // this usecallback is not super necessary\n // discuss with others and remove it if it's not needed\n const onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = useCallback((event) => {\n switch (event.key) {\n case 'Escape':\n // @ts-ignore\n onClose(event);\n break;\n case 'ArrowLeft':\n onClickLeft();\n break;\n case 'ArrowRight':\n onClickRight();\n break;\n default:\n break;\n }\n event.stopPropagation();\n }, [onClose, onClickLeft, onClickRight]);\n\n return {\n onKeyDown,\n };\n}\n","import { FileInfo, FileViewerComponentProps, MultiFilesViewer, SingleFileViewer, ViewerTypes } from './types';\n\nexport function mapFileViewerComponentProps({ props }: {\n props: FileViewerComponentProps;\n}): FileInfo {\n if (props.viewerType === ViewerTypes.MULTI) {\n const { fileInfoList, currentIndex } = props as MultiFilesViewer;\n return fileInfoList[currentIndex];\n }\n const fileInfo: FileInfo = props as SingleFileViewer;\n return {\n name: fileInfo.name,\n type: fileInfo.type,\n url: fileInfo.url,\n };\n}\n","import React from 'react';\nimport { FileViewerComponentProps, ViewerTypes } from './types';\nimport Icon, { IconColors, IconTypes } from '../Icon';\n\nexport function DeleteButton(props: FileViewerComponentProps & { className?: string }): React.ReactElement {\n if (props.viewerType !== ViewerTypes.MULTI) {\n const { onDelete, isByMe, disableDelete, className } = props;\n return (isByMe)\n ? (\n <div className={`sendbird-fileviewer__header__right__actions__delete ${className}`}>\n <Icon\n className={disableDelete ? 'disabled' : ''}\n type={IconTypes.DELETE}\n fillColor={disableDelete ? IconColors.GRAY : IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={(e) => { if (!disableDelete) { onDelete?.(e); } }}\n />\n </div>\n )\n : <></>;\n }\n return <></>;\n}\n","import React from 'react';\nimport { FileViewerComponentProps, ViewerTypes } from './types';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { SLIDER_BUTTON_ICON_SIDE_LENGTH } from '../../utils/consts';\n\n// this is a slider component that is used to navigate between images\nexport function Slider(props: FileViewerComponentProps): React.ReactElement {\n if (props.viewerType === ViewerTypes.MULTI) {\n const { onClickLeft, onClickRight } = props;\n return (\n <div className=\"sendbird-file-viewer-slider\">\n <div className=\"sendbird-file-viewer-arrow--left\">\n <Icon\n type={IconTypes.SLIDE_LEFT}\n fillColor={IconColors.ON_BACKGROUND_1}\n height={SLIDER_BUTTON_ICON_SIDE_LENGTH}\n width={SLIDER_BUTTON_ICON_SIDE_LENGTH}\n onClick={(e) => {\n onClickLeft?.();\n e.stopPropagation();\n }}\n />\n </div>\n <div className=\"sendbird-file-viewer-arrow--right\">\n <Icon\n type={IconTypes.SLIDE_LEFT}\n fillColor={IconColors.ON_BACKGROUND_1}\n height={SLIDER_BUTTON_ICON_SIDE_LENGTH}\n width={SLIDER_BUTTON_ICON_SIDE_LENGTH}\n onClick={(e) => {\n e.stopPropagation();\n onClickRight?.();\n }}\n />\n </div>\n </div>\n );\n }\n // return empty fragment if viewerType is not ViewerTypes.MULTI\n return <></>;\n}\n","import './index.scss';\n\nimport React, { MouseEvent, ReactElement, useContext, useRef } from 'react';\nimport { FileMessage, MultipleFilesMessage } from '@sendbird/chat/message';\nimport { createPortal } from 'react-dom';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal';\nimport { isFileMessage, isImage, isMultipleFilesMessage, isSupportedFileView, isVideo } from '../../utils';\nimport { noop } from '../../utils/utils';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { FileInfo, FileViewerComponentProps, ViewerTypes } from './types';\nimport { useKeyDown } from './hooks/useKeyDown';\nimport { mapFileViewerComponentProps } from './utils';\nimport { DeleteButton } from './DeleteButton';\nimport { Slider } from './Slider';\nimport { StatefulFileInfo } from '../../utils/createStatefulFileInfoList';\n\nexport const FileViewerComponent = (props: FileViewerComponentProps): ReactElement => {\n const ref = useRef<HTMLDivElement>(null);\n const { profileUrl, nickname, onClose } = props;\n const { onKeyDown } = useKeyDown({ props, ref });\n const { name, type, url } = mapFileViewerComponentProps({ props });\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n <div\n className=\"sendbird-fileviewer\"\n onKeyDown={onKeyDown}\n // to focus\n tabIndex={1}\n ref={ref}\n >\n <div className=\"sendbird-fileviewer__header\">\n <div className=\"sendbird-fileviewer__header__left\">\n <div className=\"sendbird-fileviewer__header__left__avatar\">\n <Avatar height=\"32px\" width=\"32px\" src={profileUrl} />\n </div>\n <Label\n className=\"sendbird-fileviewer__header__left__filename\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name}\n </Label>\n <Label\n className=\"sendbird-fileviewer__header__left__sender-name\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {nickname}\n </Label>\n </div>\n <div\n className=\"sendbird-fileviewer__header__right\"\n >\n {\n isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__header__right__actions\" >\n <a\n className=\"sendbird-fileviewer__header__right__actions__download\"\n rel=\"noopener noreferrer\"\n href={url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n />\n </a>\n <DeleteButton\n className='sendbird-fileviewer__header__right__actions__delete'\n {...props}\n />\n </div>\n )\n }\n <div className=\"sendbird-fileviewer__header__right__actions__close\">\n <Icon\n type={IconTypes.CLOSE}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={(e) => onClose?.(e)}\n />\n </div>\n </div>\n </div>\n <div className=\"sendbird-fileviewer__content\">\n {isVideo(type) && (\n <video\n controls\n className=\"sendbird-fileviewer__content__video\"\n >\n <source src={url} type={type} />\n </video>\n )}\n {\n isImage(type) && (\n <img\n src={url}\n alt={name}\n className={\n props.viewerType === ViewerTypes.MULTI\n ? 'sendbird-fileviewer__content__img__multi'\n : 'sendbird-fileviewer__content__img'\n }\n />\n )\n }\n {\n !isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__content__unsupported\">\n <Label type={LabelTypography.H_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.UI__FILE_VIEWER__UNSUPPORT || 'Unsupported message'}\n </Label>\n </div>\n )\n }\n <Slider {...props} />\n </div>\n </div>\n );\n};\n\nexport interface FileViewerProps {\n message?: FileMessage | MultipleFilesMessage;\n statefulFileInfoList?: StatefulFileInfo[]\n isByMe?: boolean;\n currentIndex?: number;\n onClose: (e: MouseEvent) => void;\n onDelete?: (e: MouseEvent) => void;\n onClickLeft?: () => void;\n onClickRight?: () => void;\n}\n\nexport default function FileViewer({\n message,\n statefulFileInfoList = [],\n onClose,\n isByMe = false,\n onDelete,\n currentIndex,\n onClickLeft,\n onClickRight,\n}: FileViewerProps): ReactElement {\n if (isMultipleFilesMessage(message)) {\n const castedMessage = message as MultipleFilesMessage;\n return (\n <FileViewerComponent\n profileUrl={castedMessage.sender.profileUrl}\n nickname={castedMessage.sender.nickname}\n viewerType={ViewerTypes.MULTI}\n fileInfoList={\n statefulFileInfoList.filter((fileInfo: StatefulFileInfo) => {\n return fileInfo.url; // Caution: This assumes that defined url means file upload has completed.\n }).map((fileInfo: StatefulFileInfo): FileInfo => {\n return {\n name: fileInfo.fileName || '',\n type: fileInfo.mimeType || '',\n url: fileInfo.url,\n };\n })\n }\n currentIndex={currentIndex || 0}\n onClickLeft={onClickLeft || noop}\n onClickRight={onClickRight || noop}\n onClose={onClose}\n />\n );\n } else if (isFileMessage(message)) {\n const castedMessage = message as FileMessage;\n return createPortal(\n (\n <FileViewerComponent\n profileUrl={castedMessage.sender?.profileUrl}\n nickname={castedMessage.sender?.nickname}\n name={castedMessage.name}\n type={castedMessage.type}\n url={castedMessage?.url}\n isByMe={isByMe}\n disableDelete={(castedMessage.threadInfo?.replyCount || 0) > 0}\n onClose={onClose}\n onDelete={onDelete || noop}\n />\n ),\n (document.getElementById(MODAL_ROOT) as HTMLElement),\n );\n }\n return <></>;\n}\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","__assign","ViewerTypes","SINGLE","MULTI","useKeyDown","_a","props","ref","onClose","onClickLeft","noop","onClickRight","viewerType","useLayoutEffect","current","focus","onKeyDown","useCallback","event","key","stopPropagation","mapFileViewerComponentProps","_b","fileInfoList","currentIndex","fileInfo","name","url","DeleteButton","onDelete_1","isByMe","disableDelete_1","disableDelete","className","React","createElement","concat","Icon","IconTypes","DELETE","fillColor","IconColors","GRAY","ON_BACKGROUND_1","height","width","onClick","e","Fragment","Slider","onClickLeft_1","onClickRight_1","SLIDE_LEFT","SLIDER_BUTTON_ICON_SIDE_LENGTH","FileViewerComponent","useRef","profileUrl","nickname","stringSet","useContext","LocalizationContext","tabIndex","Avatar","src","Label","LabelTypography","H_2","color","LabelColors","ONBACKGROUND_1","BODY_1","ONBACKGROUND_2","isSupportedFileView","rel","href","target","DOWNLOAD","_extends","CLOSE","controls","alt","H_1","UI__FILE_VIEWER__UNSUPPORT","FileViewer","message","_e","statefulFileInfoList","_f","onDelete","isMultipleFilesMessage","castedMessage","sender","filter","map","fileName","mimeType","isFileMessage","createPortal","_c","_d","threadInfo","replyCount","document","getElementById","MODAL_ROOT"],"mappings":"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"}
|
package/cjs/index-cc2e05a4.js
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var DOMPurify = require('dompurify');
|
|
5
|
-
var tslib_es6 = require('./tslib.es6-c74b513f.js');
|
|
6
|
-
var consts = require('./consts-b3c4f548.js');
|
|
7
|
-
var consts$2 = require('./consts-61d83828.js');
|
|
8
|
-
var consts$1 = require('./consts-b711321c.js');
|
|
9
|
-
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var DOMPurify__default = /*#__PURE__*/_interopDefaultLegacy(DOMPurify);
|
|
13
|
-
|
|
14
|
-
function renderToString(_a) {
|
|
15
|
-
var userId = _a.userId,
|
|
16
|
-
nickname = _a.nickname;
|
|
17
|
-
// donot change this template, it wont work
|
|
18
|
-
var el = "<span data-userid=\"".concat(userId, "\" data-sb-mention=\"true\" class=\"").concat(consts.MENTION_USER_LABEL_CLASSNAME, "\">").concat(nickname, "</span>");
|
|
19
|
-
var purifier = DOMPurify__default["default"](window);
|
|
20
|
-
var sanitized_ = purifier.sanitize(el);
|
|
21
|
-
var token = sanitized_.split(' ');
|
|
22
|
-
var spanTag = token[0],
|
|
23
|
-
rest = token.slice(1);
|
|
24
|
-
// we do this because DOMPurify removes the contenteditable attribute
|
|
25
|
-
var sanitized = tslib_es6.__spreadArray([spanTag, 'contenteditable="false"'], rest, true).join(' ');
|
|
26
|
-
return sanitized;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// https://davidwalsh.name/javascript-debounce-function
|
|
30
|
-
|
|
31
|
-
// Sanitize that special characters of HTML tags cause XSS issue
|
|
32
|
-
const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* NodeList cannot be used with Array methods
|
|
36
|
-
* @param {childNodes} NodeList
|
|
37
|
-
* @returns Array of child nodes
|
|
38
|
-
*/
|
|
39
|
-
const nodeListToArray = childNodes => {
|
|
40
|
-
try {
|
|
41
|
-
return Array.from(childNodes);
|
|
42
|
-
} catch (error) {
|
|
43
|
-
return [];
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
function isChannelTypeSupportsMultipleFilesMessage(channel) {
|
|
47
|
-
var _channel$isGroupChann;
|
|
48
|
-
return channel && (channel === null || channel === void 0 || (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !channel.isBroadcast && !channel.isSuper;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function inserTemplateToDOM(templateList) {
|
|
52
|
-
var nodes = templateList.map(function (template) {
|
|
53
|
-
var text = template.text,
|
|
54
|
-
userId = template.userId;
|
|
55
|
-
if (userId) {
|
|
56
|
-
return renderToString({
|
|
57
|
-
userId: userId,
|
|
58
|
-
nickname: text
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return sanitizeString(text);
|
|
62
|
-
}).join(' ')
|
|
63
|
-
// add a space at the end of the mention, else cursor/caret wont work
|
|
64
|
-
.concat(' ');
|
|
65
|
-
document.execCommand('insertHTML', false, nodes);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
var PASTE_NODE = 'sendbird-uikit__paste-node';
|
|
69
|
-
var TEXT_MESSAGE_CLASS = 'sendbird-word';
|
|
70
|
-
var MENTION_CLASS = 'sendbird-word__mention';
|
|
71
|
-
var MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';
|
|
72
|
-
var MENTION_CLASS_COMBINED_QUERY = ".".concat(MENTION_CLASS, ", .").concat(MENTION_CLASS_IN_INPUT);
|
|
73
|
-
|
|
74
|
-
function querySelectorIncludingSelf(master, selector) {
|
|
75
|
-
var result = tslib_es6.__spreadArray([master], Array.from(master.querySelectorAll(selector)), true).find(function (el) {
|
|
76
|
-
return el.matches(selector);
|
|
77
|
-
});
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
// Pasted dom node can be OG_MESSAGE or partial message or full message
|
|
81
|
-
// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes
|
|
82
|
-
// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME
|
|
83
|
-
function getLeafNodes(master) {
|
|
84
|
-
// og message
|
|
85
|
-
var ogMessage = querySelectorIncludingSelf(master, ".".concat(consts$1.OG_MESSAGE_BODY_CLASSNAME));
|
|
86
|
-
if (ogMessage) {
|
|
87
|
-
return nodeListToArray(ogMessage.childNodes);
|
|
88
|
-
}
|
|
89
|
-
var textMessageBody = querySelectorIncludingSelf(master, ".".concat(consts$2.TEXT_MESSAGE_BODY_CLASSNAME));
|
|
90
|
-
if (textMessageBody) {
|
|
91
|
-
return nodeListToArray(textMessageBody.childNodes);
|
|
92
|
-
}
|
|
93
|
-
return nodeListToArray(master.childNodes);
|
|
94
|
-
}
|
|
95
|
-
function createPasteNode() {
|
|
96
|
-
var pasteNode = document.body.querySelector("#".concat(PASTE_NODE));
|
|
97
|
-
// remove existing paste node
|
|
98
|
-
if (pasteNode) {
|
|
99
|
-
pasteNode === null || pasteNode === void 0 ? void 0 : pasteNode.remove();
|
|
100
|
-
}
|
|
101
|
-
// create new paste node and return
|
|
102
|
-
var node = document.createElement('div');
|
|
103
|
-
node.id = PASTE_NODE;
|
|
104
|
-
node.style.display = 'none';
|
|
105
|
-
return node;
|
|
106
|
-
}
|
|
107
|
-
function hasMention(parent) {
|
|
108
|
-
return (parent === null || parent === void 0 ? void 0 : parent.querySelector(MENTION_CLASS_COMBINED_QUERY)) ? true : false;
|
|
109
|
-
}
|
|
110
|
-
var extractTextFromNodes = function (nodes) {
|
|
111
|
-
var text = '';
|
|
112
|
-
nodes.forEach(function (node) {
|
|
113
|
-
// to preserve space between words
|
|
114
|
-
var textNodes = node.querySelectorAll(".".concat(TEXT_MESSAGE_CLASS));
|
|
115
|
-
if (textNodes.length > 0) {
|
|
116
|
-
text += extractTextFromNodes(Array.from(textNodes)) + ' ';
|
|
117
|
-
}
|
|
118
|
-
text += node.innerText + ' ';
|
|
119
|
-
});
|
|
120
|
-
return text;
|
|
121
|
-
};
|
|
122
|
-
function domToMessageTemplate(nodeArray) {
|
|
123
|
-
var templates = nodeArray === null || nodeArray === void 0 ? void 0 : nodeArray.reduce(function (accumulator, currentValue) {
|
|
124
|
-
var _a;
|
|
125
|
-
// currentValue can be node(from messageBody or messageInput) or text
|
|
126
|
-
var mentionNode;
|
|
127
|
-
// this looks awkward, but it is a fallback to set default text
|
|
128
|
-
var text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
|
|
129
|
-
// if text node, set text
|
|
130
|
-
if (currentValue instanceof Text) {
|
|
131
|
-
mentionNode = false;
|
|
132
|
-
text = currentValue.textContent;
|
|
133
|
-
}
|
|
134
|
-
if (currentValue instanceof HTMLElement) {
|
|
135
|
-
mentionNode = currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) ? currentValue : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);
|
|
136
|
-
}
|
|
137
|
-
// if mentionNode is not null, it is a mention
|
|
138
|
-
if (mentionNode) {
|
|
139
|
-
var text_1 = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
|
|
140
|
-
var userId = (_a = mentionNode.dataset) === null || _a === void 0 ? void 0 : _a.userid;
|
|
141
|
-
return tslib_es6.__spreadArray(tslib_es6.__spreadArray([], accumulator, true), [{
|
|
142
|
-
text: text_1,
|
|
143
|
-
userId: userId
|
|
144
|
-
}], false);
|
|
145
|
-
}
|
|
146
|
-
return tslib_es6.__spreadArray(tslib_es6.__spreadArray([], accumulator, true), [{
|
|
147
|
-
text: text
|
|
148
|
-
}], false);
|
|
149
|
-
}, []);
|
|
150
|
-
return templates;
|
|
151
|
-
}
|
|
152
|
-
function getUsersFromWords(templates, channel) {
|
|
153
|
-
var userMap = {};
|
|
154
|
-
var users = channel.members;
|
|
155
|
-
templates.forEach(function (template) {
|
|
156
|
-
if (template.userId) {
|
|
157
|
-
var mentionedMember = users.find(function (user) {
|
|
158
|
-
return user.userId === template.userId;
|
|
159
|
-
});
|
|
160
|
-
// Object.values would return array-> [undefined] if the user is not in the channel
|
|
161
|
-
if (mentionedMember) {
|
|
162
|
-
userMap[template.userId] = mentionedMember;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
return Object.values(userMap);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// exported, should be backward compatible
|
|
170
|
-
// conditions to test:
|
|
171
|
-
// 1. paste simple text
|
|
172
|
-
// 2. paste text with mention
|
|
173
|
-
// 3. paste text with mention and text
|
|
174
|
-
// 4. paste text with mention and text and paste again before and after
|
|
175
|
-
// 5. copy message with mention(only one mention, no other text) and paste
|
|
176
|
-
// 6. copy message with mention from input and paste(before and after)
|
|
177
|
-
function usePaste(_a) {
|
|
178
|
-
var ref = _a.ref,
|
|
179
|
-
setIsInput = _a.setIsInput,
|
|
180
|
-
setHeight = _a.setHeight,
|
|
181
|
-
channel = _a.channel,
|
|
182
|
-
setMentionedUsers = _a.setMentionedUsers;
|
|
183
|
-
return React.useCallback(function (e) {
|
|
184
|
-
e.preventDefault();
|
|
185
|
-
var html = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text/html');
|
|
186
|
-
// simple text, continue as normal
|
|
187
|
-
if (!html) {
|
|
188
|
-
var text = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text');
|
|
189
|
-
document.execCommand('insertHTML', false, sanitizeString(text));
|
|
190
|
-
setIsInput(true);
|
|
191
|
-
setHeight();
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
// has html, check if there are mentions, sanitize and insert
|
|
195
|
-
var purifier = DOMPurify__default["default"](window);
|
|
196
|
-
var clean = purifier.sanitize(html);
|
|
197
|
-
var pasteNode = createPasteNode();
|
|
198
|
-
pasteNode.innerHTML = clean;
|
|
199
|
-
// does not have mention, continue as normal
|
|
200
|
-
if (!hasMention(pasteNode)) {
|
|
201
|
-
// to preserve space between words
|
|
202
|
-
var text = extractTextFromNodes(Array.from(pasteNode.children));
|
|
203
|
-
document.execCommand('insertHTML', false, sanitizeString(text));
|
|
204
|
-
pasteNode.remove();
|
|
205
|
-
setIsInput(true);
|
|
206
|
-
setHeight();
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
// has mention, collect leaf nodes and parse words
|
|
210
|
-
var leafNodes = getLeafNodes(pasteNode);
|
|
211
|
-
var words = domToMessageTemplate(leafNodes);
|
|
212
|
-
var mentionedUsers = getUsersFromWords(words, channel);
|
|
213
|
-
// side effects
|
|
214
|
-
setMentionedUsers(mentionedUsers);
|
|
215
|
-
inserTemplateToDOM(words);
|
|
216
|
-
pasteNode.remove();
|
|
217
|
-
setIsInput(true);
|
|
218
|
-
setHeight();
|
|
219
|
-
}, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
exports.isChannelTypeSupportsMultipleFilesMessage = isChannelTypeSupportsMultipleFilesMessage;
|
|
223
|
-
exports.nodeListToArray = nodeListToArray;
|
|
224
|
-
exports.renderToString = renderToString;
|
|
225
|
-
exports.sanitizeString = sanitizeString;
|
|
226
|
-
exports.usePaste = usePaste;
|
|
227
|
-
//# sourceMappingURL=index-cc2e05a4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-cc2e05a4.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport function isChannelTypeSupportsMultipleFilesMessage(channel) {\n return channel\n && channel?.isGroupChannel?.()\n && !channel.isBroadcast\n && !channel.isSuper;\n}\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","nodeListToArray","childNodes","Array","from","error","isChannelTypeSupportsMultipleFilesMessage","channel","_channel$isGroupChann","isGroupChannel","call","isBroadcast","isSuper","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
|