Slide 27
Slide 27 text
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ
©2018 Wantedly, Inc.
// ProjectCellReactor
func transform(mutation: Observable) -> Observable {
let projectId = currentState.projectId
let fromProjectEvent = ProjectEvent.stream
.flatMap { event -> Observable in
switch event {
case let .updateBookmarking(id, isBookmarking):
return id == projectId ? .just(.setBookmarking(isBookmarking)) : .empty()
}
}
return Observable.merge(mutation, fromProjectEvent)
}
func reduce(state: State, mutation: Mutation) -> State {
var state = state
switch mutation {
case let .setBookmarking(isBookmarking):
state.isBookmarking = isBookmarking
}
return state
}