This commit is contained in:
the-djmaze 2022-11-22 15:26:16 +01:00
parent bf6b30c971
commit 274ebd6855

View file

@ -347,7 +347,7 @@ MessagelistUserStore.removeMessagesFromList = (
fromFolderFullName, oUids, toFolderFullName = '', copy = false fromFolderFullName, oUids, toFolderFullName = '', copy = false
) => { ) => {
let unseenCount = 0, let unseenCount = 0,
messageList = MessagelistUserStore, setPage = 0,
currentMessage = MessageUserStore.message(); currentMessage = MessageUserStore.message();
const trashFolder = FolderUserStore.trashFolder(), const trashFolder = FolderUserStore.trashFolder(),
@ -356,7 +356,7 @@ MessagelistUserStore.removeMessagesFromList = (
toFolder = toFolderFullName ? getFolderFromCacheList(toFolderFullName) : null, toFolder = toFolderFullName ? getFolderFromCacheList(toFolderFullName) : null,
messages = messages =
FolderUserStore.currentFolderFullName() === fromFolderFullName FolderUserStore.currentFolderFullName() === fromFolderFullName
? messageList.filter(item => item && oUids.has(item.uid)) ? MessagelistUserStore.filter(item => item && oUids.has(item.uid))
: []; : [];
messages.forEach(item => item?.isUnseen() && ++unseenCount); messages.forEach(item => item?.isUnseen() && ++unseenCount);
@ -406,47 +406,47 @@ MessagelistUserStore.removeMessagesFromList = (
item.deleted(true); item.deleted(true);
}); });
setTimeout(() => messages.forEach(item => messageList.remove(item)), 350); setTimeout(() => messages.forEach(item => MessagelistUserStore.remove(item)), 350);
const
count = MessagelistUserStore.count() - messages.length,
page = MessagelistUserStore.page();
MessagelistUserStore.count(count);
if (page > MessagelistUserStore.pageCount()) {
setPage = MessagelistUserStore.pageCount();
}
} }
} }
if (MessagelistUserStore.threadUid()) { if (MessagelistUserStore.threadUid()
if ( && MessagelistUserStore.length
messageList.length && && MessagelistUserStore.find(item => item?.deleted() && item.uid == MessagelistUserStore.threadUid())
messageList.find(item => item?.deleted() && item.uid == MessagelistUserStore.threadUid())
) { ) {
const message = messageList.find(item => item && !item.deleted()); const message = MessagelistUserStore.find(item => item && !item.deleted());
let setHash;
if (!message) { if (!message) {
if (1 < MessagelistUserStore.page()) { if (1 < MessagelistUserStore.page()) {
MessagelistUserStore.page(MessagelistUserStore.page() - 1); setPage = MessagelistUserStore.page() - 1;
setHash = 1;
} else { } else {
MessagelistUserStore.threadUid(0); MessagelistUserStore.threadUid(0);
replaceHash( setPage = MessagelistUserStore.pageBeforeThread();
mailBox(
FolderUserStore.currentFolderFullNameHash(),
MessagelistUserStore.pageBeforeThread(),
MessagelistUserStore.listSearch()
)
);
} }
} else if (MessagelistUserStore.threadUid() != message.uid) { } else if (MessagelistUserStore.threadUid() != message.uid) {
MessagelistUserStore.threadUid(message.uid); MessagelistUserStore.threadUid(message.uid);
setHash = 1; setPage = MessagelistUserStore.page();
} }
if (setHash) { }
if (setPage) {
MessagelistUserStore.page(setPage);
replaceHash( replaceHash(
mailBox( mailBox(
FolderUserStore.currentFolderFullNameHash(), FolderUserStore.currentFolderFullNameHash(),
MessagelistUserStore.page(), setPage,
MessagelistUserStore.listSearch(), MessagelistUserStore.listSearch(),
MessagelistUserStore.threadUid() MessagelistUserStore.threadUid()
) )
); );
} }
}
}
}, },
MessagelistUserStore.reloadFlagsAndCachedMessage = () => { MessagelistUserStore.reloadFlagsAndCachedMessage = () => {