//
//  StoryBlockManager.swift
//  react-native-firework-sdk
//
//  Created by linjie jiang on 2022/8/11.
//

import FireworkVideo
import Foundation

@objc(FWStoryBlockManager)
class FWStoryBlockManager: RCTViewManager, StoryBlockViewDelegate {
    override func view() -> UIView! {
        _ = FWSAppLanguageManager.shared
        let storyBlock = StoryBlock()
        storyBlock.delegate = self

        return storyBlock
    }

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

    override var methodQueue: DispatchQueue {
        return DispatchQueue.main
    }

    func storyBlockDidLoadFeed(_ view: StoryBlock) {
        view.onStoryBlockLoadFinished?(nil)
    }

    func storyBlock(_ view: StoryBlock, didFailToLoadFeed error: StoryBlockError) {
        if case let .contentSourceError(feedContentSourceError) = error,
           case .emptyFeed = feedContentSourceError {
            view.onStoryBlockEmpty?(nil)
        } else {
            view.onStoryBlockLoadFinished?(error.jsObject)
        }
    }
}
