@tencentcloud/chat-uikit-react 0.0.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/.babelrc +7 -0
- package/.eslintrc.js +70 -0
- package/README.md +107 -0
- package/dist/cjs/_virtual/DateInput.js +1 -0
- package/dist/cjs/_virtual/DatePicker.js +1 -0
- package/dist/cjs/_virtual/DayInput.js +1 -0
- package/dist/cjs/_virtual/Divider.js +1 -0
- package/dist/cjs/_virtual/Fit.js +1 -0
- package/dist/cjs/_virtual/Input.js +1 -0
- package/dist/cjs/_virtual/MonthInput.js +1 -0
- package/dist/cjs/_virtual/MonthSelect.js +1 -0
- package/dist/cjs/_virtual/NativeInput.js +1 -0
- package/dist/cjs/_virtual/YearInput.js +1 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +1 -0
- package/dist/cjs/_virtual/clsx.m.js +1 -0
- package/dist/cjs/_virtual/dateFormatter.js +1 -0
- package/dist/cjs/_virtual/dates.js +1 -0
- package/dist/cjs/_virtual/entry.js +1 -0
- package/dist/cjs/_virtual/index.js +1 -0
- package/dist/cjs/_virtual/index10.js +1 -0
- package/dist/cjs/_virtual/index2.js +1 -0
- package/dist/cjs/_virtual/index3.js +1 -0
- package/dist/cjs/_virtual/index4.js +1 -0
- package/dist/cjs/_virtual/index5.js +1 -0
- package/dist/cjs/_virtual/index6.js +1 -0
- package/dist/cjs/_virtual/index7.js +1 -0
- package/dist/cjs/_virtual/index8.js +1 -0
- package/dist/cjs/_virtual/index9.js +1 -0
- package/dist/cjs/_virtual/propTypes.js +1 -0
- package/dist/cjs/_virtual/react-dom.development.js +1 -0
- package/dist/cjs/_virtual/react-dom.production.min.js +1 -0
- package/dist/cjs/_virtual/react-is.development.js +1 -0
- package/dist/cjs/_virtual/react-is.production.min.js +1 -0
- package/dist/cjs/_virtual/scheduler.development.js +1 -0
- package/dist/cjs/_virtual/scheduler.production.min.js +1 -0
- package/dist/cjs/_virtual/tiny-warning.esm.js +1 -0
- package/dist/cjs/_virtual/utils.js +1 -0
- package/dist/cjs/components/Avatar/Avatar.d.ts +22 -0
- package/dist/cjs/components/Avatar/Avatar.js +1 -0
- package/dist/cjs/components/Avatar/default.d.ts +7 -0
- package/dist/cjs/components/Avatar/default.js +1 -0
- package/dist/cjs/components/Checkbox/index.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreateSelectView.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -0
- package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.js +1 -0
- package/dist/cjs/components/ConversationCreate/static/word.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationListContainer.d.ts +10 -0
- package/dist/cjs/components/ConversationPreview/ConversationListContainer.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreview.d.ts +31 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreview.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.d.ts +7 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.js +1 -0
- package/dist/cjs/components/ConversationPreview/utils.js +1 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchInput.d.ts +5 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchInput.js +1 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.d.ts +12 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.js +1 -0
- package/dist/cjs/components/DivWithEdit/DivWithEdit.js +1 -0
- package/dist/cjs/components/DivWithEdit/WithSelect.js +1 -0
- package/dist/cjs/components/DivWithEdit/WithText.js +1 -0
- package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +6 -0
- package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -0
- package/dist/cjs/components/Icon/Icon.js +1 -0
- package/dist/cjs/components/Icon/config.js +1 -0
- package/dist/cjs/components/Icon/images/add.png.js +1 -0
- package/dist/cjs/components/Icon/images/arrow-down.png.js +1 -0
- package/dist/cjs/components/Icon/images/arrow-right.png.js +1 -0
- package/dist/cjs/components/Icon/images/back.png.js +1 -0
- package/dist/cjs/components/Icon/images/camera.png.js +1 -0
- package/dist/cjs/components/Icon/images/cancel.png.js +1 -0
- package/dist/cjs/components/Icon/images/clear.png.js +1 -0
- package/dist/cjs/components/Icon/images/close.png.js +1 -0
- package/dist/cjs/components/Icon/images/confirm.png.js +1 -0
- package/dist/cjs/components/Icon/images/copy.png.js +1 -0
- package/dist/cjs/components/Icon/images/create.png.js +1 -0
- package/dist/cjs/components/Icon/images/cry.png.js +1 -0
- package/dist/cjs/components/Icon/images/del.png.js +1 -0
- package/dist/cjs/components/Icon/images/document.png.js +1 -0
- package/dist/cjs/components/Icon/images/edit.png.js +1 -0
- package/dist/cjs/components/Icon/images/effort.png.js +1 -0
- package/dist/cjs/components/Icon/images/ellipse.png.js +1 -0
- package/dist/cjs/components/Icon/images/emoji.png.js +1 -0
- package/dist/cjs/components/Icon/images/file.png.js +1 -0
- package/dist/cjs/components/Icon/images/forward.png.js +1 -0
- package/dist/cjs/components/Icon/images/image.png.js +1 -0
- package/dist/cjs/components/Icon/images/more.png.js +1 -0
- package/dist/cjs/components/Icon/images/progress.png.js +1 -0
- package/dist/cjs/components/Icon/images/quote.png.js +1 -0
- package/dist/cjs/components/Icon/images/reply.png.js +1 -0
- package/dist/cjs/components/Icon/images/revocation.png.js +1 -0
- package/dist/cjs/components/Icon/images/right.png.js +1 -0
- package/dist/cjs/components/Icon/images/search.png.js +1 -0
- package/dist/cjs/components/Icon/images/star.png.js +1 -0
- package/dist/cjs/components/Icon/images/video.png.js +1 -0
- package/dist/cjs/components/Icon/type.js +1 -0
- package/dist/cjs/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +20 -0
- package/dist/cjs/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
- package/dist/cjs/components/Input/Input.d.ts +16 -0
- package/dist/cjs/components/Input/Input.js +1 -0
- package/dist/cjs/components/Model/index.js +1 -0
- package/dist/cjs/components/Plugins/hooks/usePluginsElement.js +1 -0
- package/dist/cjs/components/Plugins/index.js +1 -0
- package/dist/cjs/components/Popup/index.js +1 -0
- package/dist/cjs/components/Profile/Profile.js +1 -0
- package/dist/cjs/components/Switch/Switch.js +1 -0
- package/dist/cjs/components/Switch/utils/newId.js +1 -0
- package/dist/cjs/components/TUIChat/TUIChat.d.ts +27 -0
- package/dist/cjs/components/TUIChat/TUIChat.js +1 -0
- package/dist/cjs/components/TUIChat/TUIChatState.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +31 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.d.ts +7 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +1 -0
- package/dist/cjs/components/TUIChat/unitls.js +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +13 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.js +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +13 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -0
- package/dist/cjs/components/TUIConversation/TUIConversation.d.ts +10 -0
- package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -0
- package/dist/cjs/components/TUIConversationList/TUIConversationList.d.ts +17 -0
- package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -0
- package/dist/cjs/components/TUIConversationList/hooks/useConversationList.js +1 -0
- package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -0
- package/dist/cjs/components/TUIKit/TUIKit.d.ts +10 -0
- package/dist/cjs/components/TUIKit/TUIKit.js +1 -0
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +17 -0
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -0
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +17 -0
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -0
- package/dist/cjs/components/TUIManage/TUIManage.d.ts +3 -0
- package/dist/cjs/components/TUIManage/TUIManage.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageAudio.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageContext.d.ts +7 -0
- package/dist/cjs/components/TUIMessage/MessageContext.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageFace.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageFile.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageImage.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageLocation.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -0
- package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageStatus.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageSystem.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageText.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageTip.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageVideo.js +1 -0
- package/dist/cjs/components/TUIMessage/TUIMessage.d.ts +41 -0
- package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -0
- package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageContextHandler.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessagePluginElement.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/decodeText.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/emojiMap.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/index.js +1 -0
- package/dist/cjs/components/TUIMessageInput/EmojiPicker.js +1 -0
- package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.js +1 -0
- package/dist/cjs/components/TUIMessageInput/InputQuoteDefalut.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.d.ts +18 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.d.ts +6 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.d.ts +6 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadElement.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.js +1 -0
- package/dist/cjs/components/TUIMessageList/TUIMessageList.d.ts +11 -0
- package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -0
- package/dist/cjs/components/TUIMessageList/hooks/useEnrichedMessageList.js +1 -0
- package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -0
- package/dist/cjs/components/TUIProfile/TUIProfile.d.ts +10 -0
- package/dist/cjs/components/TUIProfile/TUIProfile.js +1 -0
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.d.ts +12 -0
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -0
- package/dist/cjs/components/TUIProfile/hooks/useMyProfile.d.ts +17 -0
- package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -0
- package/dist/cjs/components/Toast/index.js +1 -0
- package/dist/cjs/components/untils.js +1 -0
- package/dist/cjs/constants.d.ts +11 -0
- package/dist/cjs/constants.js +1 -0
- package/dist/cjs/context/ComponentContext.d.ts +26 -0
- package/dist/cjs/context/ComponentContext.js +1 -0
- package/dist/cjs/context/TUIChatActionContext.d.ts +27 -0
- package/dist/cjs/context/TUIChatActionContext.js +1 -0
- package/dist/cjs/context/TUIChatStateContext.d.ts +25 -0
- package/dist/cjs/context/TUIChatStateContext.js +1 -0
- package/dist/cjs/context/TUIConversationContext.js +1 -0
- package/dist/cjs/context/TUIKitContext.d.ts +21 -0
- package/dist/cjs/context/TUIKitContext.js +1 -0
- package/dist/cjs/context/TUIMessageContext.d.ts +41 -0
- package/dist/cjs/context/TUIMessageContext.js +1 -0
- package/dist/cjs/context/TUIMessageInputContext.d.ts +37 -0
- package/dist/cjs/context/TUIMessageInputContext.js +1 -0
- package/dist/cjs/hooks/useConversation.d.ts +25 -0
- package/dist/cjs/hooks/useConversation.js +1 -0
- package/dist/cjs/hooks/useProfile.d.ts +5 -0
- package/dist/cjs/hooks/useProfile.js +1 -0
- package/dist/cjs/index.css +1 -0
- package/dist/cjs/index.d.css +1281 -0
- package/dist/cjs/index.d.ts +29 -0
- package/dist/cjs/index.js +1 -0
- package/dist/esm/_virtual/DateInput.js +1 -0
- package/dist/esm/_virtual/DatePicker.js +1 -0
- package/dist/esm/_virtual/DayInput.js +1 -0
- package/dist/esm/_virtual/Divider.js +1 -0
- package/dist/esm/_virtual/Fit.js +1 -0
- package/dist/esm/_virtual/Input.js +1 -0
- package/dist/esm/_virtual/MonthInput.js +1 -0
- package/dist/esm/_virtual/MonthSelect.js +1 -0
- package/dist/esm/_virtual/NativeInput.js +1 -0
- package/dist/esm/_virtual/YearInput.js +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +1 -0
- package/dist/esm/_virtual/clsx.m.js +1 -0
- package/dist/esm/_virtual/dateFormatter.js +1 -0
- package/dist/esm/_virtual/dates.js +1 -0
- package/dist/esm/_virtual/entry.js +1 -0
- package/dist/esm/_virtual/index.js +1 -0
- package/dist/esm/_virtual/index10.js +1 -0
- package/dist/esm/_virtual/index2.js +1 -0
- package/dist/esm/_virtual/index3.js +1 -0
- package/dist/esm/_virtual/index4.js +1 -0
- package/dist/esm/_virtual/index5.js +1 -0
- package/dist/esm/_virtual/index6.js +1 -0
- package/dist/esm/_virtual/index7.js +1 -0
- package/dist/esm/_virtual/index8.js +1 -0
- package/dist/esm/_virtual/index9.js +1 -0
- package/dist/esm/_virtual/propTypes.js +1 -0
- package/dist/esm/_virtual/react-dom.development.js +1 -0
- package/dist/esm/_virtual/react-dom.production.min.js +1 -0
- package/dist/esm/_virtual/react-is.development.js +1 -0
- package/dist/esm/_virtual/react-is.production.min.js +1 -0
- package/dist/esm/_virtual/scheduler.development.js +1 -0
- package/dist/esm/_virtual/scheduler.production.min.js +1 -0
- package/dist/esm/_virtual/tiny-warning.esm.js +1 -0
- package/dist/esm/_virtual/utils.js +1 -0
- package/dist/esm/components/Avatar/Avatar.d.ts +22 -0
- package/dist/esm/components/Avatar/Avatar.js +1 -0
- package/dist/esm/components/Avatar/default.d.ts +7 -0
- package/dist/esm/components/Avatar/default.js +1 -0
- package/dist/esm/components/Checkbox/index.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreateSelectView.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -0
- package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -0
- package/dist/esm/components/ConversationCreate/static/word.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationListContainer.d.ts +10 -0
- package/dist/esm/components/ConversationPreview/ConversationListContainer.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationPreview.d.ts +31 -0
- package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationPreviewContent.d.ts +7 -0
- package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -0
- package/dist/esm/components/ConversationPreview/utils.js +1 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchInput.d.ts +5 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchInput.js +1 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.d.ts +12 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -0
- package/dist/esm/components/DivWithEdit/DivWithEdit.js +1 -0
- package/dist/esm/components/DivWithEdit/WithSelect.js +1 -0
- package/dist/esm/components/DivWithEdit/WithText.js +1 -0
- package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +6 -0
- package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -0
- package/dist/esm/components/Icon/Icon.js +1 -0
- package/dist/esm/components/Icon/config.js +1 -0
- package/dist/esm/components/Icon/images/add.png.js +1 -0
- package/dist/esm/components/Icon/images/arrow-down.png.js +1 -0
- package/dist/esm/components/Icon/images/arrow-right.png.js +1 -0
- package/dist/esm/components/Icon/images/back.png.js +1 -0
- package/dist/esm/components/Icon/images/camera.png.js +1 -0
- package/dist/esm/components/Icon/images/cancel.png.js +1 -0
- package/dist/esm/components/Icon/images/clear.png.js +1 -0
- package/dist/esm/components/Icon/images/close.png.js +1 -0
- package/dist/esm/components/Icon/images/confirm.png.js +1 -0
- package/dist/esm/components/Icon/images/copy.png.js +1 -0
- package/dist/esm/components/Icon/images/create.png.js +1 -0
- package/dist/esm/components/Icon/images/cry.png.js +1 -0
- package/dist/esm/components/Icon/images/del.png.js +1 -0
- package/dist/esm/components/Icon/images/document.png.js +1 -0
- package/dist/esm/components/Icon/images/edit.png.js +1 -0
- package/dist/esm/components/Icon/images/effort.png.js +1 -0
- package/dist/esm/components/Icon/images/ellipse.png.js +1 -0
- package/dist/esm/components/Icon/images/emoji.png.js +1 -0
- package/dist/esm/components/Icon/images/file.png.js +1 -0
- package/dist/esm/components/Icon/images/forward.png.js +1 -0
- package/dist/esm/components/Icon/images/image.png.js +1 -0
- package/dist/esm/components/Icon/images/more.png.js +1 -0
- package/dist/esm/components/Icon/images/progress.png.js +1 -0
- package/dist/esm/components/Icon/images/quote.png.js +1 -0
- package/dist/esm/components/Icon/images/reply.png.js +1 -0
- package/dist/esm/components/Icon/images/revocation.png.js +1 -0
- package/dist/esm/components/Icon/images/right.png.js +1 -0
- package/dist/esm/components/Icon/images/search.png.js +1 -0
- package/dist/esm/components/Icon/images/star.png.js +1 -0
- package/dist/esm/components/Icon/images/video.png.js +1 -0
- package/dist/esm/components/Icon/type.js +1 -0
- package/dist/esm/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +20 -0
- package/dist/esm/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
- package/dist/esm/components/Input/Input.d.ts +16 -0
- package/dist/esm/components/Input/Input.js +1 -0
- package/dist/esm/components/Model/index.js +1 -0
- package/dist/esm/components/Plugins/hooks/usePluginsElement.js +1 -0
- package/dist/esm/components/Plugins/index.js +1 -0
- package/dist/esm/components/Popup/index.js +1 -0
- package/dist/esm/components/Profile/Profile.js +1 -0
- package/dist/esm/components/Switch/Switch.js +1 -0
- package/dist/esm/components/Switch/utils/newId.js +1 -0
- package/dist/esm/components/TUIChat/TUIChat.d.ts +27 -0
- package/dist/esm/components/TUIChat/TUIChat.js +1 -0
- package/dist/esm/components/TUIChat/TUIChatState.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +31 -0
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.d.ts +7 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +1 -0
- package/dist/esm/components/TUIChat/unitls.js +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +13 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.js +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +13 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -0
- package/dist/esm/components/TUIConversation/TUIConversation.d.ts +10 -0
- package/dist/esm/components/TUIConversation/TUIConversation.js +1 -0
- package/dist/esm/components/TUIConversationList/TUIConversationList.d.ts +17 -0
- package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -0
- package/dist/esm/components/TUIConversationList/hooks/useConversationList.js +1 -0
- package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -0
- package/dist/esm/components/TUIKit/TUIKit.d.ts +10 -0
- package/dist/esm/components/TUIKit/TUIKit.js +1 -0
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +17 -0
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -0
- package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +17 -0
- package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -0
- package/dist/esm/components/TUIManage/TUIManage.d.ts +3 -0
- package/dist/esm/components/TUIManage/TUIManage.js +1 -0
- package/dist/esm/components/TUIMessage/MessageAudio.js +1 -0
- package/dist/esm/components/TUIMessage/MessageBubble.js +1 -0
- package/dist/esm/components/TUIMessage/MessageContext.d.ts +7 -0
- package/dist/esm/components/TUIMessage/MessageContext.js +1 -0
- package/dist/esm/components/TUIMessage/MessageCustom.js +1 -0
- package/dist/esm/components/TUIMessage/MessageFace.js +1 -0
- package/dist/esm/components/TUIMessage/MessageFile.js +1 -0
- package/dist/esm/components/TUIMessage/MessageImage.js +1 -0
- package/dist/esm/components/TUIMessage/MessageLocation.js +1 -0
- package/dist/esm/components/TUIMessage/MessageMerger.js +1 -0
- package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -0
- package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -0
- package/dist/esm/components/TUIMessage/MessageStatus.js +1 -0
- package/dist/esm/components/TUIMessage/MessageSystem.js +1 -0
- package/dist/esm/components/TUIMessage/MessageText.js +1 -0
- package/dist/esm/components/TUIMessage/MessageTip.js +1 -0
- package/dist/esm/components/TUIMessage/MessageVideo.js +1 -0
- package/dist/esm/components/TUIMessage/TUIMessage.d.ts +41 -0
- package/dist/esm/components/TUIMessage/TUIMessage.js +1 -0
- package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageContextHandler.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessagePluginElement.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -0
- package/dist/esm/components/TUIMessage/utils/decodeText.js +1 -0
- package/dist/esm/components/TUIMessage/utils/emojiMap.js +1 -0
- package/dist/esm/components/TUIMessage/utils/index.js +1 -0
- package/dist/esm/components/TUIMessageInput/EmojiPicker.js +1 -0
- package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.js +1 -0
- package/dist/esm/components/TUIMessageInput/InputQuoteDefalut.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.d.ts +18 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.d.ts +6 -0
- package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.d.ts +6 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadElement.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.js +1 -0
- package/dist/esm/components/TUIMessageList/TUIMessageList.d.ts +11 -0
- package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -0
- package/dist/esm/components/TUIMessageList/hooks/useEnrichedMessageList.js +1 -0
- package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -0
- package/dist/esm/components/TUIProfile/TUIProfile.d.ts +10 -0
- package/dist/esm/components/TUIProfile/TUIProfile.js +1 -0
- package/dist/esm/components/TUIProfile/TUIProfileDefault.d.ts +12 -0
- package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -0
- package/dist/esm/components/TUIProfile/hooks/useMyProfile.d.ts +17 -0
- package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -0
- package/dist/esm/components/Toast/index.js +1 -0
- package/dist/esm/components/untils.js +1 -0
- package/dist/esm/constants.d.ts +11 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/context/ComponentContext.d.ts +26 -0
- package/dist/esm/context/ComponentContext.js +1 -0
- package/dist/esm/context/TUIChatActionContext.d.ts +27 -0
- package/dist/esm/context/TUIChatActionContext.js +1 -0
- package/dist/esm/context/TUIChatStateContext.d.ts +25 -0
- package/dist/esm/context/TUIChatStateContext.js +1 -0
- package/dist/esm/context/TUIConversationContext.js +1 -0
- package/dist/esm/context/TUIKitContext.d.ts +21 -0
- package/dist/esm/context/TUIKitContext.js +1 -0
- package/dist/esm/context/TUIMessageContext.d.ts +41 -0
- package/dist/esm/context/TUIMessageContext.js +1 -0
- package/dist/esm/context/TUIMessageInputContext.d.ts +37 -0
- package/dist/esm/context/TUIMessageInputContext.js +1 -0
- package/dist/esm/hooks/useConversation.d.ts +25 -0
- package/dist/esm/hooks/useConversation.js +1 -0
- package/dist/esm/hooks/useProfile.d.ts +5 -0
- package/dist/esm/hooks/useProfile.js +1 -0
- package/dist/esm/index.css +1 -0
- package/dist/esm/index.d.css +1281 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.js +1 -0
- package/package.json +70 -0
- package/rollup.config.js +66 -0
- package/src/@types/images.d.ts +7 -0
- package/src/@types/index.d.ts +1 -0
- package/src/@types/index.js +3 -0
- package/src/components/Avatar/Avatar.tsx +151 -0
- package/src/components/Avatar/default.ts +5 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Avatar/styles/index.scss +55 -0
- package/src/components/Checkbox/index.tsx +53 -0
- package/src/components/Checkbox/styles/color.scss +11 -0
- package/src/components/Checkbox/styles/index.scss +2 -0
- package/src/components/Checkbox/styles/layout.scss +25 -0
- package/src/components/ConversationCreate/ConversationCreatGroupDetail.tsx +155 -0
- package/src/components/ConversationCreate/ConversationCreate.tsx +74 -0
- package/src/components/ConversationCreate/ConversationCreateSelectView.tsx +46 -0
- package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +158 -0
- package/src/components/ConversationCreate/ConversationGroupTypeInfo.tsx +50 -0
- package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +105 -0
- package/src/components/ConversationCreate/index.ts +6 -0
- package/src/components/ConversationCreate/static/word.ts +300 -0
- package/src/components/ConversationCreate/styles/ConversationCreatGroupDetail.scss +58 -0
- package/src/components/ConversationCreate/styles/conversationCreateSelectView.scss +32 -0
- package/src/components/ConversationCreate/styles/conversationGroupTypeInfo.scss +61 -0
- package/src/components/ConversationCreate/styles/index.scss +87 -0
- package/src/components/ConversationPreview/ConversationListContainer.tsx +20 -0
- package/src/components/ConversationPreview/ConversationPreview.tsx +75 -0
- package/src/components/ConversationPreview/ConversationPreviewContent.tsx +136 -0
- package/src/components/ConversationPreview/index.ts +2 -0
- package/src/components/ConversationPreview/styles/index.scss +140 -0
- package/src/components/ConversationPreview/utils.tsx +124 -0
- package/src/components/ConversationSearch/ConversationSearchInput.tsx +25 -0
- package/src/components/ConversationSearch/ConversationSearchResult.tsx +39 -0
- package/src/components/ConversationSearch/index.ts +2 -0
- package/src/components/ConversationSearch/styles/index.scss +19 -0
- package/src/components/DivWithEdit/DivWithEdit.tsx +90 -0
- package/src/components/DivWithEdit/WithSelect.tsx +29 -0
- package/src/components/DivWithEdit/WithText.tsx +42 -0
- package/src/components/DivWithEdit/index.ts +1 -0
- package/src/components/DivWithEdit/styles/index.scss +68 -0
- package/src/components/EmptyStateIndicator/EmptyStateIndicator.tsx +23 -0
- package/src/components/EmptyStateIndicator/index.ts +1 -0
- package/src/components/Icon/Icon.tsx +40 -0
- package/src/components/Icon/config.ts +164 -0
- package/src/components/Icon/images/add.png +0 -0
- package/src/components/Icon/images/arrow-down.png +0 -0
- package/src/components/Icon/images/arrow-right.png +0 -0
- package/src/components/Icon/images/back.png +0 -0
- package/src/components/Icon/images/camera.png +0 -0
- package/src/components/Icon/images/cancel.png +0 -0
- package/src/components/Icon/images/clear.png +0 -0
- package/src/components/Icon/images/close.png +0 -0
- package/src/components/Icon/images/confirm.png +0 -0
- package/src/components/Icon/images/copy.png +0 -0
- package/src/components/Icon/images/create.png +0 -0
- package/src/components/Icon/images/cry.png +0 -0
- package/src/components/Icon/images/del.png +0 -0
- package/src/components/Icon/images/document.png +0 -0
- package/src/components/Icon/images/edit.png +0 -0
- package/src/components/Icon/images/effort.png +0 -0
- package/src/components/Icon/images/ellipse.png +0 -0
- package/src/components/Icon/images/emoji.png +0 -0
- package/src/components/Icon/images/file.png +0 -0
- package/src/components/Icon/images/forward.png +0 -0
- package/src/components/Icon/images/image.png +0 -0
- package/src/components/Icon/images/more.png +0 -0
- package/src/components/Icon/images/progress.png +0 -0
- package/src/components/Icon/images/quote.png +0 -0
- package/src/components/Icon/images/reply.png +0 -0
- package/src/components/Icon/images/revocation.png +0 -0
- package/src/components/Icon/images/right.png +0 -0
- package/src/components/Icon/images/search.png +0 -0
- package/src/components/Icon/images/star.png +0 -0
- package/src/components/Icon/images/video.png +0 -0
- package/src/components/Icon/index.ts +2 -0
- package/src/components/Icon/styles/index.scss +31 -0
- package/src/components/Icon/type.ts +32 -0
- package/src/components/InfiniteScrollPaginator/InfiniteScroll.tsx +115 -0
- package/src/components/InfiniteScrollPaginator/index.ts +1 -0
- package/src/components/Input/Input.tsx +108 -0
- package/src/components/Input/index.ts +1 -0
- package/src/components/Input/styles/index.scss +44 -0
- package/src/components/Model/index.tsx +24 -0
- package/src/components/Model/styles/color.scss +0 -0
- package/src/components/Model/styles/index.scss +2 -0
- package/src/components/Model/styles/layout.scss +12 -0
- package/src/components/Plugins/hooks/index.ts +1 -0
- package/src/components/Plugins/hooks/usePluginsElement.tsx +16 -0
- package/src/components/Plugins/index.tsx +99 -0
- package/src/components/Plugins/styles/color.scss +7 -0
- package/src/components/Plugins/styles/index.scss +2 -0
- package/src/components/Plugins/styles/layout.scss +18 -0
- package/src/components/Popup/index.tsx +76 -0
- package/src/components/Popup/styles/color.scss +0 -0
- package/src/components/Popup/styles/index.scss +2 -0
- package/src/components/Popup/styles/layout.scss +6 -0
- package/src/components/Profile/Profile.tsx +25 -0
- package/src/components/Profile/hooks/useProfile.tsx +28 -0
- package/src/components/Profile/index.ts +2 -0
- package/src/components/Profile/styles/index.scss +17 -0
- package/src/components/Switch/Switch.scss +37 -0
- package/src/components/Switch/Switch.tsx +41 -0
- package/src/components/Switch/index.ts +1 -0
- package/src/components/Switch/utils/newId.tsx +6 -0
- package/src/components/TUIChat/TUIChat.tsx +276 -0
- package/src/components/TUIChat/TUIChatState.tsx +129 -0
- package/src/components/TUIChat/hooks/useCreateMessage.tsx +117 -0
- package/src/components/TUIChat/hooks/useCreateTUIChatStateContext.tsx +34 -0
- package/src/components/TUIChat/hooks/useHandleMessage.tsx +33 -0
- package/src/components/TUIChat/hooks/useHandleMessageList.tsx +70 -0
- package/src/components/TUIChat/hooks/useIsMounted.ts +14 -0
- package/src/components/TUIChat/hooks/useMessageReceviedListener.tsx +26 -0
- package/src/components/TUIChat/index.ts +2 -0
- package/src/components/TUIChat/styles/index.scss +1 -0
- package/src/components/TUIChat/styles/layout.scss +9 -0
- package/src/components/TUIChat/unitls.ts +55 -0
- package/src/components/TUIChatHeader/TUIChatHeader.tsx +41 -0
- package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +97 -0
- package/src/components/TUIChatHeader/index.ts +2 -0
- package/src/components/TUIChatHeader/styles/color.scss +3 -0
- package/src/components/TUIChatHeader/styles/index.scss +2 -0
- package/src/components/TUIChatHeader/styles/layout.scss +32 -0
- package/src/components/TUIConversation/TUIConversation.tsx +44 -0
- package/src/components/TUIConversation/index.ts +1 -0
- package/src/components/TUIConversationList/TUIConversationList.tsx +142 -0
- package/src/components/TUIConversationList/hooks/useConversationList.tsx +41 -0
- package/src/components/TUIConversationList/hooks/useConversationUpdate.tsx +33 -0
- package/src/components/TUIConversationList/index.scss +36 -0
- package/src/components/TUIConversationList/index.ts +2 -0
- package/src/components/TUIKit/TUIKit.tsx +56 -0
- package/src/components/TUIKit/hooks/useCreateTUIKitContext.tsx +40 -0
- package/src/components/TUIKit/hooks/useTUIKit.tsx +40 -0
- package/src/components/TUIKit/index.ts +3 -0
- package/src/components/TUIKit/styles/index.scss +9 -0
- package/src/components/TUIKit/styles/reset.scss +43 -0
- package/src/components/TUIManage/TUIManage.tsx +86 -0
- package/src/components/TUIManage/index.ts +1 -0
- package/src/components/TUIManage/styles/index.scss +67 -0
- package/src/components/TUIMessage/MessageAudio.tsx +28 -0
- package/src/components/TUIMessage/MessageBubble.tsx +99 -0
- package/src/components/TUIMessage/MessageContext.tsx +81 -0
- package/src/components/TUIMessage/MessageCustom.tsx +40 -0
- package/src/components/TUIMessage/MessageFace.tsx +28 -0
- package/src/components/TUIMessage/MessageFile.tsx +35 -0
- package/src/components/TUIMessage/MessageImage.tsx +42 -0
- package/src/components/TUIMessage/MessageLocation.tsx +29 -0
- package/src/components/TUIMessage/MessageMerger.tsx +37 -0
- package/src/components/TUIMessage/MessagePlugins.tsx +149 -0
- package/src/components/TUIMessage/MessageRevoke.tsx +47 -0
- package/src/components/TUIMessage/MessageStatus.tsx +34 -0
- package/src/components/TUIMessage/MessageSystem.tsx +30 -0
- package/src/components/TUIMessage/MessageText.tsx +43 -0
- package/src/components/TUIMessage/MessageTip.tsx +28 -0
- package/src/components/TUIMessage/MessageVideo.tsx +42 -0
- package/src/components/TUIMessage/TUIMessage.tsx +98 -0
- package/src/components/TUIMessage/TUIMessageDefault.tsx +93 -0
- package/src/components/TUIMessage/hooks/index.ts +3 -0
- package/src/components/TUIMessage/hooks/useMessageContextHandler.ts +70 -0
- package/src/components/TUIMessage/hooks/useMessageHandler.ts +142 -0
- package/src/components/TUIMessage/hooks/useMessagePluginElement.tsx +17 -0
- package/src/components/TUIMessage/hooks/useMessageReply.ts +65 -0
- package/src/components/TUIMessage/index.ts +3 -0
- package/src/components/TUIMessage/styles/color.scss +32 -0
- package/src/components/TUIMessage/styles/index.scss +2 -0
- package/src/components/TUIMessage/styles/layout.scss +389 -0
- package/src/components/TUIMessage/utils/decodeText.ts +61 -0
- package/src/components/TUIMessage/utils/emojiMap.ts +311 -0
- package/src/components/TUIMessage/utils/index.ts +463 -0
- package/src/components/TUIMessageInput/EmojiPicker.tsx +71 -0
- package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +69 -0
- package/src/components/TUIMessageInput/InputQuoteDefalut.tsx +41 -0
- package/src/components/TUIMessageInput/TUIForward.tsx +194 -0
- package/src/components/TUIMessageInput/TUIMessageInput.tsx +94 -0
- package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +75 -0
- package/src/components/TUIMessageInput/hooks/index.ts +6 -0
- package/src/components/TUIMessageInput/hooks/useCreateMessageInputContext.ts +51 -0
- package/src/components/TUIMessageInput/hooks/useEmojiPicker.tsx +42 -0
- package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +41 -0
- package/src/components/TUIMessageInput/hooks/useHandleQuoteMessage.tsx +63 -0
- package/src/components/TUIMessageInput/hooks/useMessageInputState.tsx +101 -0
- package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +176 -0
- package/src/components/TUIMessageInput/hooks/usePluginsElement.tsx +24 -0
- package/src/components/TUIMessageInput/hooks/useUploadElement.tsx +35 -0
- package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +40 -0
- package/src/components/TUIMessageInput/index.ts +3 -0
- package/src/components/TUIMessageInput/styles/color.scss +17 -0
- package/src/components/TUIMessageInput/styles/index.scss +2 -0
- package/src/components/TUIMessageInput/styles/layout.scss +280 -0
- package/src/components/TUIMessageList/TUIMessageList.tsx +106 -0
- package/src/components/TUIMessageList/hooks/useEnrichedMessageList.tsx +16 -0
- package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +24 -0
- package/src/components/TUIMessageList/index.ts +2 -0
- package/src/components/TUIMessageList/styles/color.scss +0 -0
- package/src/components/TUIMessageList/styles/index.scss +2 -0
- package/src/components/TUIMessageList/styles/layout.scss +28 -0
- package/src/components/TUIProfile/TUIProfile.tsx +37 -0
- package/src/components/TUIProfile/TUIProfileDefault.tsx +247 -0
- package/src/components/TUIProfile/hooks/index.ts +1 -0
- package/src/components/TUIProfile/hooks/useMyProfile.tsx +64 -0
- package/src/components/TUIProfile/index.ts +2 -0
- package/src/components/TUIProfile/styles/color.scss +6 -0
- package/src/components/TUIProfile/styles/index.scss +2 -0
- package/src/components/TUIProfile/styles/layout.scss +91 -0
- package/src/components/Toast/index.tsx +44 -0
- package/src/components/Toast/styles/color.scss +11 -0
- package/src/components/Toast/styles/index.scss +2 -0
- package/src/components/Toast/styles/layout.scss +11 -0
- package/src/components/index.ts +12 -0
- package/src/components/untils.ts +72 -0
- package/src/constants.ts +84 -0
- package/src/context/ComponentContext.tsx +46 -0
- package/src/context/TUIChatActionContext.tsx +57 -0
- package/src/context/TUIChatStateContext.tsx +40 -0
- package/src/context/TUIConversationContext.tsx +27 -0
- package/src/context/TUIKitContext.tsx +31 -0
- package/src/context/TUIMessageContext.tsx +36 -0
- package/src/context/TUIMessageInputContext.tsx +56 -0
- package/src/context/index.ts +6 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useConversation.tsx +78 -0
- package/src/hooks/useProfile.tsx +8 -0
- package/src/index.ts +3 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { ChatSDK, Conversation, Profile } from 'tim-js-sdk';
|
|
3
|
+
|
|
4
|
+
export interface UseChatParams{
|
|
5
|
+
tim: ChatSDK
|
|
6
|
+
}
|
|
7
|
+
export const useTUIKit = ({ tim }:UseChatParams) => {
|
|
8
|
+
const [conversation, setConversation] = useState<Conversation>();
|
|
9
|
+
const [myProfile, setMyProfile] = useState<Profile>();
|
|
10
|
+
const [TUIManageShow, setTUIManageShow] = useState<boolean>(false);
|
|
11
|
+
const [TUIProfileShow, setTUIProfileShow] = useState<boolean>(false);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const getMyProfile = async () => {
|
|
14
|
+
const res = await tim?.getMyProfile();
|
|
15
|
+
setMyProfile(res?.data);
|
|
16
|
+
};
|
|
17
|
+
getMyProfile();
|
|
18
|
+
}, [tim]);
|
|
19
|
+
const setActiveConversation = useCallback(
|
|
20
|
+
(activeConversation?: Conversation) => {
|
|
21
|
+
if (activeConversation) {
|
|
22
|
+
tim?.setMessageRead({ conversationID: activeConversation.conversationID });
|
|
23
|
+
}
|
|
24
|
+
if (conversation && (activeConversation.conversationID !== conversation.conversationID)) {
|
|
25
|
+
setTUIManageShow(false);
|
|
26
|
+
}
|
|
27
|
+
setConversation(activeConversation);
|
|
28
|
+
},
|
|
29
|
+
[tim],
|
|
30
|
+
);
|
|
31
|
+
return {
|
|
32
|
+
conversation,
|
|
33
|
+
setActiveConversation,
|
|
34
|
+
myProfile,
|
|
35
|
+
TUIManageShow,
|
|
36
|
+
setTUIManageShow,
|
|
37
|
+
TUIProfileShow,
|
|
38
|
+
setTUIProfileShow,
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
html, body, div, span, applet, object, iframe,
|
|
2
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
|
3
|
+
a, abbr, acronym, address, big, cite, code,
|
|
4
|
+
del, dfn, em, img, ins, kbd, q, s, samp,
|
|
5
|
+
small, strike, strong, sub, sup, tt, var,
|
|
6
|
+
b, u, i, center,
|
|
7
|
+
dl, dt, dd, ol, ul, li,
|
|
8
|
+
fieldset, form, label, legend,
|
|
9
|
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
|
10
|
+
article, aside, canvas, details, embed,
|
|
11
|
+
figure, figcaption, footer, header, hgroup,
|
|
12
|
+
menu, nav, output, ruby, section, summary,
|
|
13
|
+
time, mark, audio, video {
|
|
14
|
+
margin: 0;
|
|
15
|
+
padding: 0;
|
|
16
|
+
border: 0;
|
|
17
|
+
font-size: 100%;
|
|
18
|
+
font: inherit;
|
|
19
|
+
vertical-align: baseline;
|
|
20
|
+
}
|
|
21
|
+
/* HTML5 display-role reset for older browsers */
|
|
22
|
+
article, aside, details, figcaption, figure,
|
|
23
|
+
footer, header, hgroup, menu, nav, section {
|
|
24
|
+
display: block;
|
|
25
|
+
}
|
|
26
|
+
body {
|
|
27
|
+
line-height: 1;
|
|
28
|
+
}
|
|
29
|
+
ol, ul {
|
|
30
|
+
list-style: none;
|
|
31
|
+
}
|
|
32
|
+
blockquote, q {
|
|
33
|
+
quotes: none;
|
|
34
|
+
}
|
|
35
|
+
blockquote:before, blockquote:after,
|
|
36
|
+
q:before, q:after {
|
|
37
|
+
content: '';
|
|
38
|
+
content: none;
|
|
39
|
+
}
|
|
40
|
+
table {
|
|
41
|
+
border-collapse: collapse;
|
|
42
|
+
border-spacing: 0;
|
|
43
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import './styles/index.scss';
|
|
3
|
+
import { Icon, IconTypes } from '../Icon';
|
|
4
|
+
import { Avatar, defaultGroupAvatarWork, defaultUserAvatar } from '../Avatar';
|
|
5
|
+
import { Switch } from '../Switch';
|
|
6
|
+
import { useTUIKitContext } from '../../context';
|
|
7
|
+
import { getMessageProfile } from '../ConversationPreview/utils';
|
|
8
|
+
import { useConversationUpdate } from '../TUIConversationList/hooks/useConversationUpdate';
|
|
9
|
+
import { useConversation } from '../../hooks';
|
|
10
|
+
|
|
11
|
+
export function TUIManage() {
|
|
12
|
+
const [conversation, setConversation] = useState(null);
|
|
13
|
+
const [profile, setProfile] = useState(null);
|
|
14
|
+
const [isPinned, setIsPinned] = useState(false);
|
|
15
|
+
const [forceUpdateCount, setForceUpdateCount] = useState(0);
|
|
16
|
+
const {
|
|
17
|
+
conversation: activeConversation,
|
|
18
|
+
setActiveConversation,
|
|
19
|
+
tim,
|
|
20
|
+
TUIManageShow,
|
|
21
|
+
setTUIManageShow,
|
|
22
|
+
} = useTUIKitContext('TUIManage');
|
|
23
|
+
useConversationUpdate(null, () => {
|
|
24
|
+
setForceUpdateCount((count) => count + 1);
|
|
25
|
+
});
|
|
26
|
+
const { pinConversation, deleteConversation } = useConversation(tim);
|
|
27
|
+
const pinChatChange = (e) => {
|
|
28
|
+
setIsPinned(e.target.checked);
|
|
29
|
+
pinConversation({
|
|
30
|
+
conversationID: conversation.conversationID,
|
|
31
|
+
isPinned: e.target.checked,
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const handleDelete = () => {
|
|
35
|
+
deleteConversation(conversation.conversationID);
|
|
36
|
+
setActiveConversation(null);
|
|
37
|
+
};
|
|
38
|
+
const close = () => {
|
|
39
|
+
setTUIManageShow(false);
|
|
40
|
+
};
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
setConversation(activeConversation);
|
|
43
|
+
setProfile(getMessageProfile(activeConversation));
|
|
44
|
+
setIsPinned(activeConversation ? activeConversation.isPinned : false);
|
|
45
|
+
}, [activeConversation, forceUpdateCount]);
|
|
46
|
+
|
|
47
|
+
return TUIManageShow && activeConversation && (
|
|
48
|
+
<div className="tui-manage">
|
|
49
|
+
<div className="tui-manage-title">
|
|
50
|
+
<Icon type={IconTypes.CANCEL} width={16} height={16} onClick={close} />
|
|
51
|
+
<span>Conversation Information</span>
|
|
52
|
+
</div>
|
|
53
|
+
<div className="tui-manage-container">
|
|
54
|
+
<div className="tui-manage-info">
|
|
55
|
+
<div className="info-avatar">
|
|
56
|
+
<Avatar
|
|
57
|
+
size={64}
|
|
58
|
+
image={
|
|
59
|
+
profile?.avatar || (profile?.groupID ? defaultGroupAvatarWork : defaultUserAvatar)
|
|
60
|
+
}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
<div className="info-name">
|
|
64
|
+
{profile?.nick || profile?.name}
|
|
65
|
+
</div>
|
|
66
|
+
<div className="info-id">
|
|
67
|
+
ID:
|
|
68
|
+
{profile?.userID || profile?.groupID}
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div className="tui-manage-handle">
|
|
72
|
+
<div className="manage-handle-box">
|
|
73
|
+
<div className="manage-handle-title">Pin</div>
|
|
74
|
+
<Switch
|
|
75
|
+
onChange={pinChatChange}
|
|
76
|
+
checked={isPinned}
|
|
77
|
+
/>
|
|
78
|
+
</div>
|
|
79
|
+
<div className="manage-handle-box" role="presentation" onClick={handleDelete}>
|
|
80
|
+
<div className="manage-handle-title red">Delete</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TUIManage';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.tui-manage {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: 22%;
|
|
5
|
+
max-width: 300px;
|
|
6
|
+
min-width: 200px;
|
|
7
|
+
border-left: 1px solid #f9fafb;
|
|
8
|
+
.red {
|
|
9
|
+
color: #FF584C !important;
|
|
10
|
+
}
|
|
11
|
+
.tui-manage-title {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
padding: 24px 20px;
|
|
15
|
+
span {
|
|
16
|
+
margin-left: 10px;
|
|
17
|
+
font-weight: 700;
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
line-height: 17px;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
.tui-manage-container {
|
|
23
|
+
.tui-manage-info {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: center;
|
|
27
|
+
.info-avatar {
|
|
28
|
+
margin-top: 40px;
|
|
29
|
+
margin-bottom: 20px;
|
|
30
|
+
}
|
|
31
|
+
.info-name {
|
|
32
|
+
text-align: center;
|
|
33
|
+
font-weight: 700;
|
|
34
|
+
font-size: 24px;
|
|
35
|
+
line-height: 29px;
|
|
36
|
+
margin-bottom: 10px;
|
|
37
|
+
}
|
|
38
|
+
.info-id {
|
|
39
|
+
font-weight: 400;
|
|
40
|
+
font-size: 12px;
|
|
41
|
+
line-height: 14px;
|
|
42
|
+
color: #666666;
|
|
43
|
+
margin-bottom: 30px;
|
|
44
|
+
text-align: center;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
.tui-manage-handle {
|
|
48
|
+
.manage-handle-box {
|
|
49
|
+
&:nth-child(2) {
|
|
50
|
+
margin-top: 10px;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
}
|
|
53
|
+
display: flex;
|
|
54
|
+
background: rgba(249, 249, 249, 0.94);
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: space-between;
|
|
57
|
+
padding: 10px;
|
|
58
|
+
box-sizing: border-box;
|
|
59
|
+
.manage-handle-title {
|
|
60
|
+
font-size: 16px;
|
|
61
|
+
line-height: 22px;
|
|
62
|
+
color: rgba(0, 0, 0, 0.6);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import type { MessageContextProps } from './MessageText';
|
|
3
|
+
|
|
4
|
+
function MessageAudioWithContext <T extends MessageContextProps>(
|
|
5
|
+
props: PropsWithChildren<T>,
|
|
6
|
+
):React.ReactElement {
|
|
7
|
+
const {
|
|
8
|
+
context,
|
|
9
|
+
message,
|
|
10
|
+
children,
|
|
11
|
+
} = props;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className="message-audio">
|
|
15
|
+
<audio muted src={context.url} />
|
|
16
|
+
{children}
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const MemoizedMessageAudio = React.memo(MessageAudioWithContext) as
|
|
22
|
+
typeof MessageAudioWithContext;
|
|
23
|
+
|
|
24
|
+
export function MessageAudio(props:MessageContextProps):React.ReactElement {
|
|
25
|
+
return (
|
|
26
|
+
<MemoizedMessageAudio {...props} />
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
PropsWithChildren,
|
|
3
|
+
ReactNode,
|
|
4
|
+
useState,
|
|
5
|
+
} from 'react';
|
|
6
|
+
import TIM, { Message } from 'tim-js-sdk';
|
|
7
|
+
import { MESSAGE_STATUS } from '../../constants';
|
|
8
|
+
import { Icon, IconTypes } from '../Icon';
|
|
9
|
+
import { useMessageReply } from './hooks/useMessageReply';
|
|
10
|
+
|
|
11
|
+
export interface MessageBubbleProps {
|
|
12
|
+
message?: Message,
|
|
13
|
+
className?: string,
|
|
14
|
+
children?: ReactNode,
|
|
15
|
+
Context?: React.ComponentType<any>,
|
|
16
|
+
Plugins?: React.ComponentType<any>,
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function MessageBubbleWithContext <T extends MessageBubbleProps>(
|
|
20
|
+
props: PropsWithChildren<T>,
|
|
21
|
+
):React.ReactElement {
|
|
22
|
+
const {
|
|
23
|
+
message,
|
|
24
|
+
children,
|
|
25
|
+
Context,
|
|
26
|
+
Plugins,
|
|
27
|
+
} = props;
|
|
28
|
+
|
|
29
|
+
const [PluginsShow, setPluginsShow] = useState(false);
|
|
30
|
+
|
|
31
|
+
const {
|
|
32
|
+
messageReply,
|
|
33
|
+
replyMessage,
|
|
34
|
+
sender,
|
|
35
|
+
} = useMessageReply({ message });
|
|
36
|
+
|
|
37
|
+
const handleLoading = () => !!((
|
|
38
|
+
message?.type === TIM.TYPES.MSG_IMAGE
|
|
39
|
+
|| message?.type === TIM.TYPES.MSG_VIDEO
|
|
40
|
+
|| message?.type === TIM.TYPES.MSG_FILE
|
|
41
|
+
) && message?.status === MESSAGE_STATUS.UNSEND);
|
|
42
|
+
|
|
43
|
+
const handleMouseEnter = () => {
|
|
44
|
+
setPluginsShow(true);
|
|
45
|
+
};
|
|
46
|
+
const handleMouseLeave = () => {
|
|
47
|
+
setPluginsShow(false);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<div className="meesage-bubble">
|
|
52
|
+
<div
|
|
53
|
+
className={`meesage-bubble-context ${message?.flow}`}
|
|
54
|
+
onMouseEnter={handleMouseEnter}
|
|
55
|
+
onMouseLeave={handleMouseLeave}
|
|
56
|
+
>
|
|
57
|
+
<div
|
|
58
|
+
className={
|
|
59
|
+
`message-context
|
|
60
|
+
${messageReply ? `meesage-bubble-reply meesage-bubble-reply-${message?.flow}` : ''}
|
|
61
|
+
${handleLoading() ? 'loading' : ''}`
|
|
62
|
+
}
|
|
63
|
+
>
|
|
64
|
+
{
|
|
65
|
+
messageReply && (
|
|
66
|
+
<main className="meesage-bubble-reply-main">
|
|
67
|
+
<header className="title">{sender}</header>
|
|
68
|
+
{Context && <Context message={replyMessage} />}
|
|
69
|
+
</main>
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
{children}
|
|
73
|
+
</div>
|
|
74
|
+
<div className="message-plugin">
|
|
75
|
+
{PluginsShow && Plugins && <Plugins />}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div className="message-bubble-status icon">
|
|
79
|
+
{
|
|
80
|
+
message?.status === MESSAGE_STATUS.FAIL
|
|
81
|
+
&& <i className="icon-fail" />
|
|
82
|
+
}
|
|
83
|
+
{
|
|
84
|
+
message?.status === MESSAGE_STATUS.UNSEND
|
|
85
|
+
&& <Icon width={10} height={10} type={IconTypes.PROGRESS} />
|
|
86
|
+
}
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const MemoizedMessageBubble = React.memo(MessageBubbleWithContext) as
|
|
93
|
+
typeof MessageBubbleWithContext;
|
|
94
|
+
|
|
95
|
+
export function MessageBubble(props:MessageBubbleProps):React.ReactElement {
|
|
96
|
+
return (
|
|
97
|
+
<MemoizedMessageBubble {...props} />
|
|
98
|
+
);
|
|
99
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import TIM, { Message } from 'tim-js-sdk';
|
|
3
|
+
|
|
4
|
+
import { MessageAudio } from './MessageAudio';
|
|
5
|
+
import { MessageCustom } from './MessageCustom';
|
|
6
|
+
import { MessageFace } from './MessageFace';
|
|
7
|
+
import { MessageFile } from './MessageFile';
|
|
8
|
+
import { MessageImage } from './MessageImage';
|
|
9
|
+
import { MessageLocation } from './MessageLocation';
|
|
10
|
+
import { MessageMerger } from './MessageMerger';
|
|
11
|
+
import { MessageText } from './MessageText';
|
|
12
|
+
import { MessageVideo } from './MessageVideo';
|
|
13
|
+
|
|
14
|
+
import { useMessageContextHandler } from './hooks';
|
|
15
|
+
import { MessageStatus } from './MessageStatus';
|
|
16
|
+
import { useTUIMessageContext } from '../../context';
|
|
17
|
+
|
|
18
|
+
const components = {
|
|
19
|
+
[TIM.TYPES.MSG_TEXT]: MessageText,
|
|
20
|
+
[TIM.TYPES.MSG_FACE]: MessageFace,
|
|
21
|
+
[TIM.TYPES.MSG_IMAGE]: MessageImage,
|
|
22
|
+
[TIM.TYPES.MSG_AUDIO]: MessageAudio,
|
|
23
|
+
[TIM.TYPES.MSG_VIDEO]: MessageVideo,
|
|
24
|
+
[TIM.TYPES.MSG_FILE]: MessageFile,
|
|
25
|
+
[TIM.TYPES.MSG_CUSTOM]: MessageCustom,
|
|
26
|
+
[TIM.TYPES.MSG_MERGER]: MessageMerger,
|
|
27
|
+
[TIM.TYPES.MSG_LOCATION]: MessageLocation,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export interface MessageContextProps {
|
|
31
|
+
message?: Message,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function MessageContextWithContext <T extends MessageContextProps>(
|
|
35
|
+
props: PropsWithChildren<T>,
|
|
36
|
+
):React.ReactElement {
|
|
37
|
+
const {
|
|
38
|
+
message,
|
|
39
|
+
} = props;
|
|
40
|
+
|
|
41
|
+
const { context } = useMessageContextHandler({ message });
|
|
42
|
+
const {
|
|
43
|
+
CustemElement,
|
|
44
|
+
TextElement,
|
|
45
|
+
FaceElement,
|
|
46
|
+
ImageElement,
|
|
47
|
+
AudioElement,
|
|
48
|
+
VideoElement,
|
|
49
|
+
FileElement,
|
|
50
|
+
MergerElement,
|
|
51
|
+
LocationElement,
|
|
52
|
+
} = useTUIMessageContext('MessageCustom');
|
|
53
|
+
|
|
54
|
+
const CustemComponents = {
|
|
55
|
+
[TIM.TYPES.MSG_TEXT]: TextElement,
|
|
56
|
+
[TIM.TYPES.MSG_FACE]: FaceElement,
|
|
57
|
+
[TIM.TYPES.MSG_IMAGE]: ImageElement,
|
|
58
|
+
[TIM.TYPES.MSG_AUDIO]: AudioElement,
|
|
59
|
+
[TIM.TYPES.MSG_VIDEO]: VideoElement,
|
|
60
|
+
[TIM.TYPES.MSG_FILE]: FileElement,
|
|
61
|
+
[TIM.TYPES.MSG_CUSTOM]: CustemElement,
|
|
62
|
+
[TIM.TYPES.MSG_MERGER]: MergerElement,
|
|
63
|
+
[TIM.TYPES.MSG_LOCATION]: LocationElement,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const Elements = CustemComponents[message?.type] || components[message?.type];
|
|
67
|
+
|
|
68
|
+
return Elements
|
|
69
|
+
&& <Elements context={context} message={message}><MessageStatus message={message} /></Elements>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const MemoizedMessageContext = React.memo(MessageContextWithContext) as
|
|
73
|
+
typeof MessageContextWithContext;
|
|
74
|
+
|
|
75
|
+
export function MessageContext(props:MessageContextProps):React.ReactElement {
|
|
76
|
+
return (
|
|
77
|
+
<MemoizedMessageContext
|
|
78
|
+
{...props}
|
|
79
|
+
/>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { JSONStringToParse } from '../untils';
|
|
3
|
+
import type { MessageContextProps } from './MessageText';
|
|
4
|
+
|
|
5
|
+
function MessageCustomWithContext <T extends MessageContextProps>(
|
|
6
|
+
props: PropsWithChildren<T>,
|
|
7
|
+
):React.ReactElement {
|
|
8
|
+
const {
|
|
9
|
+
context,
|
|
10
|
+
message,
|
|
11
|
+
children,
|
|
12
|
+
} = props;
|
|
13
|
+
|
|
14
|
+
const handleContext = (data) => {
|
|
15
|
+
if (data.data === 'Hyperlink') {
|
|
16
|
+
const extension = JSONStringToParse(data?.extension);
|
|
17
|
+
return extension?.item.map((item) => <a target="_blank" key={item.value} href={item.value} rel="noreferrer">{item.value}</a>);
|
|
18
|
+
}
|
|
19
|
+
if (data.data === 'group_create') {
|
|
20
|
+
return `${message?.nick || message?.from} Create a group`;
|
|
21
|
+
}
|
|
22
|
+
return data.extension;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div className={`bubble message-custom bubble-${message.flow}`}>
|
|
27
|
+
{handleContext(context?.custom)}
|
|
28
|
+
{children}
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const MemoizedMessageCustom = React.memo(MessageCustomWithContext) as
|
|
34
|
+
typeof MessageCustomWithContext;
|
|
35
|
+
|
|
36
|
+
export function MessageCustom(props:MessageContextProps):React.ReactElement {
|
|
37
|
+
return (
|
|
38
|
+
<MemoizedMessageCustom {...props} />
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import type { MessageContextProps } from './MessageText';
|
|
3
|
+
|
|
4
|
+
function MessageFaceWithContext <T extends MessageContextProps>(
|
|
5
|
+
props: PropsWithChildren<T>,
|
|
6
|
+
):React.ReactElement {
|
|
7
|
+
const {
|
|
8
|
+
context,
|
|
9
|
+
message,
|
|
10
|
+
children,
|
|
11
|
+
} = props;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className={`bubble message-face bubble-${message.flow}`}>
|
|
15
|
+
<img className="img" src={context.url} alt="" />
|
|
16
|
+
{children}
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const MemoizedMessageFace = React.memo(MessageFaceWithContext) as
|
|
22
|
+
typeof MessageFaceWithContext;
|
|
23
|
+
|
|
24
|
+
export function MessageFace(props:MessageContextProps):React.ReactElement {
|
|
25
|
+
return (
|
|
26
|
+
<MemoizedMessageFace {...props} />
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { Icon, IconTypes } from '../Icon';
|
|
3
|
+
import type { MessageContextProps } from './MessageText';
|
|
4
|
+
|
|
5
|
+
function MessageFileWithContext <T extends MessageContextProps>(
|
|
6
|
+
props: PropsWithChildren<T>,
|
|
7
|
+
):React.ReactElement {
|
|
8
|
+
const {
|
|
9
|
+
context,
|
|
10
|
+
message,
|
|
11
|
+
children,
|
|
12
|
+
} = props;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className={`bubble message-file bubble-${message.flow}`}>
|
|
16
|
+
<main className="message-file-main">
|
|
17
|
+
<Icon className="icon" width={15} height={20} type={IconTypes.FILE} />
|
|
18
|
+
<label htmlFor="message-file">{ context.name }</label>
|
|
19
|
+
</main>
|
|
20
|
+
<div className="message-file-footer">
|
|
21
|
+
<span className="message-file-size">{ context.size }</span>
|
|
22
|
+
{children}
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const MemoizedMessageFile = React.memo(MessageFileWithContext) as
|
|
29
|
+
typeof MessageFileWithContext;
|
|
30
|
+
|
|
31
|
+
export function MessageFile(props:MessageContextProps):React.ReactElement {
|
|
32
|
+
return (
|
|
33
|
+
<MemoizedMessageFile {...props} />
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { PropsWithChildren, useState } from 'react';
|
|
2
|
+
import { Model } from '../Model';
|
|
3
|
+
import type { MessageContextProps } from './MessageText';
|
|
4
|
+
|
|
5
|
+
function MessageImageWithContext <T extends MessageContextProps>(
|
|
6
|
+
props: PropsWithChildren<T>,
|
|
7
|
+
):React.ReactElement {
|
|
8
|
+
const {
|
|
9
|
+
context,
|
|
10
|
+
message,
|
|
11
|
+
children,
|
|
12
|
+
} = props;
|
|
13
|
+
|
|
14
|
+
const [show, setShow] = useState(false);
|
|
15
|
+
|
|
16
|
+
const bigImageInfo = message?.payload?.imageInfoArray?.filter((item) => item.type === 0);
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div className="message-image">
|
|
20
|
+
<div role="button" tabIndex={0} onClick={() => { setShow(true); }}>
|
|
21
|
+
<img className={`img bubble-${message.flow}`} src={context.url} alt="" />
|
|
22
|
+
</div>
|
|
23
|
+
{children}
|
|
24
|
+
{
|
|
25
|
+
show && (
|
|
26
|
+
<Model onClick={() => { setShow(false); }}>
|
|
27
|
+
<img className="big-image" src={bigImageInfo[0]?.url} alt="" />
|
|
28
|
+
</Model>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const MemoizedMessageImage = React.memo(MessageImageWithContext) as
|
|
36
|
+
typeof MessageImageWithContext;
|
|
37
|
+
|
|
38
|
+
export function MessageImage(props:MessageContextProps):React.ReactElement {
|
|
39
|
+
return (
|
|
40
|
+
<MemoizedMessageImage {...props} />
|
|
41
|
+
);
|
|
42
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import type { MessageContextProps } from './MessageText';
|
|
3
|
+
|
|
4
|
+
function MessageLocationWithContext <T extends MessageContextProps>(
|
|
5
|
+
props: PropsWithChildren<T>,
|
|
6
|
+
):React.ReactElement {
|
|
7
|
+
const {
|
|
8
|
+
context,
|
|
9
|
+
message,
|
|
10
|
+
children,
|
|
11
|
+
} = props;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<a className="bubble message-location" href={context.href} target="_blank" title="点击查看详情" rel="noreferrer">
|
|
15
|
+
<span>{context.description}</span>
|
|
16
|
+
<img src={context.url} alt="" />
|
|
17
|
+
{children}
|
|
18
|
+
</a>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const MemoizedMessageLocation = React.memo(MessageLocationWithContext) as
|
|
23
|
+
typeof MessageLocationWithContext;
|
|
24
|
+
|
|
25
|
+
export function MessageLocation(props:MessageContextProps):React.ReactElement {
|
|
26
|
+
return (
|
|
27
|
+
<MemoizedMessageLocation {...props} />
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import type { MessageContextProps } from './MessageText';
|
|
3
|
+
|
|
4
|
+
function MessageMergerWithContext <T extends MessageContextProps>(
|
|
5
|
+
props: PropsWithChildren<T>,
|
|
6
|
+
):React.ReactElement {
|
|
7
|
+
const {
|
|
8
|
+
context,
|
|
9
|
+
message,
|
|
10
|
+
children,
|
|
11
|
+
} = props;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className={`bubble message-merger bubble-${message.flow}`}>
|
|
15
|
+
<h3>{context.title}</h3>
|
|
16
|
+
<ul className="message-merger-list">
|
|
17
|
+
{
|
|
18
|
+
context?.abstractList.length > 0
|
|
19
|
+
&& context.abstractList.map((item:string, index:number) => {
|
|
20
|
+
const key = item + index;
|
|
21
|
+
return (<li className="message-merger-item" key={key}>{item}</li>);
|
|
22
|
+
})
|
|
23
|
+
}
|
|
24
|
+
</ul>
|
|
25
|
+
{children}
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const MemoizedMessageMerger = React.memo(MessageMergerWithContext) as
|
|
31
|
+
typeof MessageMergerWithContext;
|
|
32
|
+
|
|
33
|
+
export function MessageMerger(props:MessageContextProps):React.ReactElement {
|
|
34
|
+
return (
|
|
35
|
+
<MemoizedMessageMerger {...props} />
|
|
36
|
+
);
|
|
37
|
+
}
|