| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- // @flow
 - 
 - import { getParticipants } from '../base/participants';
 - 
 - import { VIDEO_PLAYER_PARTICIPANT_NAME, YOUTUBE_PLAYER_PARTICIPANT_NAME } from './constants';
 - 
 - /**
 -  * Validates the entered video url.
 -  *
 -  * It returns a boolean to reflect whether the url matches the youtube regex.
 -  *
 -  * @param {string} url - The entered video link.
 -  * @returns {string} The youtube video id if matched.
 -  */
 - export function getYoutubeId(url: string) {
 -     if (!url) {
 -         return null;
 -     }
 - 
 -     const p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|(?:m\.)?youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;// eslint-disable-line max-len
 -     const result = url.match(p);
 - 
 -     return result ? result[1] : null;
 - }
 - 
 - /**
 -  * Checks if the status is one that is actually sharing the video - playing, pause or start.
 -  *
 -  * @param {string} status - The shared video status.
 -  * @returns {boolean}
 -  */
 - export function isSharingStatus(status: string) {
 -     return [ 'playing', 'pause', 'start' ].includes(status);
 - }
 - 
 - 
 - /**
 -  * Returns true if there is a video being shared in the meeting.
 -  *
 -  * @param {Object | Function} stateful - The Redux state or a function that gets resolved to the Redux state.
 -  * @returns {boolean}
 -  */
 - export function isVideoPlaying(stateful: Object | Function): boolean {
 -     return Boolean(getParticipants(stateful).find(p => p.isFakeParticipant
 -         && (p.name === VIDEO_PLAYER_PARTICIPANT_NAME || p.name === YOUTUBE_PLAYER_PARTICIPANT_NAME))
 -     );
 - }
 
 
  |