Slide 52
Slide 52 text
EpisodeViewStream.Logic.bind(from:)
dependency.inputObservable(for: \.episodeID)
.subscribe(onNext: { id in fetchEpisodeAction.execute(id) })
.disposed(by: disposeBag)
dependency.inputObservable(for: \.didTapMyvideoButton)
.withLatestFrom(episode) { $1 }
.map { Myvideo(from: $0) }
.subscribe(onNext: { myvideo in
if isMyvideo.value {
myvideoLogicStream.input.accept(myvideo.id, for: \.removeMyvideo)
} else {
myvideoLogicStream.input.accept(myvideo, for: \.addMyvideo)
}
})
.disposed(by: disposeBag)
myvideoStore.allMyvideo.asObservable()
.withLatestFrom(episode) { ($0, $1) }
.map { (myvideos, episode) in myvideos.contains(episode) }
.bind(to: isMyvideo)
.disposed(by: disposeBag)
52