useTrackToggle
function useTrackToggle(source): {
enabled: boolean;
pending: boolean;
toggle: (force?) => void;
};Defined in: packages/react/src/hooks/track/useTrackToggle.ts:31
Enabled state + toggle for a local track. Only "microphone" is meaningful for
the local agent; toggling flips agent.mute().
Parameters
| Parameter | Type |
|---|---|
source | "microphone" |
Returns
{
enabled: boolean;
pending: boolean;
toggle: (force?) => void;
}enabled
enabled: boolean;pending
pending: boolean;toggle
toggle: (force?) => void;Parameters
| Parameter | Type |
|---|---|
force? | boolean |
Returns
void
Example
// Basic — wire a local microphone button.
const { enabled, toggle } = useTrackToggle("microphone");
return <button onClick={() => toggle()}>{enabled ? "Mute" : "Unmute"}</button>;
// Advanced — disable the control while a toggle is pending.
function MicrophoneControl() {
const { enabled, pending, toggle } = useTrackToggle("microphone");
return (
<button disabled={pending} onClick={() => toggle()}>
{enabled ? "Mute microphone" : "Unmute microphone"}
</button>
);
}
<VoiceRoom agent={agent}>
<MicrophoneControl />
</VoiceRoom>;