Skip to content

Instantly share code, notes, and snippets.

@artberri
Created May 28, 2019 17:55
Show Gist options
  • Save artberri/9417b6403b747038fc2f8981c0fc42e6 to your computer and use it in GitHub Desktop.
Save artberri/9417b6403b747038fc2f8981c0fc42e6 to your computer and use it in GitHub Desktop.
import { Type, Injector } from '../framework';
import { ITodoUserActions } from './todo.view';
import { TodoPresenter } from '../presenters';
// tslint:disable-next-line:typedef
export function TodoMixin<TBase extends Type>(base: TBase) {
return class extends base implements ITodoUserActions {
public presenter: TodoPresenter = Injector.resolve(TodoPresenter);
public onDoubleClicked(): void {
this.presenter.setEditMode();
}
public onToggleCheckboxClicked(): void {
this.presenter.toggleTodo();
}
public onRemoveButtonClicked(): void {
this.presenter.removeTodo();
}
public onInputBlur(inputContent: string): void {
this.presenter.editTodo(inputContent);
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment