mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-02 05:59:21 +03:00
Added ko toggle bindingHandler
This commit is contained in:
parent
17cb093b32
commit
ec5d570ac6
4 changed files with 25 additions and 16 deletions
17
dev/External/ko.js
vendored
17
dev/External/ko.js
vendored
|
|
@ -28,6 +28,11 @@ export const
|
|||
|
||||
dispose = disposable => isFunction(disposable?.dispose) && disposable.dispose(),
|
||||
|
||||
onEvent = (element, event, fn) => {
|
||||
element.addEventListener(event, fn);
|
||||
ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener(event, fn));
|
||||
},
|
||||
|
||||
onKey = (key, element, fValueAccessor, fAllBindings, model) => {
|
||||
let fn = event => {
|
||||
if (key == event.key) {
|
||||
|
|
@ -36,8 +41,7 @@ export const
|
|||
fValueAccessor().call(model);
|
||||
}
|
||||
};
|
||||
element.addEventListener('keydown', fn);
|
||||
ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener('keydown', fn));
|
||||
onEvent(element, 'keydown', fn);
|
||||
},
|
||||
|
||||
// With this we don't need delegateRunOnDestroy
|
||||
|
|
@ -82,6 +86,15 @@ Object.assign(ko.bindingHandlers, {
|
|||
onKey(' ', element, fValueAccessor, fAllBindings, model)
|
||||
},
|
||||
|
||||
toggle: {
|
||||
init: (element, fValueAccessor) => {
|
||||
let observable = fValueAccessor(),
|
||||
fn = () => observable(!observable());
|
||||
onEvent(element, 'click', fn);
|
||||
onEvent(element, 'keydown', event => ' ' == event.key && fn());
|
||||
}
|
||||
},
|
||||
|
||||
i18nUpdate: {
|
||||
update: (element, fValueAccessor) => {
|
||||
ko.unwrap(fValueAccessor());
|
||||
|
|
|
|||
|
|
@ -92,10 +92,6 @@ export class LoginUserView extends AbstractViewLogin {
|
|||
this.submitError('');
|
||||
}
|
||||
|
||||
toggleSignMe() {
|
||||
this.signMe(!this.signMe());
|
||||
}
|
||||
|
||||
submitCommand(self, event) {
|
||||
const email = this.email().trim();
|
||||
this.email(email);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue