mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-10 17:38:39 +00:00
Also unify the mobile and web features into one, even though internally they still have separate ways to enable the functionality.
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
// @flow
|
|
|
|
import { getParticipants } from '../base/participants';
|
|
|
|
import { VIDEO_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 {boolean}
|
|
*/
|
|
export function getYoutubeLink(url: string) {
|
|
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] : false;
|
|
}
|
|
|
|
|
|
/**
|
|
* 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)
|
|
);
|
|
}
|