import * as React from 'react'; import { ConnectionQualityIndicator } from './ConnectionQualityIndicator'; import { ParticipantName } from './ParticipantName'; import { TrackMutedIndicator } from './TrackMutedIndicator'; import { TrackRefContext, useEnsureTrackRef } from '../../context'; import type { ParticipantTileProps } from './ParticipantTile'; import { AudioTrack } from './AudioTrack'; import { useParticipantTile } from '../../hooks'; import { isTrackReference } from '@livekit/components-core'; import { BarVisualizer } from './BarVisualizer'; /** * The `ParticipantAudioTile` component is the base utility wrapper for displaying a visual representation of a participant. * This component can be used as a child of the `TileLoop` or independently if a participant is passed as a property. * * @example * ```tsx * * ``` * @public */ export const ParticipantAudioTile: ( props: ParticipantTileProps & React.RefAttributes, ) => React.ReactNode = /* @__PURE__ */ React.forwardRef( function ParticipantAudioTile( { children, disableSpeakingIndicator, onParticipantClick, trackRef, ...htmlProps }: ParticipantTileProps, ref, ) { const trackReference = useEnsureTrackRef(trackRef); const { elementProps } = useParticipantTile({ trackRef: trackReference, htmlProps, disableSpeakingIndicator, onParticipantClick, }); return (
{children ?? ( <> {isTrackReference(trackReference) && ( )}
)}
); }, );