"use strict"; const common_vendor = require("../../../common/vendor.js"); const TUIKit_constant = require("../../constant.js"); const TUIKit_utils_env = require("../../utils/env.js"); const common_assets = require("../../../common/assets.js"); const TUIKit_utils_enableSampleTaskStatus = require("../../utils/enableSampleTaskStatus.js"); class TUIConversationServer { constructor() { this.hideConversationHeader = () => { common_vendor.zt.update(common_vendor.o.CUSTOM, "isShowConversationHeader", false); }; common_vendor.R.registerService(common_vendor.E.TUIConversation.SERVICE.NAME, this); common_vendor.R.registerExtension(common_vendor.E.TUISearch.EXTENSION.SEARCH_MORE.EXT_ID, this); this.onCallParamsMap = /* @__PURE__ */ new Map(); this.onCallCallbackMap = /* @__PURE__ */ new Map(); this.constants = common_vendor.E; } static getInstance() { if (!TUIConversationServer.instance) { TUIConversationServer.instance = new TUIConversationServer(); } return TUIConversationServer.instance; } getOnCallParams(method) { return this.onCallParamsMap.get(method); } getOnCallCallback(method) { return this.onCallCallbackMap.get(method); } onCall(method, params, callback) { this.onCallParamsMap.set(method, params); this.onCallCallbackMap.set(method, callback); switch (method) { case common_vendor.E.TUIConversation.SERVICE.METHOD.CREATE_CONVERSATION: this.createConversation(params); break; case common_vendor.E.TUIConversation.SERVICE.METHOD.HIDE_CONVERSATION_HEADER: this.hideConversationHeader(); break; } } onGetExtension(extensionID) { if (extensionID === common_vendor.E.TUISearch.EXTENSION.SEARCH_MORE.EXT_ID) { const list = [ { weight: 100, icon: common_assets.C2C, text: common_vendor.Jt.t("TUIConversation.发起单聊"), data: { name: TUIKit_constant.CONV_CREATE_TYPE.TYPEC2C }, listener: { onClicked: this.createConversation.bind(this) } }, { weight: 100, icon: common_assets.createGroup, text: common_vendor.Jt.t("TUIConversation.发起群聊"), data: { name: TUIKit_constant.CONV_CREATE_TYPE.TYPEGROUP }, listener: { onClicked: this.createConversation.bind(this) } } ]; return list; } } createConversation(item) { common_vendor.R.callService({ serviceName: common_vendor.E.TUIContact.SERVICE.NAME, method: common_vendor.E.TUIContact.SERVICE.METHOD.SELECT_FRIEND, params: { title: item.text, isRadio: item.data.name !== TUIKit_constant.CONV_CREATE_TYPE.TYPEGROUP, isNeedSearch: !common_vendor.zt.getData(common_vendor.o.APP, "isOfficial") }, callback: async (memberList) => { if (!memberList || memberList.length === 0) { return this.routerForward(null); } if (item.data.name === TUIKit_constant.CONV_CREATE_TYPE.TYPEGROUP) { this.createGroup(memberList); } else { const { userID } = memberList[0]; await this.generateConversation(`C2C${userID}`); this.routerForward(`C2C${userID}`); } } }); } createGroup(memberList) { common_vendor.R.callService({ serviceName: common_vendor.E.TUIGroup.SERVICE.NAME, method: common_vendor.E.TUIGroup.SERVICE.METHOD.CREATE_GROUP, params: { title: common_vendor.Jt.t("TUIConversation.发起群聊"), memberList }, callback: async (group) => { let conversationID = null; if (group) { const { groupID } = group; await this.generateConversation(`GROUP${groupID}`); conversationID = `GROUP${groupID}`; } this.routerForward(conversationID); } }); } async routerForward(conversationID) { var _a, _b; if (TUIKit_utils_env.isUniFrameWork) { await ((_a = common_vendor.i) == null ? void 0 : _a.reLaunch({ url: "/TUIKit/components/TUIConversation/index" })); if (conversationID) { (_b = common_vendor.i) == null ? void 0 : _b.navigateTo({ url: "/TUIKit/components/TUIChat/index" }); } } } generateConversation(conversationID) { common_vendor.Wt.switchConversation(conversationID).then(() => { if (conversationID.startsWith("GROUP")) { TUIKit_utils_enableSampleTaskStatus.enableSampleTaskStatus("groupChat"); } console.warn("打开会话成功"); }).catch((err) => { console.warn("打开会话失败", err.code, err.msg); }); } } exports.TUIConversationServer = TUIConversationServer;