import * as React from 'react';
import { suggestions } from './data/suggestions';
import { AppDataStore } from './data/AppDataStore';
import { Link } from 'react-router-dom';
import { Talk } from './data/Document';
import {
SingleNumber,
databind,
ResultsLayout,
SearchBox,
CheckFacet,
RadioFacet,
DropdownFacet,
TagFacet,
ToggleFacet,
ResultsList,
Pagination,
PaginationData
} from 'solrkit';
const dataStore = new AppDataStore('talks');
function embedUrl(url: String) {
return (
'https://www.youtube.com/embed/' +
url.replace(/.*v=/, '') +
'?modestbranding=true&autoplay=1'
);
}
function thumbnailUrl(url: string) {
return (
'http://img.youtube.com/vi/' +
url.replace(/.*v=/, '') +
'/mqdefault.jpg'
);
}
class VideoThumbnail extends React.Component<{url_s: string}, {on: boolean}> {
private img: HTMLImageElement | null;
constructor() {
super();
this.state = { on : false };
this.open = this.open.bind(this);
}
open() {
this.setState( { on: true });
}
render() {
return this.state.on ? (
) : (
this.img = img}
onClick={this.open}
src={thumbnailUrl(this.props.url_s)}
/>
);
}
}
class SearchPageApp extends React.Component<{query: string}, {}> {
static dataStore = dataStore;
private left: () => JSX.Element;
private right: () => JSX.Element;
private header: () => JSX.Element;
private footer: () => JSX.Element;
private rightRail: () => JSX.Element;
constructor() {
super();
this.left =
databind(
dataStore.talks.registerFacet(['features_ss']),
dataStore.talks,
(data: [string, number, boolean][]) => (