//
//  VideoFeedManager.swift
//  react-native-firework-sdk
//
//  Created by Jeff Zheng on 2021/12/22.
//
//  The FWVideoFeedManager manipulate FWVideoFeed view,need expose to JavaScript in Objective-C

import FireworkVideo
import Foundation

@objc(FWVideoFeedManager)
class FWVideoFeedManager: RCTViewManager, VideoFeedDelegate {

    override func view() -> UIView! {
        _ = FWSAppLanguageManager.shared
        let videFeed = VideoFeed()
        videFeed.delegate = self

        return videFeed
    }

    override class func requiresMainQueueSetup() -> Bool {
        return true
    }

    override var methodQueue: DispatchQueue {
        return DispatchQueue.main
    }

    // MARK: - FWVideoFeedViewDelegate
    func videoFeedDidLoadFeed(_ view: VideoFeed) {
        view.onVideoFeedLoadFinished?(nil)
    }

    func videoFeed(_ view: VideoFeed, didFailToLoadFeed error: VideoFeedError) {
        if case .contentSourceError(let feedContentSourceError) = error,
           case .emptyFeed = feedContentSourceError {
            view.onVideoFeedEmpty?(nil)
        } else {
            view.onVideoFeedLoadFinished?(error.jsObject)
        }
    }
}
