tuikit-atomicx-vue3 0.1.1 → 3.3.0-beta.3
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/dist/MessageInput.vue_vue_type_script_setup_true_lang-XRL7A5Gj.js +123 -0
- package/dist/{PopoverTrigger-ByOI-vdB.js → PopoverTrigger-BKOIHfdS.js} +1 -1
- package/dist/{PopperContent-BaiCn-CA.js → PopperContent-DtL7HVWz.js} +29 -21
- package/dist/baseComp/TuiSwitch.js +2 -2
- package/dist/baseComp/index.d.ts +0 -1
- package/dist/baseComp/index.js +1 -3
- package/dist/chat/index.d.ts +2230 -4090
- package/dist/chat/index.js +16 -8
- package/dist/components/Avatar/Avatar.js +35 -10
- package/dist/components/Avatar/Avatar.vue.d.ts +1 -1
- package/dist/components/BarrageInput/BarrageInput.vue.d.ts +2 -2
- package/dist/components/BarrageInput/BarrageInputH5.js +30 -10
- package/dist/components/BarrageInput/BarrageInputH5.vue.d.ts +2 -2
- package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +1 -1
- package/dist/components/BarrageInput/TextEditor/index.js +13 -5
- package/dist/components/BarrageInput/constants.d.ts +3 -0
- package/dist/components/BarrageInput/constants.js +6 -0
- package/dist/components/BarrageInput/i18n/en-US/index.d.ts +2 -0
- package/dist/components/BarrageInput/i18n/en-US/index.js +3 -1
- package/dist/components/BarrageInput/i18n/zh-CN/index.d.ts +2 -0
- package/dist/components/BarrageInput/i18n/zh-CN/index.js +3 -1
- package/dist/components/BarrageInput/index.d.ts +18 -18
- package/dist/components/BarrageList/BarrageList.js +5 -6
- package/dist/components/BarrageList/BarrageListH5.js +5 -6
- package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +1 -1
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +5 -4
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +2 -2
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +7 -4
- package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +1 -1
- package/dist/components/ChatSetting/ChatSetting.js +8 -11
- package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +2 -2
- package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +2 -2
- package/dist/components/ChatSetting/SettingItem/SettingItem.js +116 -89
- package/dist/components/ChatSetting/i18n/index.d.ts +191 -1
- package/dist/components/ChatSetting/i18n/index.js +3 -4
- package/dist/components/ChatSetting/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +78 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue.d.ts +33 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/ContactInfo.js +257 -0
- package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +56 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +96 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +228 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue.d.ts +39 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +101 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +154 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +141 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue.d.ts +32 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +122 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue.d.ts +33 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/index.d.ts +8 -0
- package/dist/components/ContactList/ContactInfo/index.js +18 -0
- package/dist/components/ContactList/ContactList.js +281 -0
- package/dist/components/ContactList/ContactList.vue.d.ts +41 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +52 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/ContactListItem.js +4 -0
- package/dist/components/ContactList/ContactListItem/ContactListItem.vue.d.ts +30 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +76 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue.d.ts +27 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +53 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +79 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue.d.ts +27 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +52 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/index.d.ts +6 -0
- package/dist/components/ContactList/ContactListItem/index.js +95 -0
- package/dist/components/ContactList/ContactSearch/ContactSearch.js +85 -0
- package/dist/components/ContactList/ContactSearch/ContactSearch.vue.d.ts +8 -0
- package/dist/components/ContactList/ContactSearch/index.d.ts +1 -0
- package/dist/components/ContactList/ContactSearch/index.js +4 -0
- package/dist/components/ContactList/constants/const.d.ts +3 -0
- package/dist/components/ContactList/constants/const.js +6 -0
- package/dist/components/ContactList/hooks/index.d.ts +1 -0
- package/dist/components/ContactList/hooks/index.js +4 -0
- package/dist/components/ContactList/hooks/useContactList.d.ts +9 -0
- package/dist/components/ContactList/hooks/useContactList.js +18 -0
- package/dist/components/ContactList/i18n/en-US.d.ts +77 -0
- package/dist/components/ContactList/i18n/en-US.js +80 -0
- package/dist/components/ContactList/i18n/index.d.ts +4 -0
- package/dist/components/ContactList/i18n/index.js +6 -0
- package/dist/components/ContactList/i18n/zh-CN.d.ts +77 -0
- package/dist/components/ContactList/i18n/zh-CN.js +80 -0
- package/dist/components/ContactList/index.d.ts +310 -0
- package/dist/components/ContactList/index.js +16 -0
- package/dist/components/ConversationList/ConversationActions/ConversationActions.js +31 -46
- package/dist/components/ConversationList/ConversationActions/ConversationActions.vue.d.ts +1 -10
- package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +160 -100
- package/dist/components/ConversationList/ConversationCreate/ConversationCreate.vue.d.ts +0 -3
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.js +79 -17
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue.d.ts +6 -12
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +78 -158
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue.d.ts +5 -4
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +38 -207
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue.d.ts +3 -9
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +35 -23
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue.d.ts +2 -11
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/index.js +1 -2
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.d.ts +2 -7
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.js +6 -14
- package/dist/components/ConversationList/ConversationCreate/index.d.ts +0 -2
- package/dist/components/ConversationList/ConversationCreate/index.js +5 -9
- package/dist/components/ConversationList/ConversationList.js +51 -39
- package/dist/components/ConversationList/ConversationList.vue.d.ts +654 -1510
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +4 -4
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +1 -1
- package/dist/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.js +2 -2
- package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +596 -1404
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +1 -1
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +13 -29
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +146 -348
- package/dist/components/ConversationList/ConversationPreview/index.js +3 -3
- package/dist/components/ConversationList/ConversationPreview/utils.js +8 -8
- package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +5 -5
- package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +8 -8
- package/dist/components/ConversationList/hooks/useConversation.d.ts +6 -0
- package/dist/components/ConversationList/hooks/useConversation.js +20 -0
- package/dist/components/ConversationList/hooks/useConversationCreate.d.ts +5 -0
- package/dist/components/ConversationList/hooks/useConversationCreate.js +24 -0
- package/dist/components/ConversationList/i18n/en-US.d.ts +16 -0
- package/dist/components/ConversationList/i18n/en-US.js +25 -7
- package/dist/components/ConversationList/i18n/zh-CN.d.ts +16 -0
- package/dist/components/ConversationList/i18n/zh-CN.js +24 -6
- package/dist/components/ConversationList/index.d.ts +2096 -4595
- package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.js +1 -1
- package/dist/components/LiveCoreView/index.d.ts +4 -0
- package/dist/components/{LiveStreamView → LiveCoreView}/index.js +68 -74
- package/dist/components/LiveList/LiveList.js +71 -45
- package/dist/components/LiveList/LiveListH5.js +14 -15
- package/dist/components/LiveScenePanel/CameraSettingDialog.js +1 -2
- package/dist/components/LiveScenePanel/icons/AddIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraMirror.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraUnmirror.js +2 -2
- package/dist/components/LiveScenePanel/icons/ImageIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/MoreIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/ScreenIcon.js +2 -2
- package/dist/components/MessageInput/AttachmentPicker/index.js +1 -1
- package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +1 -1
- package/dist/components/MessageInput/MessageInput.js +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview/index.js +2 -2
- package/dist/components/MessageInput/SendButton/index.js +1 -1
- package/dist/components/MessageInput/TextEditor/index.js +6 -5
- package/dist/components/MessageInput/i18n/index.d.ts +24 -1
- package/dist/components/MessageInput/i18n/index.js +7 -8
- package/dist/components/MessageInput/index.d.ts +409 -6
- package/dist/components/MessageInput/index.js +23 -125
- package/dist/components/MessageList/Message/AudioMessage/PlayButton.js +3 -3
- package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +2 -2
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +3 -3
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +5 -5
- package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +1 -1
- package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.js +34 -30
- package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -10
- package/dist/components/MessageList/MessageForward/MessageForward.js +4 -4
- package/dist/components/MessageList/MessageList.js +66 -60
- package/dist/components/MessageList/MessageList.vue.d.ts +3 -3
- package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.js +32 -0
- package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.vue.d.ts +6 -0
- package/dist/components/MessageList/ScrollToBottom/index.d.ts +3 -0
- package/dist/components/MessageList/ScrollToBottom/index.js +4 -0
- package/dist/components/MessageList/i18n/en-US.d.ts +5 -0
- package/dist/components/MessageList/i18n/en-US.js +6 -1
- package/dist/components/MessageList/i18n/index.d.ts +85 -1
- package/dist/components/MessageList/i18n/index.js +7 -8
- package/dist/components/MessageList/i18n/zh-CN.d.ts +5 -0
- package/dist/components/MessageList/i18n/zh-CN.js +6 -1
- package/dist/components/MessageList/index.js +4 -0
- package/dist/components/Search/Search.js +4 -4
- package/dist/components/Search/Search.vue.d.ts +4 -4
- package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +15 -9
- package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +12 -7
- package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +2 -2
- package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +10 -5
- package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +10 -10
- package/dist/components/Search/SearchBar/SearchBar.js +3 -2
- package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +1 -1
- package/dist/components/Search/SearchResults/SearchResults.js +82 -69
- package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +8 -8
- package/dist/components/Search/SearchResults/SearchResultsItem/utils/highlightText.d.ts +5 -6
- package/dist/components/Search/i18n/en-US/Search.js +9 -9
- package/dist/components/Search/i18n/zh-CN/Search.js +13 -13
- package/dist/components/Search/index.d.ts +6 -6
- package/dist/components/StreamMixer/LocalMixer/MixerControl.js +14 -10
- package/dist/components/StreamMixer/LocalMixer/index.js +81 -56
- package/dist/components/StreamMixer/icons/CameraMirror.js +2 -2
- package/dist/components/StreamMixer/icons/Delete.js +2 -2
- package/dist/components/StreamMixer/icons/Down.js +2 -2
- package/dist/components/StreamMixer/icons/Rotation.js +2 -2
- package/dist/components/StreamMixer/icons/Up.js +2 -2
- package/dist/components/StreamMixer/index.js +2 -2
- package/dist/components/StreamView/common/StreamCover/index.js +2 -2
- package/dist/components/UserPicker/components/TreeMode/TreeNode.js +2 -2
- package/dist/components/UserPicker/i18n/index.d.ts +15 -1
- package/dist/components/UserPicker/i18n/index.js +3 -4
- package/dist/components/UserPicker/index.d.ts +0 -1
- package/dist/components/UserPicker/index.js +6 -3
- package/dist/components/VideoSettingPanel/VideoPreview.js +3 -4
- package/dist/components/VideoSettingPanel/VideoProfile.js +3 -4
- package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +5 -0
- package/dist/components/VideoSettingPanel/i18n/en-US/index.js +8 -3
- package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +5 -0
- package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +8 -3
- package/dist/components/VideoSettingPanel/index.js +3 -3
- package/dist/hooks/useLongPress.d.ts +4 -4
- package/dist/hooks/useMessageActions.js +5 -5
- package/dist/hooks/useMouseHover.d.ts +7 -5
- package/dist/hooks/useMouseHover.js +3 -1
- package/dist/index.js +12 -6
- package/dist/rtc/index.d.ts +22 -20
- package/dist/rtc/index.js +6 -3
- package/dist/states/BarrageListState/BarrageListState.js +3 -2
- package/dist/states/CoHostState.d.ts +1 -1
- package/dist/states/CoHostState.js +59 -62
- package/dist/states/ContactListState/ContactListState.d.ts +16 -16
- package/dist/states/ContactListState/ContactListState.js +20 -20
- package/dist/states/ConversationListState/ConversationListState.d.ts +13 -12
- package/dist/states/ConversationListState/ConversationListState.js +19 -19
- package/dist/states/LiveSeatState/seatEventManager.js +3 -5
- package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +9 -0
- package/dist/states/LiveState/index.d.ts +4 -4
- package/dist/states/LiveState/index.js +4 -2
- package/dist/states/LoginState.js +1 -3
- package/dist/states/MessageInputState/MessageInputState.js +18 -18
- package/dist/states/SearchState.d.ts +2 -2
- package/dist/states/SearchState.js +124 -127
- package/dist/styles/index.css +1954 -1070
- package/dist/types/contact.d.ts +145 -9
- package/dist/types/conversation.d.ts +36 -28
- package/dist/types/conversation.js +22 -0
- package/dist/types/index.js +5 -3
- package/dist/types/live.d.ts +2 -3
- package/dist/types/types.d.ts +0 -8
- package/dist/types/types.js +0 -10
- package/dist/utils/time.d.ts +2 -2
- package/dist/utils/time.js +253 -1471
- package/package.json +23 -5
- package/src/baseComp/View/View.vue +1 -2
- package/src/baseComp/index.ts +1 -2
- package/src/chat/index.ts +11 -0
- package/src/components/Avatar/Avatar.vue +12 -11
- package/src/components/BarrageInput/BarrageInputH5.vue +36 -9
- package/src/components/BarrageInput/TextEditor/TextEditor.vue +13 -5
- package/src/components/BarrageInput/constants.ts +3 -0
- package/src/components/BarrageInput/i18n/en-US/index.ts +2 -0
- package/src/components/BarrageInput/i18n/zh-CN/index.ts +2 -0
- package/src/components/BarrageList/BarrageList.vue +2 -2
- package/src/components/BarrageList/BarrageListH5.vue +2 -2
- package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +0 -1
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +5 -2
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +7 -3
- package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +3 -3
- package/src/components/ChatSetting/ChatSetting.vue +6 -10
- package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +1 -1
- package/src/components/ChatSetting/SettingItem/SettingItem.vue +40 -36
- package/src/components/ChatSetting/i18n/index.ts +3 -5
- package/src/components/ChatSetting/index.ts +5 -1
- package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +50 -0
- package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +71 -0
- package/src/components/ContactList/ContactInfo/BlacklistInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/ContactInfo.scss +33 -0
- package/src/components/ContactList/ContactInfo/ContactInfo.vue +256 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +82 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +88 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +92 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +219 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +82 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +99 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +52 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +146 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +111 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +147 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +111 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +128 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/index.ts +8 -0
- package/src/components/ContactList/ContactList.scss +124 -0
- package/src/components/ContactList/ContactList.vue +299 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/ContactListItem.vue +98 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +58 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +70 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/FriendItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +57 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +78 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/GroupItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/index.ts +6 -0
- package/src/components/ContactList/ContactSearch/ContactSearch.scss +58 -0
- package/src/components/ContactList/ContactSearch/ContactSearch.vue +98 -0
- package/src/components/ContactList/ContactSearch/index.ts +1 -0
- package/src/components/ContactList/constants/const.ts +7 -0
- package/src/components/ContactList/hooks/index.ts +1 -0
- package/src/components/ContactList/hooks/useContactList.ts +21 -0
- package/src/components/ContactList/i18n/en-US.ts +77 -0
- package/src/components/ContactList/i18n/index.ts +4 -0
- package/src/components/ContactList/i18n/zh-CN.ts +77 -0
- package/src/components/ContactList/index.ts +18 -0
- package/src/components/ConversationList/ConversationActions/ConversationActions.scss +34 -35
- package/src/components/ConversationList/ConversationActions/ConversationActions.vue +15 -29
- package/src/components/ConversationList/ConversationCreate/ConversationCreate.scss +11 -37
- package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +154 -69
- package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.scss +37 -1
- package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +70 -15
- package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +19 -66
- package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +72 -139
- package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.scss +5 -129
- package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +42 -183
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +14 -11
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +23 -18
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.ts +2 -8
- package/src/components/ConversationList/ConversationCreate/index.ts +0 -2
- package/src/components/ConversationList/ConversationList.scss +1 -0
- package/src/components/ConversationList/ConversationList.vue +44 -25
- package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +2 -5
- package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +2 -2
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +6 -19
- package/src/components/ConversationList/ConversationPreview/utils.ts +11 -11
- package/src/components/ConversationList/hooks/useConversation.ts +21 -0
- package/src/components/ConversationList/hooks/useConversationCreate.ts +29 -0
- package/src/components/ConversationList/i18n/en-US.ts +26 -6
- package/src/components/ConversationList/i18n/zh-CN.ts +25 -5
- package/src/components/{LiveStreamView → LiveCoreView}/index.ts +4 -3
- package/src/components/{LiveStreamView → LiveCoreView}/index.vue +109 -88
- package/src/components/LiveList/LiveList.vue +94 -38
- package/src/components/LiveList/LiveListH5.vue +47 -23
- package/src/components/MessageInput/MessageInput.module.scss +1 -1
- package/src/components/MessageInput/QuotedMessagePreview/QuotedMessagePreview.vue +2 -2
- package/src/components/MessageInput/SendButton/SendButton.vue +1 -1
- package/src/components/MessageInput/TextEditor/Editor.scss +3 -2
- package/src/components/MessageInput/TextEditor/TextEditor.module.scss +1 -0
- package/src/components/MessageInput/TextEditor/TextEditor.vue +2 -0
- package/src/components/MessageInput/i18n/index.ts +1 -7
- package/src/components/MessageInput/index.ts +25 -8
- package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +4 -4
- package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +0 -1
- package/src/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +16 -17
- package/src/components/MessageList/MessageForward/MessageForward.vue +2 -2
- package/src/components/MessageList/MessageList.vue +21 -5
- package/src/components/MessageList/ScrollToBottom/ScrollToBottom.vue +50 -0
- package/src/components/MessageList/ScrollToBottom/index.ts +5 -0
- package/src/components/MessageList/i18n/en-US.ts +5 -0
- package/src/components/MessageList/i18n/index.ts +1 -5
- package/src/components/MessageList/i18n/zh-CN.ts +5 -0
- package/src/components/MessageList/index.ts +4 -1
- package/src/components/Search/Search.vue +0 -4
- package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +125 -38
- package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +24 -16
- package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +9 -7
- package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +4 -3
- package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +0 -1
- package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +57 -23
- package/src/components/Search/SearchBar/SearchBar.scss +0 -2
- package/src/components/Search/SearchBar/SearchBar.vue +7 -5
- package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +4 -2
- package/src/components/Search/SearchResults/SearchResults.scss +5 -11
- package/src/components/Search/SearchResults/SearchResults.vue +25 -29
- package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +1 -9
- package/src/components/Search/SearchResults/SearchResultsItem/utils/highlightText.ts +15 -16
- package/src/components/Search/i18n/en-US/Search.ts +9 -9
- package/src/components/Search/i18n/zh-CN/Search.ts +13 -13
- package/src/components/StreamMixer/LocalMixer/MixerControl.vue +20 -15
- package/src/components/StreamMixer/LocalMixer/index.vue +130 -57
- package/src/components/StreamMixer/index.vue +3 -3
- package/src/components/UserPicker/i18n/index.ts +1 -5
- package/src/components/UserPicker/index.ts +4 -3
- package/src/components/VideoSettingPanel/VideoPreview.vue +13 -8
- package/src/components/VideoSettingPanel/VideoProfile.vue +5 -5
- package/src/components/VideoSettingPanel/i18n/en-US/index.ts +8 -3
- package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +8 -3
- package/src/components/VideoSettingPanel/index.vue +15 -9
- package/src/hooks/useLongPress.ts +7 -18
- package/src/hooks/useMessageActions.ts +5 -5
- package/src/hooks/useMouseHover.ts +9 -7
- package/src/rtc/index.ts +6 -3
- package/src/types/contact.ts +175 -12
- package/src/types/conversation.ts +42 -32
- package/src/types/live.ts +3 -5
- package/src/types/types.ts +0 -28
- package/src/utils/time.ts +8 -10
- package/dist/baseComp/Popup/Popup.js +0 -132
- package/dist/baseComp/Popup/Popup.vue.d.ts +0 -54
- package/dist/baseComp/Popup/index.d.ts +0 -2
- package/dist/baseComp/Popup/index.js +0 -4
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.js +0 -65
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue.d.ts +0 -17
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.d.ts +0 -1
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.js +0 -4
- package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.d.ts +0 -9
- package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.js +0 -96
- package/dist/components/ConversationList/ConversationCreate/static/word.d.ts +0 -6
- package/dist/components/ConversationList/ConversationCreate/static/word.js +0 -4
- package/dist/components/LiveStreamView/index.d.ts +0 -4
- package/src/baseComp/Popup/Popup.vue +0 -156
- package/src/baseComp/Popup/index.ts +0 -2
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.scss +0 -36
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue +0 -44
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.ts +0 -1
- package/src/components/ConversationList/ConversationCreate/hooks/useConversationCreate.ts +0 -132
- package/src/components/ConversationList/ConversationCreate/static/word.ts +0 -300
- /package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/index.vue.d.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/index.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.ts +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { ref, nextTick } from 'vue';
|
|
2
|
+
import { ref, nextTick, useCssModule } from 'vue';
|
|
3
|
+
import cs from 'classnames';
|
|
3
4
|
import { IconEditNameCard, TUIButton, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
4
5
|
|
|
5
6
|
// Base props shared by all types
|
|
@@ -58,7 +59,9 @@ const SettingItemType = {
|
|
|
58
59
|
DISPLAY: 'display',
|
|
59
60
|
} as const;
|
|
60
61
|
|
|
62
|
+
|
|
61
63
|
const { t } = useUIKit();
|
|
64
|
+
const classes = useCssModule();
|
|
62
65
|
|
|
63
66
|
// Edit state management
|
|
64
67
|
const isEditing = ref(false);
|
|
@@ -152,46 +155,46 @@ function handleSwitchChange(event: Event) {
|
|
|
152
155
|
<template>
|
|
153
156
|
<div
|
|
154
157
|
:class="[
|
|
155
|
-
'setting-item',
|
|
158
|
+
classes['setting-item'],
|
|
156
159
|
{
|
|
157
|
-
[`setting-item--${type}`]: !!type,
|
|
158
|
-
'setting-item--disabled': disabled,
|
|
159
|
-
'setting-item--editing': isEditing,
|
|
160
|
-
'setting-item--error': !!errorMessage,
|
|
160
|
+
[classes[`setting-item--${type}`]]: !!type,
|
|
161
|
+
[classes['setting-item--disabled']]: disabled,
|
|
162
|
+
[classes['setting-item--editing']]: isEditing,
|
|
163
|
+
[classes['setting-item--error']]: !!errorMessage,
|
|
161
164
|
}
|
|
162
165
|
]"
|
|
163
166
|
>
|
|
164
|
-
<div class="setting-item__label">
|
|
167
|
+
<div :class="classes['setting-item__label']">
|
|
165
168
|
{{ label }}
|
|
166
169
|
</div>
|
|
167
|
-
<div class="setting-item__content-wrapper">
|
|
170
|
+
<div :class="classes['setting-item__content-wrapper']">
|
|
168
171
|
<!-- Switch type content -->
|
|
169
172
|
<label
|
|
170
173
|
v-if="type === SettingItemType.SWITCH"
|
|
171
|
-
class="setting-item__switch"
|
|
174
|
+
:class="classes['setting-item__switch']"
|
|
172
175
|
>
|
|
173
176
|
<input
|
|
174
|
-
class="setting-item__switch-input"
|
|
177
|
+
:class="classes['setting-item__switch-input']"
|
|
175
178
|
type="checkbox"
|
|
176
179
|
:checked="value"
|
|
177
180
|
:disabled="disabled"
|
|
178
181
|
@change="handleSwitchChange"
|
|
179
182
|
>
|
|
180
|
-
<span class="setting-item__switch-slider" />
|
|
183
|
+
<span :class="classes['setting-item__switch-slider']" />
|
|
181
184
|
</label>
|
|
182
185
|
|
|
183
186
|
<!-- Input type content -->
|
|
184
187
|
<template v-else-if="type === SettingItemType.INPUT">
|
|
185
188
|
<div
|
|
186
189
|
v-if="isEditing && editable"
|
|
187
|
-
class="setting-item__edit-container"
|
|
190
|
+
:class="classes['setting-item__edit-container']"
|
|
188
191
|
>
|
|
189
192
|
<div>
|
|
190
193
|
<input
|
|
191
194
|
ref="inputRef"
|
|
192
195
|
:class="[
|
|
193
|
-
'setting-item__input',
|
|
194
|
-
{ 'setting-item__input--error': !!errorMessage }
|
|
196
|
+
classes['setting-item__input'],
|
|
197
|
+
{ [classes['setting-item__input--error']]: !!errorMessage }
|
|
195
198
|
]"
|
|
196
199
|
type="text"
|
|
197
200
|
:value="editValue"
|
|
@@ -202,14 +205,14 @@ function handleSwitchChange(event: Event) {
|
|
|
202
205
|
>
|
|
203
206
|
<div
|
|
204
207
|
v-if="errorMessage"
|
|
205
|
-
class="setting-item__error"
|
|
208
|
+
:class="classes['setting-item__error']"
|
|
206
209
|
>
|
|
207
210
|
{{ errorMessage }}
|
|
208
211
|
</div>
|
|
209
212
|
</div>
|
|
210
|
-
<div class="setting-item__actions">
|
|
213
|
+
<div :class="classes['setting-item__actions']">
|
|
211
214
|
<TUIButton
|
|
212
|
-
class="setting-item__btn--cancel"
|
|
215
|
+
:class="classes['setting-item__btn--cancel']"
|
|
213
216
|
color="gray"
|
|
214
217
|
radius="rect"
|
|
215
218
|
:disabled="disabled"
|
|
@@ -218,7 +221,7 @@ function handleSwitchChange(event: Event) {
|
|
|
218
221
|
{{ t('ChatSetting.cancel') }}
|
|
219
222
|
</TUIButton>
|
|
220
223
|
<TUIButton
|
|
221
|
-
class="setting-item__btn--confirm"
|
|
224
|
+
:class="classes['setting-item__btn--confirm']"
|
|
222
225
|
color="blue"
|
|
223
226
|
radius="rect"
|
|
224
227
|
:disabled="disabled || !!errorMessage || props.value === editValue"
|
|
@@ -230,14 +233,14 @@ function handleSwitchChange(event: Event) {
|
|
|
230
233
|
</div>
|
|
231
234
|
<div
|
|
232
235
|
v-else
|
|
233
|
-
class="setting-item__content"
|
|
236
|
+
:class="classes['setting-item__content']"
|
|
234
237
|
>
|
|
235
|
-
<span class="setting-item__value">
|
|
238
|
+
<span :class="[classes['setting-item__value'], { [classes['setting-item__value--placeholder']]: !value }]">
|
|
236
239
|
{{ value || placeholder || t('ChatSetting.not_set') }}
|
|
237
240
|
</span>
|
|
238
241
|
<IconEditNameCard
|
|
239
242
|
v-if="editable"
|
|
240
|
-
class="setting-item__edit-btn unique-icon-btn"
|
|
243
|
+
:class="cs(classes['setting-item__edit-btn'], 'unique-icon-btn')"
|
|
241
244
|
:style="{ cursor: disabled ? 'not-allowed' : 'pointer' }"
|
|
242
245
|
@click="startEdit"
|
|
243
246
|
/>
|
|
@@ -248,14 +251,14 @@ function handleSwitchChange(event: Event) {
|
|
|
248
251
|
<template v-else-if="type === SettingItemType.TEXTAREA">
|
|
249
252
|
<div
|
|
250
253
|
v-if="isEditing && editable"
|
|
251
|
-
class="setting-item__edit-container"
|
|
254
|
+
:class="classes['setting-item__edit-container']"
|
|
252
255
|
>
|
|
253
256
|
<div>
|
|
254
257
|
<textarea
|
|
255
258
|
ref="textareaRef"
|
|
256
259
|
:class="[
|
|
257
|
-
'setting-item__textarea',
|
|
258
|
-
{ 'setting-item__textarea--error': !!errorMessage }
|
|
260
|
+
classes['setting-item__textarea'],
|
|
261
|
+
{ [classes['setting-item__textarea--error']]: !!errorMessage }
|
|
259
262
|
]"
|
|
260
263
|
:value="editValue"
|
|
261
264
|
:rows="rows || 3"
|
|
@@ -266,14 +269,14 @@ function handleSwitchChange(event: Event) {
|
|
|
266
269
|
/>
|
|
267
270
|
<div
|
|
268
271
|
v-if="errorMessage"
|
|
269
|
-
class="setting-item__error"
|
|
272
|
+
:class="classes['setting-item__error']"
|
|
270
273
|
>
|
|
271
274
|
{{ errorMessage }}
|
|
272
275
|
</div>
|
|
273
276
|
</div>
|
|
274
|
-
<div class="setting-item__actions">
|
|
277
|
+
<div :class="classes['setting-item__actions']">
|
|
275
278
|
<TUIButton
|
|
276
|
-
class="setting-item__btn--cancel"
|
|
279
|
+
:class="classes['setting-item__btn--cancel']"
|
|
277
280
|
color="gray"
|
|
278
281
|
radius="rect"
|
|
279
282
|
:disabled="disabled"
|
|
@@ -282,7 +285,7 @@ function handleSwitchChange(event: Event) {
|
|
|
282
285
|
{{ t('ChatSetting.cancel') }}
|
|
283
286
|
</TUIButton>
|
|
284
287
|
<TUIButton
|
|
285
|
-
class="setting-item__btn--confirm"
|
|
288
|
+
:class="classes['setting-item__btn--confirm']"
|
|
286
289
|
color="blue"
|
|
287
290
|
radius="rect"
|
|
288
291
|
:disabled="disabled || !!errorMessage || props.value === editValue"
|
|
@@ -294,14 +297,14 @@ function handleSwitchChange(event: Event) {
|
|
|
294
297
|
</div>
|
|
295
298
|
<div
|
|
296
299
|
v-else
|
|
297
|
-
class="setting-item__content"
|
|
300
|
+
:class="classes['setting-item__content']"
|
|
298
301
|
>
|
|
299
|
-
<span class="setting-item__value">
|
|
302
|
+
<span :class="[classes['setting-item__value'], { [classes['setting-item__value--placeholder']]: !value }]">
|
|
300
303
|
{{ value || placeholder || t('ChatSetting.not_set') }}
|
|
301
304
|
</span>
|
|
302
305
|
<IconEditNameCard
|
|
303
306
|
v-if="editable"
|
|
304
|
-
class="setting-item__edit-btn unique-icon-btn"
|
|
307
|
+
:class="cs(classes['setting-item__edit-btn'], 'unique-icon-btn')"
|
|
305
308
|
:style="{ cursor: disabled ? 'not-allowed' : 'pointer' }"
|
|
306
309
|
@click="startEdit"
|
|
307
310
|
/>
|
|
@@ -311,7 +314,7 @@ function handleSwitchChange(event: Event) {
|
|
|
311
314
|
<!-- Display type content -->
|
|
312
315
|
<span
|
|
313
316
|
v-else-if="type === SettingItemType.DISPLAY"
|
|
314
|
-
class="setting-item__value"
|
|
317
|
+
:class="classes['setting-item__value']"
|
|
315
318
|
>
|
|
316
319
|
{{ value || placeholder || t('ChatSetting.not_set') }}
|
|
317
320
|
</span>
|
|
@@ -319,7 +322,7 @@ function handleSwitchChange(event: Event) {
|
|
|
319
322
|
</div>
|
|
320
323
|
</template>
|
|
321
324
|
|
|
322
|
-
<style lang="scss"
|
|
325
|
+
<style lang="scss" module>
|
|
323
326
|
.setting-item {
|
|
324
327
|
display: flex;
|
|
325
328
|
flex: 1;
|
|
@@ -376,10 +379,11 @@ function handleSwitchChange(event: Event) {
|
|
|
376
379
|
word-break: break-word;
|
|
377
380
|
|
|
378
381
|
color: var(--text-color-secondary);
|
|
379
|
-
}
|
|
380
382
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
+
&--placeholder {
|
|
384
|
+
font-style: italic;
|
|
385
|
+
color: var(--text-color-tertiary);
|
|
386
|
+
}
|
|
383
387
|
}
|
|
384
388
|
|
|
385
389
|
// Switch styles
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { i18next } from '@tencentcloud/uikit-base-component-vue3';
|
|
2
|
-
|
|
3
1
|
import enUS from './en-US';
|
|
4
2
|
import zhCN from './zh-CN';
|
|
5
3
|
|
|
@@ -8,6 +6,6 @@ const resources = {
|
|
|
8
6
|
'zh-CN': zhCN,
|
|
9
7
|
};
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
9
|
+
export {
|
|
10
|
+
resources,
|
|
11
|
+
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import ChatSetting from './ChatSetting.vue';
|
|
2
|
-
import '
|
|
2
|
+
import { addI18n } from '../../i18n';
|
|
3
|
+
import { resources } from './i18n';
|
|
4
|
+
|
|
5
|
+
addI18n('zh-CN', { translation: { ChatSetting: resources['zh-CN'] } });
|
|
6
|
+
addI18n('en-US', { translation: { ChatSetting: resources['en-US'] } });
|
|
3
7
|
|
|
4
8
|
export { ChatSetting };
|
|
5
9
|
export { C2CChatSetting } from './C2CChatSetting';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
@use '../../../../styles/mixins' as mixins;
|
|
2
|
+
.contact-blacklist-info {
|
|
3
|
+
height: 100%;
|
|
4
|
+
width: 100%;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
background-color: var(--bg-color-topbar);
|
|
9
|
+
padding: 48px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.contact-blacklist-info__header {
|
|
13
|
+
display: flex;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
align-items: flex-start;
|
|
16
|
+
gap: 20px;
|
|
17
|
+
margin-bottom: 32px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.contact-blacklist-info__main-info {
|
|
21
|
+
flex: 1;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: 20px;
|
|
25
|
+
width: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.contact-blacklist-info__name {
|
|
29
|
+
font-size: 24px;
|
|
30
|
+
font-weight: 400;
|
|
31
|
+
color: var(--text-color-primary);
|
|
32
|
+
max-width: 100%;
|
|
33
|
+
@include mixins.text-ellipsis();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.contact-blacklist-info__id,
|
|
37
|
+
.contact-blacklist-info__intro {
|
|
38
|
+
font-size: 16px;
|
|
39
|
+
color: var(--text-color-tertiary);
|
|
40
|
+
width: 100%;
|
|
41
|
+
word-break: break-word;
|
|
42
|
+
@include mixins.multi-line-ellipsis(3);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.contact-blacklist-info__actions {
|
|
46
|
+
border-top: 1px solid var(--stroke-color-secondary);
|
|
47
|
+
padding-top: 32px;
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="contact-blacklist-info">
|
|
3
|
+
<div class="contact-blacklist-info__header">
|
|
4
|
+
<div class="contact-blacklist-info__main-info">
|
|
5
|
+
<div class="contact-blacklist-info__name">
|
|
6
|
+
{{ displayName }}
|
|
7
|
+
</div>
|
|
8
|
+
<div class="contact-blacklist-info__id">
|
|
9
|
+
{{ t('TUIContact.ID') }}:{{ profile?.userID }}
|
|
10
|
+
</div>
|
|
11
|
+
<div class="contact-blacklist-info__intro">
|
|
12
|
+
{{ t('TUIContact.Personal signature') }}:{{ profile?.selfSignature || '' }}
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<Avatar
|
|
16
|
+
:src="profile?.avatar"
|
|
17
|
+
:alt="displayName"
|
|
18
|
+
size="xl"
|
|
19
|
+
/>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div
|
|
23
|
+
v-if="showActions"
|
|
24
|
+
class="contact-blacklist-info__actions"
|
|
25
|
+
>
|
|
26
|
+
<TUIButton
|
|
27
|
+
type="primary"
|
|
28
|
+
size="big"
|
|
29
|
+
@click="handleRemoveFromBlacklist"
|
|
30
|
+
>
|
|
31
|
+
{{ t('TUIContact.Remove from blacklist') }}
|
|
32
|
+
</TUIButton>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script setup lang="ts">
|
|
38
|
+
import { computed } from 'vue';
|
|
39
|
+
import { useUIKit, TUIButton } from '@tencentcloud/uikit-base-component-vue3';
|
|
40
|
+
import { useContactListState } from '../../../../states/ContactListState';
|
|
41
|
+
import { Avatar } from '../../../Avatar';
|
|
42
|
+
import type { BlacklistInfoProps, UserProfile } from '../../../../types/contact';
|
|
43
|
+
|
|
44
|
+
const props = withDefaults(defineProps<BlacklistInfoProps>(), {
|
|
45
|
+
showActions: true,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const emit = defineEmits<{
|
|
49
|
+
removeFromBlacklist: [profile: UserProfile];
|
|
50
|
+
close: [];
|
|
51
|
+
}>();
|
|
52
|
+
|
|
53
|
+
const { t } = useUIKit();
|
|
54
|
+
const { removeFromBlacklist } = useContactListState();
|
|
55
|
+
|
|
56
|
+
const displayName = computed(() => props.profile?.nick || props.profile?.userID);
|
|
57
|
+
|
|
58
|
+
const handleRemoveFromBlacklist = async () => {
|
|
59
|
+
try {
|
|
60
|
+
await removeFromBlacklist([props.profile?.userID]);
|
|
61
|
+
emit('removeFromBlacklist', props.profile);
|
|
62
|
+
emit('close');
|
|
63
|
+
} catch (err) {
|
|
64
|
+
console.error('[ContactInfo removeFromBlacklist] error', err);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<style scoped lang="scss">
|
|
70
|
+
@import './BlacklistInfo.scss';
|
|
71
|
+
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as BlacklistInfo } from './BlacklistInfo.vue';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.contact-info {
|
|
2
|
+
flex: 1;
|
|
3
|
+
height: 100%;
|
|
4
|
+
width: 100%;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
background-color: var(--bg-color-operate);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.contact-info__empty {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
height: 100%;
|
|
16
|
+
color: var(--text-color-secondary);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.contact-info__header {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
padding: 10px 20px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.contact-info__title {
|
|
26
|
+
flex: 1;
|
|
27
|
+
text-align: center;
|
|
28
|
+
font-size: 16px;
|
|
29
|
+
line-height: 100%;
|
|
30
|
+
font-weight: 500;
|
|
31
|
+
padding-right: 24px;
|
|
32
|
+
color: var(--text-color-primary);
|
|
33
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="contact-info">
|
|
3
|
+
<header
|
|
4
|
+
v-if="isH5 && contactInfo"
|
|
5
|
+
class="contact-info__header"
|
|
6
|
+
>
|
|
7
|
+
<IconChevronLeft
|
|
8
|
+
size="24px"
|
|
9
|
+
@click="handleCloseContactInfo"
|
|
10
|
+
/>
|
|
11
|
+
<h1 class="contact-info__title">
|
|
12
|
+
{{ contactGroupTitles[contactInfo?.type] }}
|
|
13
|
+
</h1>
|
|
14
|
+
</header>
|
|
15
|
+
<component
|
|
16
|
+
:is="getComponentByType(contactInfo?.type)"
|
|
17
|
+
v-if="contactInfo"
|
|
18
|
+
v-bind="getComponentProps(contactInfo.type)"
|
|
19
|
+
:show-actions="showActions"
|
|
20
|
+
@close="handleCloseContactInfo"
|
|
21
|
+
@send-message="handleSendMessage"
|
|
22
|
+
@delete-friend="handleDeleteFriend"
|
|
23
|
+
@add-to-blacklist="handleAddToBlacklist"
|
|
24
|
+
@remove-from-blacklist="handleRemoveFromBlacklist"
|
|
25
|
+
@update-friend-remark="handleUpdateFriendRemark"
|
|
26
|
+
@enter-group="handleEnterGroup"
|
|
27
|
+
@leave-group="handleLeaveGroup"
|
|
28
|
+
@dismiss-group="handleDismissGroup"
|
|
29
|
+
@friend-application-action="handleFriendApplicationAction"
|
|
30
|
+
@group-application-action="handleGroupApplicationAction"
|
|
31
|
+
@add-friend="handleAddFriend"
|
|
32
|
+
@join-group="handleJoinGroup"
|
|
33
|
+
/>
|
|
34
|
+
<div
|
|
35
|
+
v-else-if="PlaceholderEmpty"
|
|
36
|
+
class="contact-info__empty"
|
|
37
|
+
>
|
|
38
|
+
<component :is="PlaceholderEmpty" />
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</template>
|
|
42
|
+
|
|
43
|
+
<script setup lang="ts">
|
|
44
|
+
import { watch, ref } from 'vue';
|
|
45
|
+
import { IconChevronLeft } from '@tencentcloud/uikit-base-component-vue3';
|
|
46
|
+
import { useContactListState } from '../../../states/ContactListState';
|
|
47
|
+
import { ContactItemType } from '../../../types/contact';
|
|
48
|
+
import { isH5 } from '../../../utils/env';
|
|
49
|
+
import { useContactList } from '../hooks';
|
|
50
|
+
import { BlacklistInfo } from './BlacklistInfo';
|
|
51
|
+
import { FriendApplicationInfo } from './FriendApplicationInfo';
|
|
52
|
+
import { FriendInfo } from './FriendInfo';
|
|
53
|
+
import { GroupApplicationInfo } from './GroupApplicationInfo';
|
|
54
|
+
import { GroupInfo } from './GroupInfo';
|
|
55
|
+
import { SearchGroupInfo } from './SearchGroupInfo';
|
|
56
|
+
import { SearchUserInfo } from './SearchUserInfo';
|
|
57
|
+
import type { Friend, GroupModel, UserProfile } from '../../../types';
|
|
58
|
+
import type { ContactInfoProps, ContactGroupItem, FriendApplication, GroupApplication } from '../../../types/contact';
|
|
59
|
+
|
|
60
|
+
const props = withDefaults(defineProps<ContactInfoProps>(), {
|
|
61
|
+
showActions: true,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const emit = defineEmits<{
|
|
65
|
+
close: [];
|
|
66
|
+
sendMessage: [data: Friend];
|
|
67
|
+
deleteFriend: [data: Friend];
|
|
68
|
+
addToBlacklist: [data: Friend];
|
|
69
|
+
removeFromBlacklist: [data: UserProfile];
|
|
70
|
+
updateFriendRemark: [data: Friend];
|
|
71
|
+
enterGroup: [data: GroupModel];
|
|
72
|
+
leaveGroup: [data: GroupModel];
|
|
73
|
+
dismissGroup: [data: GroupModel];
|
|
74
|
+
friendApplicationAction: [action: 'accept' | 'refuse', application: FriendApplication];
|
|
75
|
+
groupApplicationAction: [action: 'accept' | 'refuse', application: GroupApplication];
|
|
76
|
+
addFriend: [data: UserProfile, wording: string];
|
|
77
|
+
joinGroup: [data: GroupModel, note: string];
|
|
78
|
+
}>();
|
|
79
|
+
|
|
80
|
+
const { friendList, groupList, blackList } = useContactListState();
|
|
81
|
+
const { activeContact, setActiveContact, contactGroupTitles } = useContactList();
|
|
82
|
+
|
|
83
|
+
const contactInfo = ref<ContactGroupItem | undefined>(undefined);
|
|
84
|
+
|
|
85
|
+
const handleContactInfo = (contactGroupItem?: ContactGroupItem) => {
|
|
86
|
+
const newContactInfo = contactGroupItem ? { ...contactGroupItem } : undefined;
|
|
87
|
+
|
|
88
|
+
if (contactGroupItem?.type === ContactItemType.SEARCH_USER) {
|
|
89
|
+
const blackUser = blackList.value.find(
|
|
90
|
+
userInfo => userInfo.userID === (contactGroupItem?.data as UserProfile).userID,
|
|
91
|
+
);
|
|
92
|
+
const friend = friendList.value.find(
|
|
93
|
+
userInfo => userInfo.userID === (contactGroupItem?.data as UserProfile).userID,
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
if (blackUser && newContactInfo) {
|
|
97
|
+
newContactInfo.type = ContactItemType.BLACK;
|
|
98
|
+
newContactInfo.data = blackUser;
|
|
99
|
+
} else if (friend && newContactInfo) {
|
|
100
|
+
newContactInfo.type = ContactItemType.FRIEND;
|
|
101
|
+
newContactInfo.data = friend;
|
|
102
|
+
}
|
|
103
|
+
} else if (contactGroupItem?.type === ContactItemType.SEARCH_GROUP) {
|
|
104
|
+
const group = groupList.value.find(
|
|
105
|
+
g => g.groupID === (contactGroupItem?.data as GroupModel).groupID,
|
|
106
|
+
);
|
|
107
|
+
if (group && newContactInfo) {
|
|
108
|
+
newContactInfo.type = ContactItemType.GROUP;
|
|
109
|
+
newContactInfo.data = group;
|
|
110
|
+
}
|
|
111
|
+
} else if (contactGroupItem?.type === ContactItemType.FRIEND) {
|
|
112
|
+
const blackUser = blackList.value.find(
|
|
113
|
+
userInfo => userInfo.userID === (contactGroupItem?.data as Friend).userID,
|
|
114
|
+
);
|
|
115
|
+
if (blackUser && newContactInfo) {
|
|
116
|
+
newContactInfo.type = ContactItemType.BLACK;
|
|
117
|
+
newContactInfo.data = blackUser;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
contactInfo.value = newContactInfo;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
watch(
|
|
125
|
+
() => props.contactItem,
|
|
126
|
+
(newContactItem, oldContactItem) => {
|
|
127
|
+
if (newContactItem !== oldContactItem) {
|
|
128
|
+
setActiveContact(newContactItem);
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{ immediate: true },
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
watch(
|
|
135
|
+
() => activeContact.value,
|
|
136
|
+
(newActiveContact) => {
|
|
137
|
+
handleContactInfo(newActiveContact || undefined);
|
|
138
|
+
},
|
|
139
|
+
{ immediate: true },
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
watch(
|
|
143
|
+
(): [GroupModel[], ContactGroupItem | undefined] => [groupList.value, activeContact.value],
|
|
144
|
+
([newGroupList, newActiveContact]) => {
|
|
145
|
+
if (newGroupList.length > 0 && newActiveContact && newActiveContact.type === ContactItemType.GROUP) {
|
|
146
|
+
const group = newGroupList.find(
|
|
147
|
+
g => g?.groupID === (newActiveContact?.data as GroupModel)?.groupID,
|
|
148
|
+
);
|
|
149
|
+
if (group) {
|
|
150
|
+
if (newActiveContact?.data !== group) {
|
|
151
|
+
setActiveContact({
|
|
152
|
+
type: ContactItemType.GROUP,
|
|
153
|
+
data: group,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
setActiveContact(undefined);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
watch(
|
|
164
|
+
(): [UserProfile[], Friend[], ContactGroupItem | undefined] => [blackList.value, friendList.value, activeContact.value],
|
|
165
|
+
([newBlackList, newFriendList, newActiveContact]) => {
|
|
166
|
+
if (newActiveContact) {
|
|
167
|
+
const blackUser = newBlackList?.find(
|
|
168
|
+
userInfo => userInfo?.userID === (newActiveContact?.data as UserProfile)?.userID,
|
|
169
|
+
);
|
|
170
|
+
const user = newFriendList?.find(
|
|
171
|
+
userInfo => userInfo?.userID === (newActiveContact?.data as UserProfile)?.userID,
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
if (blackUser && newActiveContact.type !== ContactItemType.BLACK) {
|
|
175
|
+
setActiveContact({
|
|
176
|
+
type: ContactItemType.BLACK,
|
|
177
|
+
data: blackUser,
|
|
178
|
+
});
|
|
179
|
+
} else if (user && newActiveContact.type === ContactItemType.FRIEND && newActiveContact.data !== user) {
|
|
180
|
+
setActiveContact({
|
|
181
|
+
type: ContactItemType.FRIEND,
|
|
182
|
+
data: user,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
const getComponentByType = (type?: ContactItemType) => {
|
|
190
|
+
switch (type) {
|
|
191
|
+
case ContactItemType.FRIEND:
|
|
192
|
+
return FriendInfo;
|
|
193
|
+
case ContactItemType.GROUP:
|
|
194
|
+
return GroupInfo;
|
|
195
|
+
case ContactItemType.BLACK:
|
|
196
|
+
return BlacklistInfo;
|
|
197
|
+
case ContactItemType.FRIEND_REQUEST:
|
|
198
|
+
return FriendApplicationInfo;
|
|
199
|
+
case ContactItemType.GROUP_REQUEST:
|
|
200
|
+
return GroupApplicationInfo;
|
|
201
|
+
case ContactItemType.SEARCH_USER:
|
|
202
|
+
return SearchUserInfo;
|
|
203
|
+
case ContactItemType.SEARCH_GROUP:
|
|
204
|
+
return SearchGroupInfo;
|
|
205
|
+
default:
|
|
206
|
+
return 'div';
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const getComponentProps = (type?: ContactItemType) => {
|
|
211
|
+
if (!contactInfo.value) {
|
|
212
|
+
return {};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
switch (type) {
|
|
216
|
+
case ContactItemType.FRIEND:
|
|
217
|
+
return { friend: contactInfo.value.data };
|
|
218
|
+
case ContactItemType.GROUP:
|
|
219
|
+
return { group: contactInfo.value.data };
|
|
220
|
+
case ContactItemType.BLACK:
|
|
221
|
+
return { profile: contactInfo.value.data };
|
|
222
|
+
case ContactItemType.FRIEND_REQUEST:
|
|
223
|
+
return { application: contactInfo.value.data };
|
|
224
|
+
case ContactItemType.GROUP_REQUEST:
|
|
225
|
+
return { application: contactInfo.value.data };
|
|
226
|
+
case ContactItemType.SEARCH_USER:
|
|
227
|
+
return { user: contactInfo.value.data };
|
|
228
|
+
case ContactItemType.SEARCH_GROUP:
|
|
229
|
+
return { group: contactInfo.value.data };
|
|
230
|
+
default:
|
|
231
|
+
return {};
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
const handleCloseContactInfo = () => {
|
|
236
|
+
setActiveContact(undefined);
|
|
237
|
+
emit('close');
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
const handleSendMessage = (data: Friend) => emit('sendMessage', data);
|
|
241
|
+
const handleDeleteFriend = (data: Friend) => emit('deleteFriend', data);
|
|
242
|
+
const handleAddToBlacklist = (data: Friend) => emit('addToBlacklist', data);
|
|
243
|
+
const handleRemoveFromBlacklist = (data: UserProfile) => emit('removeFromBlacklist', data);
|
|
244
|
+
const handleUpdateFriendRemark = (data: Friend) => emit('updateFriendRemark', data);
|
|
245
|
+
const handleEnterGroup = (data: GroupModel) => emit('enterGroup', data);
|
|
246
|
+
const handleLeaveGroup = (data: GroupModel) => emit('leaveGroup', data);
|
|
247
|
+
const handleDismissGroup = (data: GroupModel) => emit('dismissGroup', data);
|
|
248
|
+
const handleFriendApplicationAction = (action: 'accept' | 'refuse', application: FriendApplication) => emit('friendApplicationAction', action, application);
|
|
249
|
+
const handleGroupApplicationAction = (action: 'accept' | 'refuse', application: GroupApplication) => emit('groupApplicationAction', action, application);
|
|
250
|
+
const handleAddFriend = (data: UserProfile, wording: string) => emit('addFriend', data, wording);
|
|
251
|
+
const handleJoinGroup = (data: GroupModel, note: string) => emit('joinGroup', data, note);
|
|
252
|
+
</script>
|
|
253
|
+
|
|
254
|
+
<style scoped lang="scss">
|
|
255
|
+
@import './ContactInfo.scss';
|
|
256
|
+
</style>
|