jiuyiUniapp/jiuyi2/TUIKit/components/TUISearch/server.ts

74 lines
2.3 KiB
TypeScript
Raw Normal View History

2024-12-18 15:46:27 +08:00
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],
});
}
}