cleanup populateMessageBody()

This commit is contained in:
the-djmaze 2022-09-23 15:01:55 +02:00
parent 4277ff95da
commit 705000b46a

View file

@ -252,69 +252,63 @@ setLayoutResizer = (source, target, sClientSideKeyName, mode) =>
} }
}, },
populateMessageBody = (oMessage, preload) => { populateMessageBody = (oMessage, popup) => {
if (oMessage) { if (oMessage) {
preload || MessageUserStore.hideMessageBodies(); popup || MessageUserStore.hideMessageBodies();
preload || MessageUserStore.loading(true); popup || MessageUserStore.loading(true);
Remote.message((iError, oData/*, bCached*/) => { Remote.message((iError, oData/*, bCached*/) => {
if (iError) { if (iError) {
if (Notification.RequestAborted !== iError && !preload) { if (Notification.RequestAborted !== iError && !popup) {
MessageUserStore.message(null); MessageUserStore.message(null);
MessageUserStore.error(getNotification(iError)); MessageUserStore.error(getNotification(iError));
} }
} else { } else {
oMessage = preload ? oMessage : null; let json = oData?.Result;
let
isNew = false,
json = oData?.Result,
message = oMessage || MessageUserStore.message();
if ( if (
json && json &&
MessageModel.validJson(json) && MessageModel.validJson(json) &&
message && oMessage.folder === json.Folder
message.folder === json.Folder
) { ) {
const threads = message.threads(), const threads = oMessage.threads(),
isNew = !popup && oMessage.uid != json.Uid && threads.includes(json.Uid),
messagesDom = MessageUserStore.bodiesDom(); messagesDom = MessageUserStore.bodiesDom();
if (!oMessage && message.uid != json.Uid && threads.includes(json.Uid)) { if (isNew) {
message = MessageModel.reviveFromJson(json); oMessage = MessageModel.reviveFromJson(json);
if (message) { if (oMessage) {
message.threads(threads); oMessage.threads(threads);
MessageFlagsCache.initMessage(message); MessageFlagsCache.initMessage(oMessage);
// Set clone // Set clone
MessageUserStore.message(MessageModel.fromMessageListItem(message)); MessageUserStore.message(MessageModel.fromMessageListItem(oMessage));
message = MessageUserStore.message(); oMessage = MessageUserStore.message();
isNew = true;
} }
} }
if (message && message.uid == json.Uid) { if (oMessage && oMessage.uid == json.Uid) {
oMessage || MessageUserStore.error(''); popup || MessageUserStore.error('');
/* /*
if (bCached) { if (bCached) {
delete json.Flags; delete json.Flags;
} }
*/ */
isNew || message.revivePropertiesFromJson(json); isNew || oMessage.revivePropertiesFromJson(json);
if (messagesDom) { if (messagesDom) {
let id = 'rl-msg-' + message.hash.replace(/[^a-zA-Z0-9]/g, ''), let id = 'rl-msg-' + oMessage.hash.replace(/[^a-zA-Z0-9]/g, ''),
body = elementById(id); body = elementById(id);
if (body) { if (body) {
message.body = body; oMessage.body = body;
message.isHtml(body.classList.contains('html')); oMessage.isHtml(body.classList.contains('html'));
message.hasImages(body.rlHasImages); oMessage.hasImages(body.rlHasImages);
} else { } else {
body = Element.fromHTML('<div id="' + id + '" hidden="" class="b-text-part ' body = Element.fromHTML('<div id="' + id + '" hidden="" class="b-text-part '
+ (message.pgpSigned() ? ' openpgp-signed' : '') + (oMessage.pgpSigned() ? ' openpgp-signed' : '')
+ (message.pgpEncrypted() ? ' openpgp-encrypted' : '') + (oMessage.pgpEncrypted() ? ' openpgp-encrypted' : '')
+ '">' + '">'
+ '</div>'); + '</div>');
message.body = body; oMessage.body = body;
if (!SettingsUserStore.viewHTML() || !message.viewHtml()) { if (!SettingsUserStore.viewHTML() || !oMessage.viewHtml()) {
message.viewPlain(); oMessage.viewPlain();
} }
MessageUserStore.purgeMessageBodyCache(); MessageUserStore.purgeMessageBodyCache();
@ -322,27 +316,27 @@ populateMessageBody = (oMessage, preload) => {
messagesDom.append(body); messagesDom.append(body);
if (!oMessage) { if (!popup) {
MessageUserStore.activeDom(message.body); MessageUserStore.activeDom(body);
MessageUserStore.hideMessageBodies(); MessageUserStore.hideMessageBodies();
message.body.hidden = false; oMessage.body.hidden = false;
} }
oMessage && message.viewPopupMessage(); popup && oMessage.viewPopupMessage();
} }
MessageFlagsCache.initMessage(message); MessageFlagsCache.initMessage(oMessage);
if (message.isUnseen()) { if (oMessage.isUnseen()) {
MessageUserStore.MessageSeenTimer = setTimeout( MessageUserStore.MessageSeenTimer = setTimeout(
() => MessagelistUserStore.setAction(message.folder, MessageSetAction.SetSeen, [message]), () => MessagelistUserStore.setAction(oMessage.folder, MessageSetAction.SetSeen, [oMessage]),
SettingsUserStore.messageReadDelay() * 1000 // seconds SettingsUserStore.messageReadDelay() * 1000 // seconds
); );
} }
if (message && isNew) { if (isNew) {
let selectedMessage = MessagelistUserStore.selectedMessage(); let selectedMessage = MessagelistUserStore.selectedMessage();
if ( if (
selectedMessage && selectedMessage &&
(message.folder !== selectedMessage.folder || message.uid != selectedMessage.uid) (oMessage.folder !== selectedMessage.folder || oMessage.uid != selectedMessage.uid)
) { ) {
MessagelistUserStore.selectedMessage(null); MessagelistUserStore.selectedMessage(null);
if (1 === MessagelistUserStore.length) { if (1 === MessagelistUserStore.length) {
@ -352,8 +346,8 @@ populateMessageBody = (oMessage, preload) => {
selectedMessage = MessagelistUserStore.find( selectedMessage = MessagelistUserStore.find(
subMessage => subMessage =>
subMessage && subMessage &&
subMessage.folder === message.folder && subMessage.folder === oMessage.folder &&
subMessage.uid == message.uid subMessage.uid == oMessage.uid
); );
if (selectedMessage) { if (selectedMessage) {
@ -365,7 +359,7 @@ populateMessageBody = (oMessage, preload) => {
} }
} }
} }
preload || MessageUserStore.loading(false); popup || MessageUserStore.loading(false);
}, oMessage.folder, oMessage.uid); }, oMessage.folder, oMessage.uid);
} }
}; };