This commit is contained in:
the-djmaze 2022-02-22 17:21:08 +01:00
parent 13980c4ee3
commit 60b7f61e42

View file

@ -701,42 +701,29 @@ class ComposePopupView extends AbstractViewPopup {
} }
findIdentityByMessage(composeType, message) { findIdentityByMessage(composeType, message) {
let resultIndex = 1000, let resultIdentity = null;
resultIdentity = null; const find = addresses => {
const identities = IdentityUserStore(), addresses = addresses.map(item => item.email);
identitiesCache = {}, return IdentityUserStore.find(item => addresses.includes(item.email()));
fEachHelper = (item) => { };
if (item && item.email && identitiesCache[item.email]) {
if (!resultIdentity || resultIndex > identitiesCache[item.email][1]) {
resultIdentity = identitiesCache[item.email][0];
resultIndex = identitiesCache[item.email][1];
}
}
};
identities.forEach((item, index) => identitiesCache[item.email()] = [item, index]);
if (message) { if (message) {
switch (composeType) { switch (composeType) {
case ComposeType.Empty:
break;
case ComposeType.Reply: case ComposeType.Reply:
case ComposeType.ReplyAll: case ComposeType.ReplyAll:
case ComposeType.Forward: case ComposeType.Forward:
case ComposeType.ForwardAsAttachment: case ComposeType.ForwardAsAttachment:
message.to.concat(message.cc, message.bcc).forEach(fEachHelper); resultIdentity = find(message.to.concat(message.cc, message.bcc))/* || find(message.deliveredTo)*/;
if (!resultIdentity) {
message.deliveredTo.forEach(fEachHelper);
}
break; break;
case ComposeType.Draft: case ComposeType.Draft:
message.from.concat(message.replyTo).forEach(fEachHelper); resultIdentity = find(message.from.concat(message.replyTo));
break; break;
// no default // no default
// case ComposeType.Empty:
} }
} }
return resultIdentity || identities[0] || null; return resultIdentity || IdentityUserStore()[0] || null;
} }
selectIdentity(identity) { selectIdentity(identity) {