mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 20:49:20 +03:00
Cleanup calls to Knockout observableArray
Improved Knockout observableArray
This commit is contained in:
parent
fa5476e486
commit
b6f0b634fb
47 changed files with 251 additions and 276 deletions
|
|
@ -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(() => {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class AppUserStore {
|
|||
}
|
||||
});
|
||||
|
||||
this.attachmentsActions = ko.observableArray([]);
|
||||
this.attachmentsActions = ko.observableArray();
|
||||
|
||||
this.devEmail = '';
|
||||
this.devPassword = '';
|
||||
|
|
|
|||
|
|
@ -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 });
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 &&
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue