voicebot-react-native-expo
Version:
This is a voicebot-react-native package of Kipps AI voice bot for React Native Expo
35 lines (29 loc) • 1.15 kB
text/typescript
import { setupConnectionQualityIndicator } from '@livekit/components-core';
import type { Participant } from 'livekit-client';
import { ConnectionQuality } from 'livekit-client';
import * as React from 'react';
import { useEnsureParticipant } from '../context';
import { useObservableState } from './internal';
/** @public */
export interface ConnectionQualityIndicatorOptions {
participant?: Participant;
}
/**
* The `useConnectionQualityIndicator` hook provides props for the `ConnectionQualityIndicator` or your custom implementation of it component.
* @example
* ```tsx
* const { quality } = useConnectionQualityIndicator();
* // or
* const { quality } = useConnectionQualityIndicator({ participant });
* ```
* @public
*/
export function useConnectionQualityIndicator(options: ConnectionQualityIndicatorOptions = {}) {
const p = useEnsureParticipant(options.participant);
const { className, connectionQualityObserver } = React.useMemo(
() => setupConnectionQualityIndicator(p),
[p],
);
const quality = useObservableState(connectionQualityObserver, ConnectionQuality.Unknown);
return { className, quality };
}