import React from 'react'; import { AudioLevelDisplayType } from '../../types'; import { DisplayShapes } from '../Video/Video'; import InlineCircle from './InlineCircle'; import InlineWave from './InlineWave'; import { AudioLevelBorder, AudioLevelIndicatorClasses } from './Border'; import { useHMSStore } from '../../hooks/HMSRoomProvider'; import { selectPeerAudioByID } from '../../store/selectors'; export interface AudioLevelIndicatorProps { peerId?: string; type: AudioLevelDisplayType; level?: number; color?: string; displayShape?: DisplayShapes; classes?: AudioLevelIndicatorClasses; } export const AudioLevelIndicator = ({ peerId, type, level = 0, color, displayShape = 'rectangle', classes, }: AudioLevelIndicatorProps) => { let audioLevel = useHMSStore(store => selectPeerAudioByID(store, peerId)); audioLevel = level || audioLevel; switch (type) { case 'inline-circle': return ; case 'inline-wave': return ; case 'border': return ( ); default: return null; } };