Skip to content

Instantly share code, notes, and snippets.

@RPallas92
Created December 30, 2017 16:10
Show Gist options
  • Save RPallas92/d4b16f75b207d19a7c3f4d59f4635b39 to your computer and use it in GitHub Desktop.
Save RPallas92/d4b16f75b207d19a7c3f4d59f4635b39 to your computer and use it in GitHub Desktop.
func reduce(state: State, event: Event) -> State {
switch event {
case .addTodo(let todo):
var newState = state
newState.todos = state.todos + [todo]
return newState
case .toggleTodo(let todo):
var newState = state
newState.todos = state.todos.map { t in
var newTodo = t
if(todo.text == t.text) {
newTodo.completed = !t.completed
}
return newTodo
}
return newState
case .setVisibilityFilter(let filter):
var newState = state
newState.visibilityFilter = filter
return newState
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment