diff --git a/components/TodoList.js b/components/TodoList.js index d4796cb..2a39ffc 100644 --- a/components/TodoList.js +++ b/components/TodoList.js @@ -1,11 +1,31 @@ import React, { Component, PropTypes } from 'react' import Todo from './Todo' +import { VisibilityFilters } from '../actions' export default class TodoList extends Component { + + shouldComponentUpdate(nextProps, nextState) { + return nextProps.filter !== this.props.filter || nextProps.todos !== this.props.todos; + } + + visibleTodos() { + return function(todos, filter) { + console.log("Recalculating visibleTodos"); + switch (filter) { + case VisibilityFilters.SHOW_ALL: + return todos; + case VisibilityFilters.SHOW_COMPLETED: + return todos.filter(todo => todo.completed) + case VisibilityFilters.SHOW_ACTIVE: + return todos.filter(todo => !todo.completed) + } + }(this.props.todos, this.props.filter); + } + render() { return (