mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Resolve #203
This commit is contained in:
parent
13980c4ee3
commit
60b7f61e42
1 changed files with 9 additions and 22 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue