mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 21:14:28 -08:00
31 lines
805 B
JavaScript
31 lines
805 B
JavaScript
|
|
import { connect } from 'react-redux'
|
||
|
|
import { toggleTodo } from '../actions'
|
||
|
|
import TodoList from '../components/TodoList'
|
||
|
|
import { VisibilityFilters } from '../actions'
|
||
|
|
|
||
|
|
const getVisibleTodos = (todos, filter) => {
|
||
|
|
switch (filter) {
|
||
|
|
case VisibilityFilters.SHOW_ALL:
|
||
|
|
return todos
|
||
|
|
case VisibilityFilters.SHOW_COMPLETED:
|
||
|
|
return todos.filter(t => t.completed)
|
||
|
|
case VisibilityFilters.SHOW_ACTIVE:
|
||
|
|
return todos.filter(t => !t.completed)
|
||
|
|
default:
|
||
|
|
throw new Error('Unknown filter: ' + filter)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
const mapStateToProps = state => ({
|
||
|
|
todos: getVisibleTodos(state.todos, state.visibilityFilter)
|
||
|
|
})
|
||
|
|
|
||
|
|
const mapDispatchToProps = dispatch => ({
|
||
|
|
toggleTodo: id => dispatch(toggleTodo(id))
|
||
|
|
})
|
||
|
|
|
||
|
|
export default connect(
|
||
|
|
mapStateToProps,
|
||
|
|
mapDispatchToProps
|
||
|
|
)(TodoList)
|