Improved handling of visible folders

This commit is contained in:
the-djmaze 2024-02-11 15:03:19 +01:00
parent 7ca5991041
commit 6c144b5a28
3 changed files with 9 additions and 8 deletions

View file

@ -254,6 +254,10 @@ export class FolderCollectionModel extends AbstractCollectionModel
return result;
}
visible() {
return this.filter(folder => folder.visible());
}
storeIt() {
FolderUserStore.displaySpecSetting(Settings.app('folderSpecLimit') < this.CountRec);
@ -387,6 +391,7 @@ export class FolderModel extends AbstractModel {
// isSubscribed: () => this.attributes().includes('\\subscribed'),
hasVisibleSubfolders: () => !!this.subFolders().find(folder => folder.visible()),
visibleSubfolders: () => this.subFolders().visible(),
hasSubscriptions: () => this.isSubscribed() | !!this.subFolders().find(
oFolder => {

View file

@ -43,10 +43,8 @@ export class MailFolderList extends AbstractViewLeft {
foldersFilterVisible: () => 20 < FolderUserStore.folderList().CountRec,
folderListVisible: () => {
let result = FolderUserStore.folderList().filter(folder => folder.visible());
// https://github.com/the-djmaze/snappymail/issues/1427
// result.sort((a, b) => a.unreadEmails ? (b.unreadEmails ? 0 : -1) : (b.unreadEmails ? 1 : 0));
return 1 === result.length && result[0].isInbox() ? result[0].subFolders() : result;
let result = FolderUserStore.folderList().visible();
return 1 === result.length && result[0].isInbox() ? result[0].visibleSubfolders() : result;
}
});
}

View file

@ -1,4 +1,3 @@
<!-- ko if: visible -->
<li>
<a data-bind="dropmessages: $data,
css: { 'selected': selected() && !isSystemFolder(), 'system': isSystemFolder, 'selectable': canBeSelected, 'unread-sub': hasSubscribedUnreadMessagesSubfolders, 'anim-action-class': actionBlink },
@ -6,8 +5,7 @@
<i data-bind="css: collapsedCss()"></i>
<!-- ko text: name --><!-- /ko -->
</a>
<!-- ko if: subFolders().length -->
<ul data-bind="template: { name: 'MailFolderListItem', foreach: subFolders }, css: { 'collapsed': collapsed() }"></ul>
<!-- ko if: hasVisibleSubfolders -->
<ul data-bind="template: { name: 'MailFolderListItem', foreach: visibleSubfolders }, css: { 'collapsed': collapsed() }"></ul>
<!-- /ko -->
</li>
<!-- /ko -->