import Foundation
import BlazeSDK

class BlazeVideosRowWidget: BlazeWidgetBase<BlazeVideosWidgetRowView> {
    override func didSetProps(_ changedProps: [String]!) {
        widget.widgetIdentifier = "videos-row-\(reactTag.intValue)"
        super.didSetProps(changedProps)
        
        setupPlayerStyle()
        setupPlaybackConfiguration()
    }
    override func createWidget() -> BlazeWidgetView {
        let layout = BlazeWidgetLayout.Presets.VideosWidget.Row.horizontalRectangles // Default layout for row.
        let widget = BlazeVideosWidgetRowView(layout: layout)
        
        return widget
    }
    
    override func parseLayout(from presetWidgetLayout: String?) -> BlazeWidgetLayout {
        guard let layout = presetWidgetLayout?.asWidgetLayoutPreset else {
            // Default.
            return BlazeWidgetLayout.Presets.VideosWidget.Row.horizontalRectangles
        }
        
        return layout
    }
    
    private func setupPlayerStyle() {
        let style = playerStyle.extractPlayerVideosStyle()
        widget.videosPlayerStyle = style
    }

    private func setupPlaybackConfiguration() {
        let configuration = playbackConfiguration.extractVideosPlaybackConfiguration()
        widget.videosPlaybackConfiguration = configuration
    }
}
