@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,29 @@
|
|
|
1
|
+
export { ChatProps, TUIKit } from './components/TUIKit/TUIKit.js';
|
|
2
|
+
export { UseChatParams, useTUIKit } from './components/TUIKit/hooks/useTUIKit.js';
|
|
3
|
+
export { useCreateTUIKitContext } from './components/TUIKit/hooks/useCreateTUIKitContext.js';
|
|
4
|
+
export { TUIConversation, UnMemoizedTUIConversation } from './components/TUIConversation/TUIConversation.js';
|
|
5
|
+
export { TUIConversationList, UnMemoTUIConversationList } from './components/TUIConversationList/TUIConversationList.js';
|
|
6
|
+
export { TUIChat } from './components/TUIChat/TUIChat.js';
|
|
7
|
+
export { TUIKitContext, TUIKitContextValue, TUIKitProvider, useTUIKitContext } from './context/TUIKitContext.js';
|
|
8
|
+
export { TUIChatStateContext, TUIChatStateContextProvider, TUIChatStateContextValue, useTUIChatStateContext } from './context/TUIChatStateContext.js';
|
|
9
|
+
export { TUIChatActionContext, TUIChatActionContextValue, TUIChatActionProvider, useTUIChatActionContext } from './context/TUIChatActionContext.js';
|
|
10
|
+
export { TUIMessageContext, TUIMessageContextProvider, TUIMessageContextValue, useTUIMessageContext } from './context/TUIMessageContext.js';
|
|
11
|
+
export { ComponentContext, ComponentContextValue, ComponentProvider, UnknowPorps, useComponentContext } from './context/ComponentContext.js';
|
|
12
|
+
export { TUIMessageInputContext, TUIMessageInputContextProvider, TUIMessageInputContextValue, useTUIMessageInputContext } from './context/TUIMessageInputContext.js';
|
|
13
|
+
export { ConversationPreview, ConversationPreviewProps, ConversationPreviewUIComponentProps } from './components/ConversationPreview/ConversationPreview.js';
|
|
14
|
+
export { ConversationPreviewContent, unMemoConversationPreviewContent } from './components/ConversationPreview/ConversationPreviewContent.js';
|
|
15
|
+
export { TUIChatHeader } from './components/TUIChatHeader/TUIChatHeader.js';
|
|
16
|
+
export { TUIChatHeaderDefault, TUIChatHeaderDefaultProps } from './components/TUIChatHeader/TUIChatHeaderDefault.js';
|
|
17
|
+
export { TUIMessageList } from './components/TUIMessageList/TUIMessageList.js';
|
|
18
|
+
export { TUIMessageInput, TUIMessageInputProps } from './components/TUIMessageInput/TUIMessageInput.js';
|
|
19
|
+
export { TUIMessageInputDefault } from './components/TUIMessageInput/TUIMessageInputDefault.js';
|
|
20
|
+
export { InputPluginsDefalut } from './components/TUIMessageInput/InputPluginsDefalut.js';
|
|
21
|
+
export { TUIProfile } from './components/TUIProfile/TUIProfile.js';
|
|
22
|
+
export { TUIProfileDefault, TUIProfileDefaultProps } from './components/TUIProfile/TUIProfileDefault.js';
|
|
23
|
+
export { Avatar, AvatarProps } from './components/Avatar/Avatar.js';
|
|
24
|
+
export { defaultGroupAvatarAVChatRoom, defaultGroupAvatarMeeting, defaultGroupAvatarPublic, defaultGroupAvatarWork, defaultUserAvatar } from './components/Avatar/default.js';
|
|
25
|
+
export { ConversationSearchInput } from './components/ConversationSearch/ConversationSearchInput.js';
|
|
26
|
+
export { ConversationSearchResult, ConversationSearchResultProps } from './components/ConversationSearch/ConversationSearchResult.js';
|
|
27
|
+
export { TUIManage } from './components/TUIManage/TUIManage.js';
|
|
28
|
+
export { CreateGroupConversationParams, useConversation } from './hooks/useConversation.js';
|
|
29
|
+
export { useProfile } from './hooks/useProfile.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{TUIKit}from"./components/TUIKit/TUIKit.js";export{useTUIKit}from"./components/TUIKit/hooks/useTUIKit.js";export{useCreateTUIKitContext}from"./components/TUIKit/hooks/useCreateTUIKitContext.js";export{TUIConversation,UnMemoizedTUIConversation}from"./components/TUIConversation/TUIConversation.js";export{TUIConversationList,UnMemoTUIConversationList}from"./components/TUIConversationList/TUIConversationList.js";import"tslib";import"react";import"tim-js-sdk";export{TUIChat}from"./components/TUIChat/TUIChat.js";export{ConversationPreview}from"./components/ConversationPreview/ConversationPreview.js";export{ConversationPreviewContent,unMemoConversationPreviewContent}from"./components/ConversationPreview/ConversationPreviewContent.js";export{TUIChatHeader}from"./components/TUIChatHeader/TUIChatHeader.js";export{TUIChatHeaderDefault}from"./components/TUIChatHeader/TUIChatHeaderDefault.js";export{TUIMessageList}from"./components/TUIMessageList/TUIMessageList.js";export{TUIMessageInput}from"./components/TUIMessageInput/TUIMessageInput.js";export{TUIMessageInputDefault}from"./components/TUIMessageInput/TUIMessageInputDefault.js";export{InputPluginsDefalut}from"./components/TUIMessageInput/InputPluginsDefalut.js";export{TUIProfile}from"./components/TUIProfile/TUIProfile.js";export{TUIProfileDefault}from"./components/TUIProfile/TUIProfileDefault.js";export{Avatar}from"./components/Avatar/Avatar.js";export{defaultGroupAvatarAVChatRoom,defaultGroupAvatarMeeting,defaultGroupAvatarPublic,defaultGroupAvatarWork,defaultUserAvatar}from"./components/Avatar/default.js";export{ConversationSearchInput}from"./components/ConversationSearch/ConversationSearchInput.js";export{ConversationSearchResult}from"./components/ConversationSearch/ConversationSearchResult.js";export{TUIManage}from"./components/TUIManage/TUIManage.js";export{TUIKitContext,TUIKitProvider,useTUIKitContext}from"./context/TUIKitContext.js";export{TUIChatStateContext,TUIChatStateContextProvider,useTUIChatStateContext}from"./context/TUIChatStateContext.js";export{TUIChatActionContext,TUIChatActionProvider,useTUIChatActionContext}from"./context/TUIChatActionContext.js";export{TUIMessageContext,TUIMessageContextProvider,useTUIMessageContext}from"./context/TUIMessageContext.js";export{ComponentContext,ComponentProvider,useComponentContext}from"./context/ComponentContext.js";export{TUIMessageInputContext,TUIMessageInputContextProvider,useTUIMessageInputContext}from"./context/TUIMessageInputContext.js";export{useConversation}from"./hooks/useConversation.js";export{useProfile}from"./hooks/useProfile.js";
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tencentcloud/chat-uikit-react",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"main": "dist/cjs/index.js",
|
|
5
|
+
"module": "dist/esm/index.js",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"react",
|
|
9
|
+
"chat",
|
|
10
|
+
"im",
|
|
11
|
+
"messaging",
|
|
12
|
+
"conversation",
|
|
13
|
+
"typescript"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "yarn clean && yarn run rollup -c",
|
|
17
|
+
"start": "yarn run rollup -c -w",
|
|
18
|
+
"clean": "rimraf ./dist"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/TencentCloud/chat-uikit-react.git"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@babel/core": "^7.19.1",
|
|
26
|
+
"@babel/preset-env": "^7.19.1",
|
|
27
|
+
"@babel/preset-react": "^7.18.6",
|
|
28
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
29
|
+
"@rollup/plugin-babel": "^5.3.1",
|
|
30
|
+
"@rollup/plugin-commonjs": "^22.0.2",
|
|
31
|
+
"@rollup/plugin-node-resolve": "^14.1.0",
|
|
32
|
+
"@rollup/plugin-typescript": "^8.5.0",
|
|
33
|
+
"@rollup/plugin-url": "^7.0.0",
|
|
34
|
+
"@types/react": "^18.0.20",
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "^5.36.2",
|
|
36
|
+
"@typescript-eslint/parser": "^5.36.2",
|
|
37
|
+
"autoprefixer": "^10.4.11",
|
|
38
|
+
"eslint": "^8.23.0",
|
|
39
|
+
"eslint-config-airbnb": "^19.0.4",
|
|
40
|
+
"eslint-import-resolver-typescript": "^3.5.1",
|
|
41
|
+
"eslint-plugin-import": "^2.26.0",
|
|
42
|
+
"eslint-plugin-jsx-a11y": "^6.6.1",
|
|
43
|
+
"eslint-plugin-react": "^7.31.8",
|
|
44
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
45
|
+
"postcss": "^8.4.16",
|
|
46
|
+
"react": "^18.2.0",
|
|
47
|
+
"rimraf": "^3.0.2",
|
|
48
|
+
"rollup": "^2.79.0",
|
|
49
|
+
"rollup-plugin-dts": "^4.2.2",
|
|
50
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
51
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
52
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
53
|
+
"sass": "^1.54.9",
|
|
54
|
+
"tslib": "^2.4.1",
|
|
55
|
+
"typescript": "^4.8.3"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"date-fns": "^2.29.3",
|
|
59
|
+
"react-date-picker": "^9.0.0",
|
|
60
|
+
"tim-js-sdk": "^2.24.2",
|
|
61
|
+
"tim-upload-plugin": "^1.0.5"
|
|
62
|
+
},
|
|
63
|
+
"peerDependencies": {
|
|
64
|
+
"date-fns": "^2.29.3",
|
|
65
|
+
"react": "^18.2.0",
|
|
66
|
+
"tim-js-sdk": "^2.24.2",
|
|
67
|
+
"tim-upload-plugin": "^1.0.5",
|
|
68
|
+
"tslib": "^2.4.1"
|
|
69
|
+
}
|
|
70
|
+
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { babel } from '@rollup/plugin-babel';
|
|
2
|
+
import resolve from '@rollup/plugin-node-resolve';
|
|
3
|
+
import typescript from '@rollup/plugin-typescript';
|
|
4
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
5
|
+
import dts from 'rollup-plugin-dts';
|
|
6
|
+
import { terser } from 'rollup-plugin-terser';
|
|
7
|
+
import postcss from 'rollup-plugin-postcss';
|
|
8
|
+
import autoprefixer from 'autoprefixer';
|
|
9
|
+
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
|
|
10
|
+
import url from '@rollup/plugin-url';
|
|
11
|
+
|
|
12
|
+
const baseConfig = {
|
|
13
|
+
input: [
|
|
14
|
+
'./src/index.ts',
|
|
15
|
+
],
|
|
16
|
+
output: [
|
|
17
|
+
{
|
|
18
|
+
preserveModules: true,
|
|
19
|
+
preserveModulesRoot: './src',
|
|
20
|
+
dir: './dist/esm/',
|
|
21
|
+
format: 'esm',
|
|
22
|
+
// sourcemap: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
preserveModules: true,
|
|
26
|
+
preserveModulesRoot: './src',
|
|
27
|
+
dir: './dist/cjs/',
|
|
28
|
+
format: 'cjs',
|
|
29
|
+
// sourcemap: true,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
export default [
|
|
34
|
+
{
|
|
35
|
+
...baseConfig,
|
|
36
|
+
plugins: [
|
|
37
|
+
url(),
|
|
38
|
+
postcss({
|
|
39
|
+
extract: true,
|
|
40
|
+
minimize: true,
|
|
41
|
+
plugins: [
|
|
42
|
+
autoprefixer(),
|
|
43
|
+
],
|
|
44
|
+
}),
|
|
45
|
+
peerDepsExternal(),
|
|
46
|
+
resolve(),
|
|
47
|
+
commonjs(),
|
|
48
|
+
babel({
|
|
49
|
+
extensions: ['.js', '.jsx', '.es6', '.es', '.mjs', 'ts', 'tsx'],
|
|
50
|
+
}),
|
|
51
|
+
typescript(),
|
|
52
|
+
terser(),
|
|
53
|
+
],
|
|
54
|
+
external: ['react', 'date-fns', 'tslib'],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
...baseConfig,
|
|
58
|
+
plugins: [
|
|
59
|
+
postcss({
|
|
60
|
+
extract: true,
|
|
61
|
+
plugins: [],
|
|
62
|
+
}),
|
|
63
|
+
dts(),
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default TIM;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import React, { useState, useEffect, useRef } from 'react';
|
|
2
|
+
import { Icon, IconTypes } from '../Icon';
|
|
3
|
+
import './styles/index.scss';
|
|
4
|
+
|
|
5
|
+
export interface AvatarProps {
|
|
6
|
+
image?: string | null,
|
|
7
|
+
/** click event handler */
|
|
8
|
+
onClick?: (event: React.BaseSyntheticEvent) => void,
|
|
9
|
+
/** mouseOver event handler */
|
|
10
|
+
onMouseOver?: (event: React.BaseSyntheticEvent) => void,
|
|
11
|
+
/** Size in pixels
|
|
12
|
+
* @default 32px
|
|
13
|
+
*/
|
|
14
|
+
size?: number,
|
|
15
|
+
/** Shape of the avatar - circle, rounded or square
|
|
16
|
+
* @default circle
|
|
17
|
+
*/
|
|
18
|
+
shape?: 'circle' | 'rounded' | 'square';
|
|
19
|
+
update?: (url:string) => void,
|
|
20
|
+
list?: Array<string>,
|
|
21
|
+
}
|
|
22
|
+
export function Avatar<T extends AvatarProps>(props:T):React.ReactElement {
|
|
23
|
+
const {
|
|
24
|
+
image,
|
|
25
|
+
size = 32,
|
|
26
|
+
shape = 'circle',
|
|
27
|
+
update,
|
|
28
|
+
onClick,
|
|
29
|
+
list = [],
|
|
30
|
+
} = props;
|
|
31
|
+
|
|
32
|
+
const [error, setError] = useState(false);
|
|
33
|
+
const [loaded, setLoaded] = useState(false);
|
|
34
|
+
const [isEdit, setIsEdit] = useState(false);
|
|
35
|
+
const [avatarListWidth, setAvatarListWidth] = useState(200);
|
|
36
|
+
|
|
37
|
+
const avatarRef = useRef<HTMLDivElement>();
|
|
38
|
+
const avatarListRef = useRef<HTMLUListElement>();
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
setError(false);
|
|
42
|
+
setLoaded(false);
|
|
43
|
+
}, [image]);
|
|
44
|
+
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (isEdit && update) {
|
|
47
|
+
window.addEventListener('mouseup', toggle, false);
|
|
48
|
+
avatarRef?.current?.addEventListener('mouseup', stopImmediatePropagation);
|
|
49
|
+
setAvatarListWidth(avatarListRef?.current?.clientWidth);
|
|
50
|
+
} else {
|
|
51
|
+
window.removeEventListener('mouseup', toggle, false);
|
|
52
|
+
avatarRef?.current?.removeEventListener('mouseup', stopImmediatePropagation);
|
|
53
|
+
}
|
|
54
|
+
return () => {
|
|
55
|
+
window.removeEventListener('mouseup', toggle, false);
|
|
56
|
+
avatarRef?.current?.removeEventListener('mouseup', stopImmediatePropagation);
|
|
57
|
+
};
|
|
58
|
+
}, [isEdit]);
|
|
59
|
+
|
|
60
|
+
const stopImmediatePropagation = (e) => {
|
|
61
|
+
e.stopPropagation();
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const toggle = () => {
|
|
65
|
+
setIsEdit(!isEdit);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const handleUpdate = (value:string) => {
|
|
69
|
+
toggle();
|
|
70
|
+
update(value);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<div
|
|
75
|
+
className={`tui-kit-avatar ${shape}`}
|
|
76
|
+
style={{
|
|
77
|
+
flexBasis: `${size}px`,
|
|
78
|
+
height: `${size}px`,
|
|
79
|
+
objectFit: 'cover',
|
|
80
|
+
width: `${size}px`,
|
|
81
|
+
}}
|
|
82
|
+
ref={avatarRef}
|
|
83
|
+
role="button"
|
|
84
|
+
tabIndex={0}
|
|
85
|
+
onClick={onClick}
|
|
86
|
+
>
|
|
87
|
+
{image && !error ? (
|
|
88
|
+
<img
|
|
89
|
+
className={`avatar-image ${loaded ? 'avatar-image-loaded' : ''}`}
|
|
90
|
+
onError={() => setError(true)}
|
|
91
|
+
onLoad={() => setLoaded(true)}
|
|
92
|
+
alt={image}
|
|
93
|
+
src={image}
|
|
94
|
+
/>
|
|
95
|
+
) : (
|
|
96
|
+
<div
|
|
97
|
+
className={`tui-kit-avatar ${shape}`}
|
|
98
|
+
style={{
|
|
99
|
+
flexBasis: `${size}px`,
|
|
100
|
+
height: `${size}px`,
|
|
101
|
+
objectFit: 'cover',
|
|
102
|
+
width: `${size}px`,
|
|
103
|
+
backgroundColor: 'black',
|
|
104
|
+
borderRadius: `${shape === 'circle' ? '50%' : '4px'}`,
|
|
105
|
+
}}
|
|
106
|
+
/>
|
|
107
|
+
)}
|
|
108
|
+
{
|
|
109
|
+
update && (
|
|
110
|
+
<div className={`tui-kit-avatar-edit ${isEdit ? 'displayFlex' : ''}`} role="button" tabIndex={0} onClick={toggle}>
|
|
111
|
+
<Icon className="icon-camera" width={33} height={30} type={IconTypes.CAMERA} />
|
|
112
|
+
</div>
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
{
|
|
116
|
+
update && isEdit && (
|
|
117
|
+
<ul
|
|
118
|
+
className="tui-kit-avatar-list"
|
|
119
|
+
ref={avatarListRef}
|
|
120
|
+
style={{
|
|
121
|
+
left: `-${(avatarListWidth - size) / 2}px`,
|
|
122
|
+
}}
|
|
123
|
+
>
|
|
124
|
+
{
|
|
125
|
+
list.map((item:string, index:number) => {
|
|
126
|
+
const key = `${item}${index}`;
|
|
127
|
+
return (
|
|
128
|
+
<li
|
|
129
|
+
className="tui-kit-avatar-list-item"
|
|
130
|
+
role="menuitem"
|
|
131
|
+
key={key}
|
|
132
|
+
tabIndex={index}
|
|
133
|
+
onClick={() => { handleUpdate(item); }}
|
|
134
|
+
>
|
|
135
|
+
<img
|
|
136
|
+
className="avatar-image"
|
|
137
|
+
alt={item}
|
|
138
|
+
src={item}
|
|
139
|
+
/>
|
|
140
|
+
</li>
|
|
141
|
+
);
|
|
142
|
+
})
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
</ul>
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const defaultGroupAvatarWork = 'https://web.sdk.qcloud.com/im/demo/TUIkit/react-static/images/group_avatar_work.png';
|
|
2
|
+
export const defaultGroupAvatarPublic = 'https://web.sdk.qcloud.com/im/demo/TUIkit/react-static/images/group_avatar_public.png';
|
|
3
|
+
export const defaultGroupAvatarMeeting = 'https://web.sdk.qcloud.com/im/demo/TUIkit/react-static/images/group_avatar_meeting.png';
|
|
4
|
+
export const defaultGroupAvatarAVChatRoom = 'https://web.sdk.qcloud.com/im/demo/TUIkit/react-static/images/group_avatar_AVChatRoom.png';
|
|
5
|
+
export const defaultUserAvatar = 'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.tui-kit-avatar{
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
position: relative;
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
&.circle .avatar-image {
|
|
7
|
+
border-radius: 50%;
|
|
8
|
+
}
|
|
9
|
+
&.square .avatar-image {
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
}
|
|
12
|
+
img {
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 100%;
|
|
15
|
+
}
|
|
16
|
+
&:hover {
|
|
17
|
+
.tui-kit-avatar-edit {
|
|
18
|
+
display: flex;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
&-edit {
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
background: rgba(0, 0, 0, 0.33);
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
border-radius: 100%;
|
|
29
|
+
display: none;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
align-items: center;
|
|
32
|
+
}
|
|
33
|
+
&-list {
|
|
34
|
+
position: absolute;
|
|
35
|
+
z-index: 2;
|
|
36
|
+
top: 100%;
|
|
37
|
+
background: #FFFFFF;
|
|
38
|
+
border-radius: 5px;
|
|
39
|
+
box-shadow: 0 11px 20px 0 rgb(0 0 0 / 30%);
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-wrap: wrap;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
width: 100%;
|
|
44
|
+
min-width: 200px;
|
|
45
|
+
max-width: 400px;
|
|
46
|
+
padding: 10px;
|
|
47
|
+
&-item {
|
|
48
|
+
padding: 10px;
|
|
49
|
+
img {
|
|
50
|
+
width: 40px;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Icon, IconTypes } from '../Icon';
|
|
3
|
+
|
|
4
|
+
import './styles/index.scss';
|
|
5
|
+
|
|
6
|
+
interface onChangeParams {
|
|
7
|
+
checked?: boolean,
|
|
8
|
+
value?: any,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface SelectProps {
|
|
12
|
+
checked?: boolean,
|
|
13
|
+
className?: string,
|
|
14
|
+
onChange?: (data?: onChangeParams) => void,
|
|
15
|
+
value?: any,
|
|
16
|
+
id?: string,
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function Checkbox<
|
|
20
|
+
T extends SelectProps
|
|
21
|
+
>(props:React.PropsWithChildren<T>) {
|
|
22
|
+
const {
|
|
23
|
+
checked: propsChecked = false,
|
|
24
|
+
className,
|
|
25
|
+
onChange,
|
|
26
|
+
value = '',
|
|
27
|
+
id,
|
|
28
|
+
} = props;
|
|
29
|
+
|
|
30
|
+
const [checked, setChecked] = useState(propsChecked);
|
|
31
|
+
|
|
32
|
+
const handleChange = (e) => {
|
|
33
|
+
setChecked(e.target.checked);
|
|
34
|
+
if (onChange) {
|
|
35
|
+
onChange({
|
|
36
|
+
value,
|
|
37
|
+
checked: e.target.checked,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<div
|
|
44
|
+
className={`${className} checkbox`}
|
|
45
|
+
role="menuitem"
|
|
46
|
+
tabIndex={0}
|
|
47
|
+
>
|
|
48
|
+
<input id={id} className="checkbox-input" onChange={handleChange} type="checkbox" checked={checked} value={value} />
|
|
49
|
+
{ !checked && <i className="checkbox-default" />}
|
|
50
|
+
{ checked && <Icon type={IconTypes.RIGHT} width={14} height={14} />}
|
|
51
|
+
</div>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.checkbox {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
align-items: center;
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
position: relative;
|
|
7
|
+
&-default {
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
width: 14px;
|
|
10
|
+
height: 14px;
|
|
11
|
+
border-radius: 14px;
|
|
12
|
+
border: 1px solid #DDDDDD;
|
|
13
|
+
}
|
|
14
|
+
&-input {
|
|
15
|
+
margin: 0;
|
|
16
|
+
padding: 0;
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0;
|
|
19
|
+
left: 0;
|
|
20
|
+
z-index: 1;
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
opacity: 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Conversation, Profile } from 'tim-js-sdk';
|
|
3
|
+
import { Input } from '../Input';
|
|
4
|
+
import './styles/ConversationCreatGroupDetail.scss';
|
|
5
|
+
import { Icon, IconTypes } from '../Icon';
|
|
6
|
+
import {
|
|
7
|
+
Avatar,
|
|
8
|
+
defaultGroupAvatarWork,
|
|
9
|
+
defaultGroupAvatarAVChatRoom,
|
|
10
|
+
defaultGroupAvatarMeeting,
|
|
11
|
+
defaultGroupAvatarPublic, defaultUserAvatar,
|
|
12
|
+
} from '../Avatar';
|
|
13
|
+
import { PageStateTypes } from './ConversationCreate';
|
|
14
|
+
import { ConversationGroupTypeInfo, GroupType, typeInfoList } from './ConversationGroupTypeInfo';
|
|
15
|
+
import { useTUIKitContext } from '../../context';
|
|
16
|
+
import { CreateGroupConversationParams } from '../../hooks';
|
|
17
|
+
|
|
18
|
+
export interface ConversationCreatGroupDetailProps {
|
|
19
|
+
profileList: Array<Profile>,
|
|
20
|
+
pageState: PageStateTypes,
|
|
21
|
+
setPageState: React.Dispatch<React.SetStateAction<PageStateTypes>>,
|
|
22
|
+
createConversation: (params: string | CreateGroupConversationParams) => Promise<Conversation>,
|
|
23
|
+
setConversationCreated: React.Dispatch<React.SetStateAction<boolean>>,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function ConversationCreatGroupDetail(props: ConversationCreatGroupDetailProps) {
|
|
27
|
+
const {
|
|
28
|
+
profileList, pageState, setPageState, createConversation, setConversationCreated,
|
|
29
|
+
} = props;
|
|
30
|
+
const { setActiveConversation, myProfile } = useTUIKitContext();
|
|
31
|
+
const temp = [...profileList];
|
|
32
|
+
temp.unshift(myProfile);
|
|
33
|
+
const name = temp.map((item) => item.nick || item.userID).toString();
|
|
34
|
+
const [groupName, setGroupName] = useState(
|
|
35
|
+
name.length >= 15 ? `${name.slice(0, 12)}...` : name,
|
|
36
|
+
);
|
|
37
|
+
const [groupID, setGroupID] = useState('');
|
|
38
|
+
const [groupType, setGroupType] = useState('Work');
|
|
39
|
+
const groupInfoChange = (e, type) => {
|
|
40
|
+
const { value } = e.target;
|
|
41
|
+
switch (type) {
|
|
42
|
+
case 'name':
|
|
43
|
+
setGroupName(value);
|
|
44
|
+
break;
|
|
45
|
+
case 'id':
|
|
46
|
+
setGroupID(value);
|
|
47
|
+
break;
|
|
48
|
+
case 'type':
|
|
49
|
+
setGroupType(value);
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const showGroupTypeInfo = () => {
|
|
55
|
+
setPageState(PageStateTypes.GROUP_TYPE);
|
|
56
|
+
};
|
|
57
|
+
const getDefaultAvatar = (type) => {
|
|
58
|
+
switch (type) {
|
|
59
|
+
case 'Work':
|
|
60
|
+
return defaultGroupAvatarWork;
|
|
61
|
+
case 'Public':
|
|
62
|
+
return defaultGroupAvatarPublic;
|
|
63
|
+
case 'Meeting':
|
|
64
|
+
return defaultGroupAvatarMeeting;
|
|
65
|
+
case 'AVChatRoom':
|
|
66
|
+
return defaultGroupAvatarAVChatRoom;
|
|
67
|
+
default:
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const getDes = () => typeInfoList.find((item) => item.type === groupType).des;
|
|
72
|
+
|
|
73
|
+
const next = async () => {
|
|
74
|
+
const avatar = getDefaultAvatar(groupType);
|
|
75
|
+
const conversation = await createConversation({
|
|
76
|
+
name: groupName, type: GroupType[groupType], groupID, avatar,
|
|
77
|
+
});
|
|
78
|
+
setActiveConversation(conversation);
|
|
79
|
+
setConversationCreated(false);
|
|
80
|
+
};
|
|
81
|
+
return pageState !== PageStateTypes.GROUP_TYPE ? (
|
|
82
|
+
<>
|
|
83
|
+
<div className="tui-conversation-create-group-detail">
|
|
84
|
+
<div className="create-group-box create-group-name">
|
|
85
|
+
<Input
|
|
86
|
+
maxLength={15}
|
|
87
|
+
value={groupName}
|
|
88
|
+
onChange={(e) => {
|
|
89
|
+
groupInfoChange(e, 'name');
|
|
90
|
+
}}
|
|
91
|
+
border="bottom"
|
|
92
|
+
customClassName="input-group-name"
|
|
93
|
+
clearable
|
|
94
|
+
prefix={<div className="input-group-title">Group Name</div>}
|
|
95
|
+
/>
|
|
96
|
+
</div>
|
|
97
|
+
<div className="create-group-box create-group-id">
|
|
98
|
+
<Input
|
|
99
|
+
border="bottom"
|
|
100
|
+
customClassName="input-group-text"
|
|
101
|
+
clearable
|
|
102
|
+
value={groupID}
|
|
103
|
+
onChange={(e) => {
|
|
104
|
+
groupInfoChange(e, 'id');
|
|
105
|
+
}}
|
|
106
|
+
prefix={<div className="input-group-title">Group ID</div>}
|
|
107
|
+
/>
|
|
108
|
+
</div>
|
|
109
|
+
<div className="create-group-box create-group-type">
|
|
110
|
+
<Input
|
|
111
|
+
disabled
|
|
112
|
+
border="bottom"
|
|
113
|
+
customClassName="input-group-text"
|
|
114
|
+
prefix={<div className="input-group-title">Group of type</div>}
|
|
115
|
+
suffix={(
|
|
116
|
+
<Icon
|
|
117
|
+
onClick={showGroupTypeInfo}
|
|
118
|
+
type={IconTypes.ARROW_RIGHT}
|
|
119
|
+
width={7}
|
|
120
|
+
height={12}
|
|
121
|
+
/>
|
|
122
|
+
)}
|
|
123
|
+
value={groupType}
|
|
124
|
+
onChange={(e) => {
|
|
125
|
+
groupInfoChange(e, 'type');
|
|
126
|
+
}}
|
|
127
|
+
/>
|
|
128
|
+
</div>
|
|
129
|
+
<div className="create-group-illustrate">
|
|
130
|
+
{getDes()}
|
|
131
|
+
</div>
|
|
132
|
+
<div className="create-group-portrait">
|
|
133
|
+
<div className="create-group-portrait-title">Participants</div>
|
|
134
|
+
<div className="create-group-portrait-info-container">
|
|
135
|
+
{profileList.map(({ avatar, userID, nick }) => (
|
|
136
|
+
<div className="create-group-portrait-info" key={userID}>
|
|
137
|
+
<Avatar shape="square" size={50} image={avatar || defaultUserAvatar} />
|
|
138
|
+
<div className="create-group-portrait-info-nick">{nick}</div>
|
|
139
|
+
</div>
|
|
140
|
+
))}
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
<div className="tui-conversation-create-next-container">
|
|
145
|
+
<div role="presentation" className="tui-conversation-create-next" onClick={next}>Create</div>
|
|
146
|
+
</div>
|
|
147
|
+
</>
|
|
148
|
+
) : (
|
|
149
|
+
<ConversationGroupTypeInfo
|
|
150
|
+
groupType={groupType}
|
|
151
|
+
setGroupType={setGroupType}
|
|
152
|
+
setPageState={setPageState}
|
|
153
|
+
/>
|
|
154
|
+
);
|
|
155
|
+
}
|