Skip to content

Instantly share code, notes, and snippets.

@atimca
Created June 19, 2020 09:05
Show Gist options
  • Select an option

  • Save atimca/2f41a625b50959878492ab03730f0d0e to your computer and use it in GitHub Desktop.

Select an option

Save atimca/2f41a625b50959878492ab03730f0d0e to your computer and use it in GitHub Desktop.
extension AppEvent {
static func reduce(state: AppState, event: AppEvent) -> AppState {
var state = state
switch event {
case .newUserWasLoaded(let user):
state.user = user
case .newsEvents(let event):
if state.newsState == nil {
state.newsState = NewsState(user: state.user, step: .initial)
}
switch event {
case .dataLoaded(let data):
state.newsState?.step = .loaded(data: data)
case .loadData:
state.newsState?.step = .loading
}
}
return state
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment