UNPKG

@daily-co/daily-react

Version:

Daily React makes it easier to integrate [@daily-co/daily-js](https://www.npmjs.com/package/@daily-co/daily-js) in React applications.

45 lines (36 loc) 1.15 kB
import { DailyEventObjectNonFatalError } from '@daily-co/daily-js'; import { useAtomValue } from 'jotai'; import { useCallback, useDebugValue } from 'react'; import { meetingSessionDataState } from '../DailyMeeting'; import { Reconstruct } from '../types/Reconstruct'; import { useDailyEvent } from './useDailyEvent'; type DailyEventObjectMeetingSessionDataError = Reconstruct< DailyEventObjectNonFatalError, 'type', 'meeting-session-data-error' >; interface Props { onError?(ev: DailyEventObjectMeetingSessionDataError): void; } /** * Returns a meeting's current session data and topology. */ export const useMeetingSessionState = <T = any>({ onError }: Props = {}) => { const meetingSessionState = useAtomValue(meetingSessionDataState); useDailyEvent( 'nonfatal-error', useCallback( (ev) => { if (ev.type !== 'meeting-session-data-error') return; onError?.(ev as DailyEventObjectMeetingSessionDataError); }, [onError] ) ); const result = { data: meetingSessionState?.data as T, topology: meetingSessionState?.topology, }; useDebugValue(result); return result; };