changed step names

This commit is contained in:
Micah Godbolt
2019-02-14 10:15:39 -08:00
parent d0d6a788e2
commit 41a79e8883
34 changed files with 16 additions and 14 deletions
+11
View File
@@ -0,0 +1,11 @@
import React from "react";
export const TodoFooter = (props: any) => {
const items = props.todos.filter(todo => !todo.completed)
return (
<footer>
<span> {items.length} items left </span>
<button className="button">Clear Completed</button>
</footer>
);
};
+21
View File
@@ -0,0 +1,21 @@
import React from "react";
export class TodoHeader extends React.Component<any, any> {
render() {
const { filter } = this.props;
return (
<div>
<h1>todos</h1>
<input className="textfield" />
<button className="button add">Add</button>
<div className="filter">
<button className={filter == "all" ? "active" : ""}>all</button>
<button className={filter == "active" ? "active" : ""}>active</button>
<button className={filter == "completed" ? "active" : ""}>
completed
</button>
</div>
</div>
);
}
}
+28
View File
@@ -0,0 +1,28 @@
import React from 'react';
import { TodoListItem } from './TodoListItem';
export class TodoList extends React.Component<any, any> {
render() {
const { filter, todos } = this.props;
let filteredTodos: typeof todos = {};
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 {...todo} />
);
})
return (
<ul className="todos">
{TodoListItems}
</ul>
);
}
}
+15
View File
@@ -0,0 +1,15 @@
import React from "react";
export class TodoListItem extends React.Component<any, any> {
render() {
const {text, completed} = this.props;
return (
<li className="todo">
<label>
<input type="checkbox" checked={completed} /> {text}
</label>
</li>
);
}
}