OptionaladditionalVideo devices available for adding as additional cameras (pre-filtered by consumer)
OptionaladditionalActive additional cameras to display in the camera menu
OptionalautoAuto-hide the control bar after this many milliseconds of inactivity. Set to 0 or leave undefined to keep the bar always visible.
OptionalcolorsCustom colors for buttons and indicators Standalone values, not tied to MUI theme
OptionaldisabledDisable all controls
OptionaliconsCustom icons to replace default MUI icons Accepts any React nodes
OptionalintelligenceIntelligence mode configuration settings. These settings control what features are enabled when Intelligence mode starts.
OptionalisWhether a phone camera is currently connected
OptionallabelsCustom labels for i18n support Partially override default labels
OptionallayoutCurrent layout mode
OptionallayoutsCustom layout definitions for the layout selector.
When provided, these layouts replace the default built-in layouts
(grid, speaker, sidebar). To extend the defaults, spread DEFAULT_LAYOUTS
and add your custom layouts.
If not provided, the component uses DEFAULT_LAYOUTS which includes
the three built-in layouts: grid, speaker, and sidebar.
Add a custom layout:
import { DEFAULT_LAYOUTS } from '@hiyve/react-ui';
import { Slideshow } from '@mui/icons-material';
<ControlBar
layouts={[
...DEFAULT_LAYOUTS,
{ id: 'presentation', label: 'Presentation', icon: <Slideshow /> },
]}
/>
Replace with completely custom layouts:
<ControlBar
layouts={[
{ id: 'focus', label: 'Focus', icon: <CenterFocusStrong /> },
{ id: 'theater', label: 'Theater', icon: <Theaters /> },
]}
/>
DEFAULT_LAYOUTS from @hiyve/react-ui - The built-in layouts constantOptionallocalWhether the local tile is currently hidden (controlled state).
Use with onLocalTileHiddenChange for controlled behavior.
OptionalonCallback when an additional camera is added
OptionalonCallback when an additional camera is removed
OptionalonCallback when audio input device changes
OptionalonCallback when audio mute state changes
OptionalonCallback when audio output (speaker) device changes
OptionalonCallback fired when an error occurs during any operation.
OptionalonCallback when hand raise state changes
OptionalonCallback when intelligence configuration changes (from settings panel).
OptionalonOptional callback fired when intelligence mode starts. The component handles intelligence mode internally - this is just for notification.
OptionalonOptional callback fired when intelligence mode stops. The component handles intelligence mode internally - this is just for notification.
OptionalonCallback when layout changes
OptionalonCallback when leave button is clicked
OptionalonCallback when the local tile hidden state changes.
Whether the local tile should be hidden
OptionalonOptional callback fired when mood analysis is disabled. The component handles mood analysis internally - this is just for notification.
OptionalonOptional callback fired when mood analysis is enabled. The component handles mood analysis internally - this is just for notification.
OptionalonCallback fired when the user clicks "Device Settings..." in the device menu. Use this to open a full device selector dialog (e.g., DeviceSelector component). When provided, a "Device Settings..." menu item appears at the bottom of the device menu.
OptionalonCallback to disconnect the phone camera
OptionalonCallback when "Use Phone Camera" is requested. Shows the menu item when provided.
OptionalonOptional callback fired when recording starts. The component handles recording internally - this is just for notification.
OptionalonOptional callback fired when recording stops. The component handles recording internally - this is just for notification.
OptionalonCallback when screen share state changes
OptionalonCallback when the sidebar toggle button is clicked. When provided, a menu icon button appears at the far right of the control bar.
OptionalonCallback when streaming config should change. Used to sync streaming settings with external state (e.g., sidebar settings).
OptionalonOptional callback fired when streaming starts. The component handles streaming internally - this is just for notification.
OptionalonOptional callback fired when streaming stops. The component handles streaming internally - this is just for notification.
OptionalonCallback when video device changes
OptionalonCallback when video mute state changes
OptionalonCallback fired when the control bar visibility changes due to auto-hide.
Whether the control bar is currently visible
OptionalrenderRender props for advanced customization
OptionalshowShow/hide the mute audio button
OptionalshowShow the camera menu button (combines primary camera controls and additional cameras). When enabled, replaces the simple video toggle with a dropdown menu that provides mute video, hide self, switch camera, and additional camera management.
OptionalshowShow/hide the hand raise button
OptionalshowShow/hide the layout selector button
OptionalshowShow/hide the leave button
OptionalshowShow a confirmation dialog before leaving the room. When enabled, clicking the leave button shows a dialog asking the user to confirm. Different messaging is shown for owners (End Room) vs guests (Leave Room).
OptionalshowShow the unified recording menu (Record Room, Mood Analysis, Intelligence). This is the recommended approach for recording controls.
OptionalshowShow/hide the screen share button
OptionalshowShow/hide the device settings button
OptionalshowShow the live streaming option in the unified recording menu. When enabled, adds a "Live Stream" option to start streaming the room.
OptionalshowShow/hide the video toggle button
OptionalsidebarWhether the sidebar is currently open (controls active styling).
OptionalstreamingStreaming configuration options. These settings are used when starting a stream.
OptionalcreateMp4?: booleanCreate MP4 file when streaming ends (default: true, not available with rtmpUrl)
Optionalmode?: "single" | "multi"Streaming mode: 'single' focuses on one participant, 'multi' shows grid (default: 'single')
OptionalrtmpUrl?: stringOptional RTMP URL for streaming to external platforms (YouTube, Twitch, etc.)
OptionalstylesCustom styles for spacing, sizing, and animations
OptionalsxCustom styles for the control bar container
Props for the ControlBar component.
Remarks
The ControlBar automatically connects to the HiyveProvider context for state. It must be used inside a
<HiyveProvider>component. For mood analysis features, also requires<MoodAnalysisProvider>.Auto-injected from HiyveProvider:
Auto-injected from MoodAnalysisProvider (if available):
Example