Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / src / components / presets / Video / renderProps.tsx
Size: Mime:
import React from 'react'
import { omit } from '@skava/modules/___dist/utils/omit'
import { VideoPlayer as Video } from 'atoms/Video'
import VideoControls from './VideoControls'
import { VideoPresetProps, VideoPresetControlProps, VideoPresetStateType } from './typings'

// oppositeOfOmit
function keep(props: Object, keysToKeep: Array<String>) {
  const obj = {}
  keysToKeep.forEach((key: string) => {
    obj[key] = props[key]
  })
  return obj
}

const CONTROL_PROPS = Object.freeze(['state', 'videoLength', 'title', 'slogan', 'shareTitle'])
const VIDEO_PROPS = Object.freeze(['state', 'thumbnailImage', 'autoPlay', 'loop', 'preload', 'controls'])
export function defaultRenderControls(props: VideoPresetControlProps, state: VideoPresetStateType) {
  console.debug('[Video] defaultRenderControls')

  const controlProps = keep(props, CONTROL_PROPS)
  return <VideoControls {...controlProps} state={state} />
}

export function defaultRenderVideo(props: VideoPresetProps, state: VideoPresetStateType) {
  const { mp4Source, ...remainingProps } = props
  const strippedProps = omit(remainingProps, CONTROL_PROPS)

  const videoProps = {
    ...strippedProps,
  }

  console.debug('[Video] defaultRenderVideo')
  console.dir(videoProps)

  return <Video {...videoProps} />
}