Speedup listChecked().length to hasChecked()

This commit is contained in:
the-djmaze 2022-09-09 10:02:40 +02:00
parent 7ec3d70c60
commit 47a861a243
8 changed files with 28 additions and 20 deletions

View file

@ -1,7 +1,7 @@
import ko from 'ko';
import { SettingsGet } from 'Common/Globals';
import { pInt } from 'Common/Utils';
import { addObservablesTo, koArrayWithDestroy } from 'External/ko';
import { koComputable, addObservablesTo, koArrayWithDestroy } from 'External/ko';
import Remote from 'Remote/User/Fetch';
export const ContactUserStore = koArrayWithDestroy();
@ -18,6 +18,12 @@ addObservablesTo(ContactUserStore, {
syncPass: ''
});
// Also used by Selector
ContactUserStore.hasChecked = koComputable(
// Issue: not all are observed?
() => !!ContactUserStore.find(item => item.checked())
);
/**
* @param {Function} fResultFunc
* @returns {void}

View file

@ -120,18 +120,21 @@ addComputablesTo(MessagelistUserStore, {
});
MessagelistUserStore.listChecked = koComputable(
() => MessagelistUserStore.filter(isChecked)).extend({ rateLimit: 0 }
);
() => MessagelistUserStore.filter(isChecked)
).extend({ rateLimit: 0 });
MessagelistUserStore.hasCheckedMessages = koComputable(
// Also used by Selector
MessagelistUserStore.hasChecked = koComputable(
// Issue: not all are observed?
() => !!MessagelistUserStore.find(isChecked)
).extend({ rateLimit: 0 });
MessagelistUserStore.hasCheckedOrSelected = koComputable(() =>
!!(MessagelistUserStore.selectedMessage()
|| MessagelistUserStore.focusedMessage()
|| MessagelistUserStore.find(item => item.checked()))
).extend({ rateLimit: 50 });
!!(MessagelistUserStore.selectedMessage()
| MessagelistUserStore.focusedMessage()
// Issue: not all are observed?
| MessagelistUserStore.find(isChecked))
).extend({ rateLimit: 50 });
MessagelistUserStore.notifyNewMessages = (folder, newMessages) => {
if (getFolderInboxName() === folder && arrayLength(newMessages)) {