converting to object todos

This commit is contained in:
Micah Godbolt
2019-02-14 14:37:02 -08:00
parent 41a79e8883
commit ffc96d555e
13 changed files with 178 additions and 148 deletions

View File

@@ -3,25 +3,17 @@ import { TodoListItem } from './TodoListItem';
export class TodoList extends React.Component<any, any> {
render() {
const { filter, todos, onTodoToggle } = this.props;
let filteredTodos: typeof todos = {};
const { filter, todos, complete } = this.props;
filteredTodos = todos.filter(todo => {
const matchesActive = filter == 'active' && !todo.completed;
const matchesCompleted = filter == 'completed' && todo.completed;
return filter == 'all' || matchesActive || matchesCompleted;
})
const TodoListItems = filteredTodos.map((todo) => {
return (
<TodoListItem key={todo.id} onTodoToggle={onTodoToggle} {...todo} />
);
})
const filteredTodos = Object.keys(todos).filter(id => {
return filter === 'all' || (filter === 'completed' && todos[id].completed) || (filter === 'active' && !todos[id].completed);
});
return (
<ul className="todos">
{TodoListItems}
{filteredTodos.map(id => (
<TodoListItem key={id} id={id} {...todos[id]} complete={complete} />
))}
</ul>
);
}