import moduleHelper from './module-helper'; import { formatJsonStr, getListObject, uid } from './utils'; const gameClubButtonList = {}; const typeEnum = { 0: 'text', 1: 'image', }; const iconEnum = { 0: 'green', 1: 'white', 2: 'dark', 3: 'light', }; const getObject = getListObject(gameClubButtonList, 'gameClubButton'); export default { WXCreateGameClubButton(conf) { const config = formatJsonStr(conf); // @ts-ignore config.style = JSON.parse(config.styleRaw); if (config.style.fontSize === 0) { // @ts-ignore config.style.fontSize = undefined; } // @ts-ignore config.type = typeEnum[config.type]; // @ts-ignore config.icon = iconEnum[config.icon]; if (!config.text) { config.text = ''; } const id = uid(); gameClubButtonList[id] = wx.createGameClubButton(config); return id; }, WXGameClubButtonDestroy(id) { const obj = getObject(id); if (!obj) { return; } obj.destroy(); if (gameClubButtonList) { delete gameClubButtonList[id]; } }, WXGameClubButtonHide(id) { const obj = getObject(id); if (!obj) { return; } obj.hide(); }, WXGameClubButtonShow(id) { const obj = getObject(id); if (!obj) { return; } obj.show(); }, WXGameClubButtonAddListener(id, key) { const obj = getObject(id); if (!obj) { return; } obj[key](() => { moduleHelper.send('OnGameClubButtonCallback', JSON.stringify({ callbackId: id, errMsg: key, })); }); }, WXGameClubButtonRemoveListener(id, key) { const obj = getObject(id); if (!obj) { return; } obj[key](); }, WXGameClubButtonSetProperty(id, key, value) { const obj = getObject(id); if (!obj) { return; } obj[key] = value; }, WXGameClubStyleChangeInt(id, key, value) { const obj = getObject(id); if (!obj) { return; } obj.style[key] = value; }, WXGameClubStyleChangeStr(id, key, value) { const obj = getObject(id); if (!obj) { return; } obj.style[key] = value; }, };