import { action } from 'redux-app';
import { TodoState } from './todo';

export class TodoListState {

    public todos: TodoState[] = [];

    @action
    public addTodo(text: string): void {
        this.todos = this.todos.concat([new TodoState(text)]);
    }

    @action
    public toggleTodo(id: number): void {
        this.todos = this.todos.map(todo => {
            if (todo.id === id) {
                return { 
                    ...todo, 
                    completed: !todo.completed 
                };
            } else {
                return todo;
            }
        });
    }
}