Cleanup calls to Knockout observableArray

Improved Knockout observableArray
This commit is contained in:
djmaze 2021-01-22 12:23:20 +01:00
parent fa5476e486
commit b6f0b634fb
47 changed files with 251 additions and 276 deletions

View file

@ -8,10 +8,10 @@ class AccountUserStore {
signature: ''
});
this.accounts = ko.observableArray([]);
this.accounts = ko.observableArray();
this.accounts.loading = ko.observable(false).extend({ throttle: 100 });
this.getEmailAddresses = () => this.accounts().map(item => item ? item.email : null).filter(v => v);
this.getEmailAddresses = () => this.accounts.map(item => item ? item.email : null).filter(v => v);
this.accountsUnreadCount = ko.computed(() => 0);
// this.accountsUnreadCount = ko.computed(() => {

View file

@ -50,7 +50,7 @@ class AppUserStore {
}
});
this.attachmentsActions = ko.observableArray([]);
this.attachmentsActions = ko.observableArray();
this.devEmail = '';
this.devPassword = '';

View file

@ -2,7 +2,7 @@ import ko from 'ko';
class ContactUserStore {
constructor() {
this.contacts = ko.observableArray([]);
this.contacts = ko.observableArray();
this.contacts.loading = ko.observable(false).extend({ throttle: 200 });
this.contacts.importing = ko.observable(false).extend({ throttle: 200 });
this.contacts.syncing = ko.observable(false).extend({ throttle: 200 });

View file

@ -36,7 +36,7 @@ class FolderUserStore {
this.namespace = '';
this.folderList = ko.observableArray([]);
this.folderList = ko.observableArray();
this.currentFolder = ko.observable(null).extend({ toggleSubscribeProperty: [this, 'selected'] });
@ -47,7 +47,7 @@ class FolderUserStore {
);
this.foldersListWithSingleInboxRootFolder = ko.computed(
() => !this.folderList().find(folder => folder && !folder.isSystemFolder() && folder.visible())
() => !this.folderList.find(folder => folder && !folder.isSystemFolder() && folder.visible())
);
this.currentFolderFullNameRaw = ko.computed(() => (this.currentFolder() ? this.currentFolder().fullNameRaw : ''));
@ -66,14 +66,13 @@ class FolderUserStore {
this.folderListSystemNames = ko.computed(() => {
const list = [getFolderInboxName()],
folders = this.folderList(),
sentFolder = this.sentFolder(),
draftFolder = this.draftFolder(),
spamFolder = this.spamFolder(),
trashFolder = this.trashFolder(),
archiveFolder = this.archiveFolder();
if (Array.isNotEmpty(folders)) {
if (this.folderList.length) {
if (sentFolder && UNUSED_OPTION_VALUE !== sentFolder) {
list.push(sentFolder);
}
@ -178,7 +177,7 @@ class FolderUserStore {
timeouts.push([folder.interval, folder.fullNameRaw]);
}
if (folder && folder.subFolders().length) {
if (folder && folder.subFolders.length) {
fSearchFunction(folder.subFolders());
}
});

View file

@ -2,10 +2,10 @@ import ko from 'ko';
class IdentityUserStore {
constructor() {
this.identities = ko.observableArray([]);
this.identities = ko.observableArray();
this.identities.loading = ko.observable(false).extend({ throttle: 100 });
this.getIDS = () => this.identities().map(item => (item ? item.id() : null)).filter(value => null !== value);
this.getIDS = () => this.identities.map(item => (item ? item.id() : null)).filter(value => null !== value);
}
}

View file

@ -57,7 +57,7 @@ class MessageUserStore {
constructor() {
this.staticMessage = new MessageModel();
this.messageList = ko.observableArray([]).extend({ rateLimit: 0 });
this.messageList = ko.observableArray().extend({ rateLimit: 0 });
ko.addObservablesTo(this, {
messageListCount: 0,
@ -136,7 +136,7 @@ class MessageUserStore {
this.isMessageSelected = ko.computed(() => null !== this.message());
this.messageListChecked = ko
.computed(() => this.messageList().filter(item => item.checked()))
.computed(() => this.messageList.filter(item => item.checked()))
.extend({ rateLimit: 0 });
this.hasCheckedMessages = ko.computed(() => 0 < this.messageListChecked().length).extend({ rateLimit: 0 });
@ -279,7 +279,7 @@ class MessageUserStore {
uidForRemove = uidForRemove.map(mValue => pInt(mValue));
let unseenCount = 0,
messageList = this.messageList(),
messageList = this.messageList,
currentMessage = this.message();
const trashFolder = FolderStore.trashFolder(),
@ -342,7 +342,7 @@ class MessageUserStore {
setTimeout(() => {
messages.forEach(item => {
this.messageList.remove(item);
messageList.remove(item);
});
}, 350);
}
@ -357,10 +357,7 @@ class MessageUserStore {
}
if (this.messageListThreadUid()) {
messageList = this.messageList();
if (
messageList &&
messageList.length &&
!!messageList.find(item => !!(item && item.deleted() && item.uid === this.messageListThreadUid()))
) {
@ -592,11 +589,11 @@ class MessageUserStore {
(message.folder !== selectedMessage.folder || message.uid !== selectedMessage.uid)
) {
this.selectorMessageSelected(null);
if (1 === this.messageList().length) {
if (1 === this.messageList.length) {
this.selectorMessageFocused(null);
}
} else if (!selectedMessage && message) {
selectedMessage = this.messageList().find(
selectedMessage = this.messageList.find(
subMessage =>
subMessage &&
subMessage.folder === message.folder &&

View file

@ -135,11 +135,11 @@ class PgpUserStore {
this.openpgp = null;
this.openpgpkeys = ko.observableArray([]);
this.openpgpkeys = ko.observableArray();
this.openpgpKeyring = null;
this.openpgpkeysPublic = ko.computed(() => this.openpgpkeys().filter(item => item && !item.isPrivate));
this.openpgpkeysPrivate = ko.computed(() => this.openpgpkeys().filter(item => item && item.isPrivate));
this.openpgpkeysPublic = ko.computed(() => this.openpgpkeys.filter(item => item && !item.isPrivate));
this.openpgpkeysPrivate = ko.computed(() => this.openpgpkeys.filter(item => item && item.isPrivate));
}
/**

View file

@ -3,9 +3,9 @@ import ko from 'ko';
class SieveUserStore {
constructor() {
// capabilities
this.capa = ko.observableArray([]);
this.capa = ko.observableArray();
// Sieve scripts SieveScriptModel
this.scripts = ko.observableArray([]);
this.scripts = ko.observableArray();
}
}

View file

@ -4,10 +4,10 @@ import ko from 'ko';
class TemplateUserStore {
constructor() {
this.templates = ko.observableArray([]);
this.templates = ko.observableArray();
this.templates.loading = ko.observable(false).extend({ throttle: 100 });
this.templatesNames = ko.observableArray([]).extend({ throttle: 1000 });
this.templatesNames = ko.observableArray().extend({ throttle: 1000 });
this.templatesNames.skipFirst = true;
this.subscribers();