import { emojiMap, emojiUrl } from './emojiMap'; export function decodeText(payload:any) { const renderDom = []; // 文本消息 let temp = payload.text; let left = -1; let right = -1; while (temp !== '') { left = temp.indexOf('['); right = temp.indexOf(']'); switch (left) { case 0: if (right === -1) { renderDom.push({ name: 'text', text: temp, }); temp = ''; } else { const emojiKey = temp.slice(0, right + 1); if (emojiMap[emojiKey]) { renderDom.push({ name: 'img', src: emojiUrl + emojiMap[emojiKey], }); temp = temp.substring(right + 1); } else { renderDom.push({ name: 'text', text: '[', }); temp = temp.slice(1); } } break; case -1: renderDom.push({ name: 'text', text: temp, }); temp = ''; break; default: renderDom.push({ name: 'text', text: temp.slice(0, left), }); temp = temp.substring(left); break; } } return renderDom; };