import React from 'react'; import style from './Preview.module.css'; import {Spinner} from 'react-bootstrap'; import {Link} from 'react-router-dom'; import GlobalInfos from '../../utils/GlobalInfos'; import {APINode, callAPIPlain} from '../../utils/Api'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faPhotoVideo} from '@fortawesome/free-solid-svg-icons'; interface PreviewProps { name: string; movieId: number; } interface PreviewState { previewpicture: string | null; } /** * Component for single preview tile * floating side by side */ class Preview extends React.Component { constructor(props: PreviewProps) { super(props); this.state = { previewpicture: null }; } componentDidMount(): void { callAPIPlain(APINode.Video, {action: 'readThumbnail', movieid: this.props.movieId}, (result) => { this.setState({ previewpicture: result }); }); } render(): JSX.Element { const themeStyle = GlobalInfos.getThemeStyle(); return (
{this.props.name}
{this.state.previewpicture === '' ? ( ) : this.state.previewpicture === null ? ( ) : ( Pic loading. )}
); } } /** * Component for a Tag-name tile (used in category page) */ export class TagPreview extends React.Component<{name: string}> { render(): JSX.Element { const themeStyle = GlobalInfos.getThemeStyle(); return (
{this.props.name}
); } } export default Preview;