|
| 1 | +import React from "react"; |
| 2 | +import { connect } from "react-redux"; |
| 3 | +import Todo from "./Todo"; |
| 4 | +// import { getTodos } from "../redux/selectors"; |
| 5 | +import { getTodosByVisibilityFilter } from "../redux/selectors"; |
| 6 | +import { VISIBILITY_FILTERS } from "../constants"; |
| 7 | + |
| 8 | +const TodoList = ({ todos }) => ( |
| 9 | + <ul className="todo-list"> |
| 10 | + {todos && todos.length |
| 11 | + ? todos.map((todo, index) => { |
| 12 | + return <Todo key={`todo-${todo.id}`} todo={todo} />; |
| 13 | + }) |
| 14 | + : "No todos, yay!"} |
| 15 | + </ul> |
| 16 | +); |
| 17 | + |
| 18 | +// const mapStateToProps = state => { |
| 19 | +// const { byIds, allIds } = state.todos || {}; |
| 20 | +// const todos = |
| 21 | +// allIds && state.todos.allIds.length |
| 22 | +// ? allIds.map(id => (byIds ? { ...byIds[id], id } : null)) |
| 23 | +// : null; |
| 24 | +// return { todos }; |
| 25 | +// }; |
| 26 | + |
| 27 | +const mapStateToProps = state => { |
| 28 | + const { visibilityFilter } = state; |
| 29 | + const todos = getTodosByVisibilityFilter(state, visibilityFilter); |
| 30 | + return { todos }; |
| 31 | + // const allTodos = getTodos(state); |
| 32 | + // return { |
| 33 | + // todos: |
| 34 | + // visibilityFilter === VISIBILITY_FILTERS.ALL |
| 35 | + // ? allTodos |
| 36 | + // : visibilityFilter === VISIBILITY_FILTERS.COMPLETED |
| 37 | + // ? allTodos.filter(todo => todo.completed) |
| 38 | + // : allTodos.filter(todo => !todo.completed) |
| 39 | + // }; |
| 40 | +}; |
| 41 | +// export default TodoList; |
| 42 | +export default connect(mapStateToProps)(TodoList); |
0 commit comments