import TUICore, {
  TUIConstants,
} from '@tencentcloud/tui-core';
import {
  TUIStore,
  StoreName,
} from '@tencentcloud/chat-uikit-engine';
export default class TUIEmojiPluginServer {
  static instance: TUIEmojiPluginServer;
  constructor() {
    // 注册表情插件
    TUICore.registerService(TUIConstants.TUIEmojiPlugin.SERVICE.NAME, this);
    // 注册扩展
    TUICore.registerExtension(TUIConstants.TUIChat.EXTENSION.MSG_POP_MENU.EXT_ID, this);
  }

  static getInstance() {
    if (!TUIEmojiPluginServer.instance) {
      TUIEmojiPluginServer.instance = new TUIEmojiPluginServer();
    }
    return TUIEmojiPluginServer.instance;
  }

  public onCall(method: string) {
    if (method === TUIConstants.TUIEmojiPlugin.SERVICE.METHOD.CLOSE_EMOJI_DETAIL) {
      TUIStore.update(StoreName.CUSTOM, 'selectedReactionMessageID', '');
    }
  }

  public onGetExtension(
    extensionID: string,
    params: any,
  ): any[] {
    const list: any[] = [];
    switch (extensionID) {
      case TUIConstants.TUIChat.EXTENSION.MSG_POP_MENU.EXT_ID:
        if (params?.enabledEmojiPlugin) {
          list.push({
            icon: '',
            text: 'TUIEmojiPlugin',
            listener: {},
            weight: 0,
            data: {},
          });
        }
        break;
    }
    return list;
  }
}
