import * as React from 'react'; import { AppDataStore } from './data/AppDataStore'; import { Talk, Book } from './data/Document'; import { suggestions } from './data/suggestions'; import { get } from 'lodash'; import { databind, Bound, SearchBox, MoreLikeThis, DetailLayout, PaginationData, SearchParams } from 'solrkit'; function thumbnailUrl(url: string) { return ( 'http://img.youtube.com/vi/' + url.replace(/.*v=/, '') + '/mqdefault.jpg' ); } const PlayIcon = ({selected}: {selected: boolean}) => ( ); const CheckmarkIcon = () => ( ); const Watched = ({id}: {id: string}) => ( (get(localStorage, 'watched' + id, '') + '' === 'true') ? ( ) : null ); class VideoThumbnail extends React.Component< { talk: Talk onClick: () => void }, {hover: boolean}> { constructor() { super(); this.state = { hover: false }; this.onMouseEnter = this.onMouseEnter.bind(this); this.onMouseLeave = this.onMouseLeave.bind(this); } onMouseEnter() { this.setState({hover: true}); } onMouseLeave() { this.setState({hover: false}); } render() { const talk = this.props.talk; return ( ); } } class VideoPlayer extends React.Component { youtubeId(url: String) { return url.replace(/.*v=/, ''); } render() { const url = this.props.url_s; const ytUrl: string | undefined = url ? ( 'https://www.youtube.com/embed/' + this.youtubeId(url) + '?modestbranding=true' ) : undefined; return (