import {
  requireNativeComponent,
} from 'react-native';

import React, {

} from 'react';

import {
  BlazeBaseRowWidgetViewProps,
  BlazeBaseVideosWidgetViewProps,
  BlazeBaseWidgetViewProps,
  BlazeSdkBaseWidgetViewProps
} from './BlazeBaseWidgetViewProps';

import {
  BlazeBaseWidgetView,
} from './BlazeBaseWidgetComponent';

export interface BlazeVideosRowViewProps
  extends BlazeBaseWidgetViewProps,
  BlazeBaseRowWidgetViewProps,
  BlazeBaseVideosWidgetViewProps {

}

interface BlazeSdkVideosRowViewNativeProps
  extends BlazeVideosRowViewProps,
  BlazeSdkBaseWidgetViewProps {

}

export const BLAZE_VIDEOS_ROW_COMPONENT = 'RTNBlazeVideosRowView';

export class BlazeVideosRowView extends BlazeBaseWidgetView<BlazeVideosRowViewProps> {

  protected getComponentName(): string {
    return BLAZE_VIDEOS_ROW_COMPONENT
  }

  render() {
    return (
      <VideosRowViewManager
        {...this.props}
        {...this.createBaseProps()}
        ref={(ref) => {
          if (ref) this.ref = ref;
        }}
      />
    );
  }
}

const VideosRowViewManager = requireNativeComponent<BlazeSdkVideosRowViewNativeProps>(
  BLAZE_VIDEOS_ROW_COMPONENT,
);