         viewData.producer
             // TODO: isEqual
             .observe(on: UIScheduler())
-            .startWithValues { [weak self] (viewData: PageViewData) in
+            .startWithValues { [weak self] (viewData: ViewData) in
                 switch viewData {
                 case .unloaded:
                     break

import ReactiveCocoa
import Result

enum PageViewData {
    case unloaded
    case loading
    case loaded([LiveVideoInfo])
    case empty
    case failed(NSError)
}

enum UserPlayState {
    case pause
    case play


final class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
    
    enum ViewData {
        case unloaded
        case loading
        case loaded([LiveVideoInfo])
        case empty
        case failed(NSError)
    }
    
    let channelId: String
    let sessionConfig: SessionConfig
    let client: XCDYouTubeClient
    
    let viewData: Property<ViewData>
    let userPlayState = MutableProperty(UserPlayState.play)
    
    let fetchAction: Action<(), LiveVideosSearchResult, NSError>
