server.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import TUICore, { TUIConstants } from '@tencentcloud/tui-core';
  2. import {
  3. TUIUserService,
  4. TUIGroupService,
  5. TUIFriendService,
  6. TUIStore,
  7. StoreName,
  8. } from '@tencentcloud/chat-uikit-engine';
  9. import { isUniFrameWork } from '../../utils/env';
  10. import { TUIGlobal } from '@tencentcloud/universal-api';
  11. export default class TUISearchServer {
  12. constructor() {
  13. TUICore.registerService(TUIConstants.TUISearch.SERVICE.NAME, this);
  14. TUICore.registerExtension(TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID, this);
  15. }
  16. public onCall(method: string, params: { [propsName: string]: string }) {
  17. switch (method) {
  18. case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_GROUP:
  19. return this.searchGroup(params?.groupID);
  20. case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_USER:
  21. return this.searchUser(params?.userID);
  22. case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_FRIEND:
  23. return this.searchFriend(params?.userID);
  24. case TUIConstants.TUISearch.SERVICE.METHOD.SEARCH_GROUP_MEMBER:
  25. return this.searchGroupMember(params?.groupID, params?.userID);
  26. }
  27. }
  28. public onGetExtension(extensionID: string) {
  29. if (extensionID === TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID) {
  30. const searchExtension = {
  31. weight: 3000,
  32. text: '搜索',
  33. icon: 'https://web.sdk.qcloud.com/component/TUIKit-House/assets/message-search.svg',
  34. data: {
  35. name: 'search',
  36. },
  37. listener: {
  38. onClicked: () => {
  39. TUIStore.update(StoreName.SEARCH, 'isShowInConversationSearch', true);
  40. isUniFrameWork && TUIGlobal?.navigateTo({
  41. url: '/TUIKit-House/components/TUISearch/index',
  42. });
  43. },
  44. },
  45. };
  46. return [searchExtension];
  47. }
  48. }
  49. public async searchFriend(userID: string) {
  50. return TUIFriendService.getFriendProfile({ userIDList: [userID] });
  51. }
  52. public async searchUser(userID: string) {
  53. return TUIUserService.getUserProfile({ userIDList: [userID] });
  54. }
  55. public async searchGroup(groupID: string) {
  56. return TUIGroupService.searchGroupByID(groupID);
  57. }
  58. public async searchGroupMember(groupID: string, userID: string) {
  59. return TUIGroupService.getGroupMemberProfile({
  60. groupID,
  61. userIDList: [userID],
  62. });
  63. }
  64. }