@page "/todo"
@using ToDo.Data
@rendermode InteractiveServer

<h3>Todo (@_todos.Count(t => !t.IsDone))</h3>

<input @bind="_newTodo"/>
<button @onclick="AddTodo">Add todo</button>

<ul>
    @foreach (var todo in _todos)
    {
        <li>
            <input type="checkbox" @bind="todo.IsDone" />
            <input @bind="todo.Title" />
        </li>
    }
</ul>

@code {
    private List<TodoItem> _todos = new List<TodoItem>();
    private string _newTodo = string.Empty;

    private void AddTodo()
    {
        if (string.IsNullOrEmpty(_newTodo))
            return;

        _todos.Add(new TodoItem() { Title = _newTodo });
        _newTodo = string.Empty;
    }
}
