import React from 'react'; import { defineMessages, useIntl } from 'react-intl'; import Styled from './styles'; import SettingsSingleton from '/imports/ui/services/settings'; import { startWatching, isUrlValid } from './service'; const intlMessages = defineMessages({ start: { id: 'app.externalVideo.start', description: 'Share external video', }, urlError: { id: 'app.externalVideo.urlError', description: 'Not a video URL error', }, input: { id: 'app.externalVideo.input', description: 'Video URL', }, urlInput: { id: 'app.externalVideo.urlInput', description: 'URL input field placeholder', }, title: { id: 'app.externalVideo.title', description: 'Modal title', }, close: { id: 'app.externalVideo.close', description: 'Close', }, note: { id: 'app.externalVideo.noteLabel', description: 'provides hint about Shared External videos', }, }); interface ExternalVideoPlayerModalProps { onRequestClose: () => void, priority: string, setIsOpen: (isOpen: boolean) => void, isOpen: boolean, } const ExternalVideoPlayerModal: React.FC = ({ isOpen, setIsOpen, onRequestClose, priority, }) => { const intl = useIntl(); // @ts-ignore - settings is a js singleton const { animations } = SettingsSingleton.application; const [videoUrl, setVideoUrl] = React.useState(''); const valid = isUrlValid(videoUrl); return ( {intl.formatMessage(intlMessages.note)}
{ !valid && videoUrl ? ( {intl.formatMessage(intlMessages.urlError)} ) : null }
{ startWatching(videoUrl); onRequestClose(); }} data-test="startNewVideo" color="primary" />
); }; export default ExternalVideoPlayerModal;