Cleanup createCommand()

This commit is contained in:
djmaze 2021-12-31 13:50:33 +01:00
parent 954de06f86
commit a15454fd15

View file

@ -259,23 +259,15 @@ export const
* @param {(Function|boolean|null)=} fCanExecute = true * @param {(Function|boolean|null)=} fCanExecute = true
* @returns {Function} * @returns {Function}
*/ */
createCommand = (fExecute, fCanExecute = true) => { createCommand = (fExecute, fCanExecute) => {
let fResult = fExecute let fResult = () => {
? (...args) => { fResult.canExecute() && fExecute.call(null);
if (fResult && fResult.canExecute && fResult.canExecute()) {
fExecute.apply(null, args);
}
return false; return false;
} : ()=>0; };
fResult.enabled = ko.observable(true); fResult.enabled = ko.observable(true);
fResult.isCommand = true; fResult.canExecute = isFunction(fCanExecute)
? koComputable(() => fResult.enabled() && fCanExecute())
if (isFunction(fCanExecute)) { : fResult.enabled;
fResult.canExecute = koComputable(() => fResult && fResult.enabled() && fCanExecute.call(null));
} else {
fResult.canExecute = koComputable(() => fResult && fResult.enabled() && !!fCanExecute);
}
return fResult; return fResult;
}, },
@ -350,11 +342,10 @@ export const
fn = (...args) => fn.enabled() && fn.canExecute() && command.apply(thisArg, args); fn = (...args) => fn.enabled() && fn.canExecute() && command.apply(thisArg, args);
// fn.__realCanExecute = canExecute; // fn.__realCanExecute = canExecute;
// fn.isCommand = true;
fn.enabled = ko.observable(true); fn.enabled = ko.observable(true);
fn.canExecute = (typeof canExecute === 'function') fn.canExecute = isFunction(canExecute)
? koComputable(() => fn.enabled() && canExecute.call(thisArg, thisArg)) ? koComputable(() => fn.enabled() && canExecute.call(thisArg, thisArg))
: koComputable(() => fn.enabled()); : koComputable(() => fn.enabled());