import React, { useState, useEffect } from 'react' import styled from 'styled-components' import Layout from '../shared/components/Layout' import Loader from '../shared/components/Loader' import VideoPlayerComponent from '../shared/components/VideoPlayer' import { Livestream } from '../models' import { fetchLivestreamsWithThumbnail } from '../shared/api/live-fetch' type VideoPlayerProps = { source: string } const VideoPlayer = ({ source }: VideoPlayerProps) => { const videoJsOptions = { autoplay: false, controls: true, sources: [ { src: `${source}`, type: 'application/x-mpegURL', }, ], } return } const Container = styled.div` display: flex; flex-direction: column; align-items: stretch; ` const LivestreamContainer = styled.div` display: flex; flex-direction: column; align-items: stretch; ` const Message = styled.div` font-size: 2em; text-align: center; ` const LivestreamTitle = styled.h1` font-size: 2em; margin: 50px 0 10px 30px; ` const LivestreamDescription = styled.h2` font-size: 1.3em; margin: 20px 0 50px 30px; ` const LivestreamManagement = () => { const [livestream, setLivestream] = useState(null) const [loading, setLoading] = useState(false) useEffect(() => { ;(async () => { setLoading(true) try { console.log('je lance') const { data } = await fetchLivestreamsWithThumbnail() console.log({ data }) if ( !data || !data.listLivestreams || !data.listLivestreams.items || data.listLivestreams.items.length === 0 ) return setLivestream(data.listLivestreams.items[0] as Livestream) } catch (error) { console.error('livestream/index.tsx(fetchLivestream):', error) } setLoading(false) })() }, []) return ( {loading ? ( ) : ( {livestream && livestream.isLive ? ( {livestream.media?.title} {livestream.media?.description} ) : ( Livestream has not started )} )} ) } export default LivestreamManagement