fix: 邮件气泡: 点击回复时丢失id

dev/emitter
Lei OT 10 months ago
parent a1197cb584
commit c686b78328

@ -766,7 +766,7 @@ export default function ToolbarPlugin() {
}, [editor]);
return (
<div className='toolbar sticky top-[-10px]' ref={toolbarRef}>
<div className='toolbar sticky top-[-10px] z-10' ref={toolbarRef}>
<button type='button'
disabled={!canUndo}
onClick={() => {

@ -356,7 +356,7 @@ const messageSlice = (set, get) => ({
if (ele.actionId === message.actionId) {
// console.log('actionID', message, ele)
// WABA: 同步返回, 根据actionId 更新消息的id
const toUpdateFields = pick(message, ['id', 'status', 'dateString', 'replyButton', 'coli_id', 'coli_sn']);
const toUpdateFields = pick(message, ['msgOrigin', 'id', 'status', 'dateString', 'replyButton', 'coli_id', 'coli_sn']);
return { ...ele, ...toUpdateFields, status: ele.status === 'read' ? ele.status : message.status, };
} else if (String(ele.id) === String(message.id)) {
// console.log('id', message, ele)

@ -28,8 +28,25 @@ const getAbstract = (longtext) => {
const abstract = firstLine.substring(0, 20);
return abstract;
};
const parseHTMLText = (html) => {
const parser = new DOMParser()
const dom = parser.parseFromString(html, 'text/html')
// Replace <br> and <p> with line breaks
Array.from(dom.body.querySelectorAll('br, p')).forEach(el => {
el.textContent = '\n' + el.textContent;
});
// Replace <hr> with a line of dashes
Array.from(dom.body.querySelectorAll('hr')).forEach(el => {
el.textContent = '\n------------------------------------------------------------------\n';
});
return dom.body.textContent || '';
}
const generateQuoteContent = (mailData, isRichText = true) => {
const html = `<br><hr><p><b><strong >From: </strong></b><span >${((mailData.info?.MAI_From || '').replace(/</g,'&lt;').replace(/>/g,'&gt;'))} </span></p><p><b><strong >Sent: </strong></b><span >${mailData.info?.MAI_SendDate || ''}</span></p><p><b><strong >To: </strong></b><span >${(mailData.info?.MAI_To || '').replace(/</g,'&lt;').replace(/>/g,'&gt;')}</span></p><p><b><strong >Subject: </strong></b><span >${mailData.info?.MAI_Subject || ''}</span></p><p>${mailData.info?.MAI_ContentType === 'text/html' ? mailData.content : mailData.content.replace(/\r\n/g, '<br>')}</p>`
return isRichText ? html : parseHTMLText(html)
};
const generateQuoteContent = (mailData) => `<br><hr><p><b><strong >From: </strong></b><span >${((mailData.info?.MAI_From || '').replace(/</g,'&lt;').replace(/>/g,'&gt;'))} </span></p><p><b><strong >Sent: </strong></b><span >${mailData.info?.MAI_SendDate || ''}</span></p><p><b><strong >To: </strong></b><span >${(mailData.info?.MAI_To || '').replace(/</g,'&lt;').replace(/>/g,'&gt;')}</span></p><p><b><strong >Subject: </strong></b><span >${mailData.info?.MAI_Subject || ''}</span></p><p>${mailData.info?.MAI_ContentType === 'text/html' ? mailData.content : mailData.content.replace(/\r\n/g, '<br>')}</p>`;
const generateMailContent = (mailData) => `<br><br><p>${mailData.content}</p>`
@ -368,8 +385,8 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, fromOrder, oid,
body.coli_sn = emailOrder || '';
// console.log('body', body, '\n', emailOrder);
const values = await form.validateFields();
const preQuoteBody = quoteContent ? quoteContent : generateQuoteContent(mailData);
body.mailcontent = isRichText ? EmailBuilder({ subject: values.subject, content: htmlContent+preQuoteBody }) : textContent // +preQuoteBody
const preQuoteBody = quoteContent ? quoteContent : generateQuoteContent(mailData, isRichText);
body.mailcontent = isRichText ? EmailBuilder({ subject: values.subject, content: htmlContent+preQuoteBody }) : textContent+preQuoteBody
body.cc = values.cc || '';
body.bcc = values.bcc || '';
const msgObj = {

Loading…
Cancel
Save