消息
This commit is contained in:
73
TUIKit/components/TUISearch/server.ts
Normal file
73
TUIKit/components/TUISearch/server.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
import TUICore, { TUIConstants } from '@tencentcloud/tui-core';
|
||||
import {
|
||||
TUIUserService,
|
||||
TUIGroupService,
|
||||
TUIFriendService,
|
||||
TUIStore,
|
||||
StoreName,
|
||||
} from '@tencentcloud/chat-uikit-engine';
|
||||
import { isUniFrameWork } from '../../utils/env';
|
||||
import { TUIGlobal } from '@tencentcloud/universal-api';
|
||||
|
||||
export default class TUISearchServer {
|
||||
constructor() {
|
||||
TUICore.registerService(TUIConstants.TUISearch.SERVICE.NAME, this);
|
||||
TUICore.registerExtension(TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID, this);
|
||||
}
|
||||
|
||||
public onCall(method: string, params: { [propsName: string]: string }) {
|
||||
switch (method) {
|
||||
case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_GROUP:
|
||||
return this.searchGroup(params?.groupID);
|
||||
case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_USER:
|
||||
return this.searchUser(params?.userID);
|
||||
case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_FRIEND:
|
||||
return this.searchFriend(params?.userID);
|
||||
case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_GROUP_MEMBER:
|
||||
return this.searchGroupMember(params?.groupID, params?.userID);
|
||||
}
|
||||
}
|
||||
|
||||
public onGetExtension(extensionID: string) {
|
||||
if (extensionID === TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID) {
|
||||
const list: any[] = [];
|
||||
const searchExtension = {
|
||||
weight: 3000,
|
||||
text: '搜索',
|
||||
icon: 'https://web.sdk.qcloud.com/component/TUIKit/assets/message-search.svg',
|
||||
data: {
|
||||
name: 'search',
|
||||
},
|
||||
listener: {
|
||||
onClicked: () => {
|
||||
TUIStore.update(StoreName.SEARCH, 'isShowInConversationSearch', true);
|
||||
isUniFrameWork && TUIGlobal?.navigateTo({
|
||||
url: '/TUIKit/components/TUISearch/index',
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
list.push(searchExtension);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
public async searchFriend(userID: string) {
|
||||
return TUIFriendService.getFriendProfile({ userIDList: [userID] });
|
||||
}
|
||||
|
||||
public async searchUser(userID: string) {
|
||||
return TUIUserService.getUserProfile({ userIDList: [userID] });
|
||||
}
|
||||
|
||||
public async searchGroup(groupID: string) {
|
||||
return TUIGroupService.searchGroupByID(groupID);
|
||||
}
|
||||
|
||||
public async searchGroupMember(groupID: string, userID: string) {
|
||||
return TUIGroupService.getGroupMemberProfile({
|
||||
groupID,
|
||||
userIDList: [userID],
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user