UNPKG

voicebot-react-native-expo

Version:

This is a voicebot-react-native package of Kipps AI voice bot for React Native Expo

43 lines (38 loc) 1.07 kB
import type { Room } from 'livekit-client'; import * as React from 'react'; /** @public */ export const RoomContext = React.createContext<Room | undefined>(undefined); /** * Ensures that a room is provided via context. * If no room is provided, an error is thrown. * @public */ export function useRoomContext() { const ctx = React.useContext(RoomContext); if (!ctx) { throw Error('tried to access room context outside of livekit room component'); } return ctx; } /** * Returns the room context if it exists, otherwise undefined. * @public */ export function useMaybeRoomContext() { return React.useContext(RoomContext); } /** * Ensures that a room is provided, either via context or explicitly as a parameter. * If no room is provided, an error is thrown. * @public */ export function useEnsureRoom(room?: Room) { const context = useMaybeRoomContext(); const r = room ?? context; if (!r) { throw new Error( 'No room provided, make sure you are inside a Room context or pass the room explicitly', ); } return r; }