Reduce JavaScript footprint

This commit is contained in:
the-djmaze 2022-10-10 13:52:56 +02:00
parent 689126c57d
commit b12852bd08
42 changed files with 240 additions and 426 deletions

View file

@ -5,7 +5,7 @@ import { i18n } from 'Common/Translator';
import { doc, SettingsGet } from 'Common/Globals';
import { encodeHtml, plainToHtml, cleanHtml } from 'Common/Html';
import { isArray, arrayLength, forEachObjectEntry } from 'Common/Utils';
import { arrayLength, forEachObjectEntry } from 'Common/Utils';
import { serverRequestRaw, proxy } from 'Common/Links';
import { FolderUserStore, isAllowedKeyword } from 'Stores/User/Folder';
@ -32,15 +32,12 @@ const
toggleTag = (message, keyword) => {
const lower = keyword.toLowerCase(),
isSet = message.flags().includes(lower);
flags = message.flags,
isSet = flags.includes(lower);
Remote.request('MessageSetKeyword', iError => {
if (!iError) {
if (isSet) {
message.flags.remove(lower);
} else {
message.flags.push(lower);
}
// MessageFlagsCache.setFor(message.folder, message.uid, message.flags());
isSet ? flags.remove(lower) : flags.push(lower);
// MessageFlagsCache.setFor(message.folder, message.uid, flags());
}
}, {
Folder: message.folder,
@ -56,11 +53,9 @@ const
* @param {Map} localEmails
*/
replyHelper = (emails, unic, localEmails) =>
emails.forEach(email => {
if (!unic[email.email] && !localEmails.has(email.email)) {
localEmails.set(email.email, email);
}
});
emails.forEach(email =>
unic[email.email] || localEmails.has(email.email) || localEmails.set(email.email, email)
);
doc.body.append(hcont);
@ -222,16 +217,6 @@ export class MessageModel extends AbstractModel {
return spam ? i18n(this.isSpam() ? 'GLOBAL/SPAM' : 'GLOBAL/NOT_SPAM') + ': ' + spam : '';
}
/**
* @param {Array} properties
* @returns {Array}
*/
getEmails(properties) {
return properties.reduce((carry, property) => carry.concat(this[property]), []).map(
oItem => oItem ? oItem.email : ''
).validUnique();
}
/**
* @returns {string}
*/
@ -240,9 +225,11 @@ export class MessageModel extends AbstractModel {
}
computeSenderEmail() {
const list = [FolderUserStore.sentFolder(), FolderUserStore.draftsFolder()].includes(this.folder) ? 'to' : 'from';
this.senderEmailsString(this[list].toString(true));
this.senderClearEmailsString(this[list].toStringClear());
const list = this[
[FolderUserStore.sentFolder(), FolderUserStore.draftsFolder()].includes(this.folder) ? 'to' : 'from'
];
this.senderEmailsString(list.toString(true));
this.senderClearEmailsString(list.map(email => email?.email).filter(email => email).join(', '));
}
/**
@ -349,21 +336,6 @@ export class MessageModel extends AbstractModel {
return classes.join(' ');
}
/**
* @return array
* https://datatracker.ietf.org/doc/html/rfc5788
*/
keywords() {
return this.flags().filter(value => '\\' !== value[0]);
}
/**
* @returns {string}
*/
fromAsSingleEmail() {
return (isArray(this.from) && this.from[0]?.email) || '';
}
/**
* @returns {string}
*/
@ -491,7 +463,7 @@ export class MessageModel extends AbstractModel {
* @param {boolean=} print = false
*/
popupMessage() {
this.viewPopupMessage(false);
this.viewPopupMessage();
}
printMessage() {