123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // @flow
-
- import { makeStyles } from '@material-ui/core/styles';
- import React from 'react';
- import { useSelector } from 'react-redux';
-
- import { getLocalParticipant } from '../../../base/participants';
- import { withPixelLineHeight } from '../../../base/styles/functions.web';
- import { getLargeVideoParticipant } from '../../../large-video/functions';
- import { isToolboxVisible } from '../../../toolbox/functions.web';
- import { isLayoutTileView } from '../../../video-layout';
-
- import DisplayNameBadge from './DisplayNameBadge';
-
- const useStyles = makeStyles(theme => {
- return {
- badgeContainer: {
- ...withPixelLineHeight(theme.typography.bodyShortRegularLarge),
- alignItems: 'center',
- display: 'flex',
- justifyContent: 'center',
- marginBottom: theme.spacing(2),
- transition: 'margin-bottom 0.3s'
- },
- containerElevated: {
- marginBottom: theme.spacing(7)
- }
- };
- });
-
- /**
- * Component that renders the dominant speaker's name as a badge above the toolbar in stage view.
- *
- * @returns {ReactElement|null}
- */
- const DominantSpeakerName = () => {
- const classes = useStyles();
- const largeVideoParticipant = useSelector(getLargeVideoParticipant);
- const nameToDisplay = largeVideoParticipant?.name;
- const selectedId = largeVideoParticipant?.id;
-
- const localParticipant = useSelector(getLocalParticipant);
- const localId = localParticipant?.id;
-
- const isTileView = useSelector(isLayoutTileView);
- const toolboxVisible = useSelector(isToolboxVisible);
-
- if (nameToDisplay && selectedId !== localId && !isTileView) {
- return (
- <div
- className = { `${classes.badgeContainer}${toolboxVisible ? '' : ` ${classes.containerElevated}`}` }>
- <DisplayNameBadge name = { nameToDisplay } />
- </div>
- );
- }
-
- return null;
- };
-
- export default DominantSpeakerName;
|