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) {
let resultIndex = 1000,
resultIdentity = null;
const identities = IdentityUserStore(),
identitiesCache = {},
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];
}
}
let resultIdentity = null;
const find = addresses => {
addresses = addresses.map(item => item.email);
return IdentityUserStore.find(item => addresses.includes(item.email()));
};
identities.forEach((item, index) => identitiesCache[item.email()] = [item, index]);
if (message) {
switch (composeType) {
case ComposeType.Empty:
break;
case ComposeType.Reply:
case ComposeType.ReplyAll:
case ComposeType.Forward:
case ComposeType.ForwardAsAttachment:
message.to.concat(message.cc, message.bcc).forEach(fEachHelper);
if (!resultIdentity) {
message.deliveredTo.forEach(fEachHelper);
}
resultIdentity = find(message.to.concat(message.cc, message.bcc))/* || find(message.deliveredTo)*/;
break;
case ComposeType.Draft:
message.from.concat(message.replyTo).forEach(fEachHelper);
resultIdentity = find(message.from.concat(message.replyTo));
break;
// no default
// case ComposeType.Empty:
}
}
return resultIdentity || identities[0] || null;
return resultIdentity || IdentityUserStore()[0] || null;
}
selectIdentity(identity) {