@@ -8,7 +8,12 @@ import {
88 usePeers as usePeersReactClient ,
99 useScreenShare as useScreenShareReactClient ,
1010} from '@fishjam-cloud/react-client' ;
11- import type { MediaStream as RNMediaStream } from '@fishjam-cloud/react-native-webrtc' ;
11+ import type { CallKitAction , CallKitConfig , MediaStream as RNMediaStream } from '@fishjam-cloud/react-native-webrtc' ;
12+ import {
13+ useCallKit as useCallKitRNWebRTC ,
14+ useCallKitEvent as useCallKitEventRNWebRTC ,
15+ useCallKitService as useCallKitServiceRNWebRTC ,
16+ } from '@fishjam-cloud/react-native-webrtc' ;
1217import { useCallback } from 'react' ;
1318
1419import type {
@@ -20,30 +25,38 @@ import type {
2025 UseLivestreamViewerResult ,
2126} from './types' ;
2227
23- export const useCamera = useCameraReactClient as ( ) => Omit < ReturnType < typeof useCameraReactClient > , 'cameraStream' > & {
24- cameraStream : RNMediaStream | null ;
25- } ;
28+ export function useCamera ( ) {
29+ const result = useCameraReactClient ( ) ;
30+ return {
31+ ...result ,
32+ cameraStream : result . cameraStream as RNMediaStream | null ,
33+ } ;
34+ }
2635
27- export const useMicrophone = useMicrophoneReactClient as ( ) => Omit <
28- ReturnType < typeof useMicrophoneReactClient > ,
29- 'toggleMicrophoneMute' | 'microphoneStream'
30- > & {
31- microphoneStream : RNMediaStream | null ;
32- } ;
36+ export function useMicrophone ( ) {
37+ const { toggleMicrophoneMute : _ , ...rest } = useMicrophoneReactClient ( ) ;
38+ return {
39+ ...rest ,
40+ microphoneStream : rest . microphoneStream as RNMediaStream | null ,
41+ } ;
42+ }
3343
34- export const useScreenShare = useScreenShareReactClient as ( ) => Omit <
35- ReturnType < typeof useScreenShareReactClient > ,
36- 'stream'
37- > & {
38- stream : RNMediaStream | null ;
39- } ;
44+ export function useScreenShare ( ) {
45+ const result = useScreenShareReactClient ( ) ;
46+ return {
47+ ...result ,
48+ stream : result . stream as RNMediaStream | null ,
49+ } ;
50+ }
4051
41- export const useCustomSource = useCustomSourceReactClient as < T extends string > (
42- sourceId : T ,
43- ) => Omit < ReturnType < typeof useCustomSourceReactClient > , 'stream' | 'setStream' > & {
44- stream : RNMediaStream | undefined ;
45- setStream : ( newStream : RNMediaStream | null ) => void ;
46- } ;
52+ export function useCustomSource < T extends string > ( sourceId : T ) {
53+ const result = useCustomSourceReactClient ( sourceId ) ;
54+ return {
55+ ...result ,
56+ stream : result . stream as RNMediaStream | undefined ,
57+ setStream : result . setStream as ( newStream : RNMediaStream | null ) => Promise < void > ,
58+ } ;
59+ }
4760
4861export function useLivestreamStreamer ( ) : UseLivestreamStreamerResult {
4962 const { connect : reactConnect , ...rest } = useLivestreamStreamerReactClient ( ) ;
@@ -67,11 +80,14 @@ export function useLivestreamViewer(): UseLivestreamViewerResult {
6780 } ;
6881}
6982
70- export const useInitializeDevices = useInitializeDevicesReactClient as ( ) => {
71- initializeDevices : (
72- ...args : Parameters < ReturnType < typeof useInitializeDevicesReactClient > [ 'initializeDevices' ] >
73- ) => Promise < InitializeDevicesResult > ;
74- } ;
83+ export function useInitializeDevices ( ) {
84+ const { initializeDevices : reactInitDevices } = useInitializeDevicesReactClient ( ) ;
85+ return {
86+ initializeDevices : reactInitDevices as (
87+ ...args : Parameters < typeof reactInitDevices >
88+ ) => Promise < InitializeDevicesResult > ,
89+ } ;
90+ }
7591
7692export function usePeers < P = Record < string , unknown > , S = Record < string , unknown > > ( ) {
7793 return usePeersReactClient < P , S > ( ) as unknown as {
@@ -80,3 +96,16 @@ export function usePeers<P = Record<string, unknown>, S = Record<string, unknown
8096 peers : PeerWithTracks < P , S , RemoteTrack > [ ] ;
8197 } ;
8298}
99+
100+ export function useCallKit ( ) {
101+ const result = useCallKitRNWebRTC ( ) ;
102+ return { ...result } ;
103+ }
104+
105+ export function useCallKitService ( config : CallKitConfig ) {
106+ return useCallKitServiceRNWebRTC ( config ) ;
107+ }
108+
109+ export function useCallKitEvent < T extends keyof CallKitAction > ( action : T , callback : ( event : CallKitAction [ T ] ) => void ) {
110+ return useCallKitEventRNWebRTC ( action , callback ) ;
111+ }
0 commit comments