@100mslive/roomkit-react
Version:

58 lines (53 loc) • 1.52 kB
JSX
import React, { useEffect, useState } from 'react';
import { selectDominantSpeaker, useHMSStore } from '@100mslive/react-sdk';
import { VolumeOneIcon } from '@100mslive/react-icons';
import { Flex, styled, Text, textEllipsis } from '../../../';
import { useRoomLayout } from '../../provider/roomLayoutProvider';
export const SpeakerTag = () => {
const dominantSpeaker = useHMSStore(selectDominantSpeaker);
return (
dominantSpeaker &&
dominantSpeaker.name && (
<Flex
align="center"
justify="center"
css={{ flex: '1 1 0', color: '$on_surface_high', '@md': { display: 'none' } }}
>
<VolumeOneIcon />
<Text variant="sm" css={{ ...textEllipsis(200), ml: '$2' }} title={dominantSpeaker.name}>
{dominantSpeaker.name}
</Text>
</Flex>
)
);
};
const LogoImg = styled('img', {
maxHeight: '$14',
w: 'auto',
objectFit: 'contain',
'@md': {
maxHeight: '$12',
},
});
export const Logo = () => {
const roomLayout = useRoomLayout();
const logo = roomLayout?.logo?.url;
const [hideImage, setHideImage] = useState(false);
// Hide logo for now as there is not enough space
useEffect(() => {
if (hideImage) {
setHideImage(false);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [logo]);
return logo && !hideImage ? (
<LogoImg
src={logo}
alt="Brand Logo"
onError={e => {
e.target.onerror = null;
setHideImage(true);
}}
/>
) : null;
};