<ControlBar
isAudioMuted={isAudioMuted}
isVideoMuted={isVideoMuted}
onToggleAudio={toggleAudio}
onToggleVideo={toggleVideo}
onFlipCamera={switchCamera}
onLeave={leaveRoom}
showLayoutSelector
showHandRaise
showRecording
showStreaming
showLeaveConfirmation
layout={layout}
onLayoutChange={setLayout}
isHandRaised={isHandRaised}
onToggleHandRaise={toggleHandRaised}
isRecording={isRecording}
recordingDuration={recordingDuration}
onToggleRecording={handleToggleRecording}
isStreaming={isStreaming}
streamingDuration={streamingDuration}
onToggleStreaming={handleToggleStreaming}
/>
Bottom toolbar with microphone, camera, flip-camera, layout, hand raise, recording, streaming, and leave buttons.
Renders circular buttons in a horizontal row. When there are too many buttons to fit on screen, the row becomes horizontally scrollable.
All new feature buttons default to hidden to preserve backward compatibility. Enable them by passing
showLayoutSelector,showHandRaise,showRecording, and/orshowStreaming.When
showLeaveConfirmationis set, pressing Leave opens a nativeAlert.alert()confirmation dialog before callingonLeave.Active recording and streaming states are highlighted with pulsing DurationBadge indicators rendered above the button row.
Colors, labels, and icons can all be customized. Provide partial overrides and the component merges them with built-in defaults.