Valora
API Reference@valora-ai/reactindexFunctions

useLocalParticipant

function useLocalParticipant(_options?): {
  isMicrophoneEnabled: boolean;
  isScreenShareEnabled: boolean;
  isCameraEnabled: boolean;
  microphoneTrack: unknown;
  cameraTrack: unknown;
  lastMicrophoneError: Error | undefined;
  lastCameraError: Error | undefined;
  localParticipant: unknown;
};

Defined in: packages/react/src/hooks/participant/useLocalParticipant.ts:40

The useLocalParticipant hook returns the local participant and the associated state around the participant.

Parameters

ParameterType
_options?UseLocalParticipantOptions

Returns

{
  isMicrophoneEnabled: boolean;
  isScreenShareEnabled: boolean;
  isCameraEnabled: boolean;
  microphoneTrack: unknown;
  cameraTrack: unknown;
  lastMicrophoneError: Error | undefined;
  lastCameraError: Error | undefined;
  localParticipant: unknown;
}

isMicrophoneEnabled

isMicrophoneEnabled: boolean;

isScreenShareEnabled

isScreenShareEnabled: boolean;

isCameraEnabled

isCameraEnabled: boolean;

microphoneTrack

microphoneTrack: unknown;

cameraTrack

cameraTrack: unknown;

lastMicrophoneError

lastMicrophoneError: Error | undefined;

lastCameraError

lastCameraError: Error | undefined;

localParticipant

localParticipant: unknown;

Example

// Basic — read the local participant.
const { localParticipant } = useLocalParticipant();

// Advanced — wire local media state into controls.
function LocalControls() {
  const { isMicrophoneEnabled, isCameraEnabled } = useLocalParticipant();
  return (
    <>
      <button disabled={!isMicrophoneEnabled}>Mic on</button>
      <button disabled={!isCameraEnabled}>Camera on</button>
    </>
  );
}

function RoomControls() {
  return (
    <VoiceRoom agent={agent}>
      <LocalControls />
    </VoiceRoom>
  );
}

On this page

Valora is local-first

No API key, no server — everything in this doc runs on-device.

Star on GitHub