@fishjam-cloud/react-client 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Client.d.ts +68 -69
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +9 -9
- package/dist/DeviceManager.d.ts +2 -1
- package/dist/DeviceManager.d.ts.map +1 -1
- package/dist/DeviceManager.js +3 -0
- package/dist/fishjamProvider.d.ts +12 -0
- package/dist/fishjamProvider.d.ts.map +1 -0
- package/dist/fishjamProvider.js +30 -0
- package/dist/hooks/clientState.d.ts +4 -0
- package/dist/hooks/clientState.d.ts.map +1 -0
- package/dist/hooks/clientState.js +81 -0
- package/dist/hooks/connection.d.ts +6 -0
- package/dist/hooks/connection.d.ts.map +1 -0
- package/dist/hooks/connection.js +28 -0
- package/dist/hooks/devices.d.ts +4 -0
- package/dist/hooks/devices.d.ts.map +1 -0
- package/dist/hooks/devices.js +9 -0
- package/dist/hooks/fishjamContext.d.ts +4 -0
- package/dist/hooks/fishjamContext.d.ts.map +1 -0
- package/dist/hooks/fishjamContext.js +8 -0
- package/dist/hooks/participants.d.ts +6 -0
- package/dist/hooks/participants.d.ts.map +1 -0
- package/dist/hooks/participants.js +13 -0
- package/dist/hooks/public.d.ts +7 -0
- package/dist/hooks/public.d.ts.map +1 -0
- package/dist/hooks/public.js +6 -0
- package/dist/hooks/screenShare.d.ts +3 -0
- package/dist/hooks/screenShare.d.ts.map +1 -0
- package/dist/{screenShareTrackManager.js → hooks/screenShare.js} +8 -6
- package/dist/hooks/setupMedia.d.ts +3 -0
- package/dist/hooks/setupMedia.d.ts.map +1 -0
- package/dist/hooks/setupMedia.js +200 -0
- package/dist/hooks/state.d.ts +6 -0
- package/dist/hooks/state.d.ts.map +1 -0
- package/dist/hooks/state.js +15 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/state.types.d.ts +18 -18
- package/dist/state.types.d.ts.map +1 -1
- package/dist/trackManager.d.ts +3 -3
- package/dist/trackManager.d.ts.map +1 -1
- package/dist/trackManager.js +30 -13
- package/dist/types.d.ts +48 -45
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/track.d.ts +2 -1
- package/dist/utils/track.d.ts.map +1 -1
- package/package.json +4 -5
- package/readme.md +1 -15
- package/dist/create.d.ts +0 -10
- package/dist/create.d.ts.map +0 -1
- package/dist/create.js +0 -201
- package/dist/screenShareTrackManager.d.ts +0 -4
- package/dist/screenShareTrackManager.d.ts.map +0 -1
- package/dist/useSetupMedia.d.ts +0 -3
- package/dist/useSetupMedia.d.ts.map +0 -1
- package/dist/useSetupMedia.js +0 -206
package/dist/Client.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type TypedEmitter from "typed-emitter";
|
|
2
|
-
import type { AuthErrorReason, BandwidthLimit, Component,
|
|
2
|
+
import type { AuthErrorReason, BandwidthLimit, Component, CreateConfig, MessageEvents, Peer, ReconnectionStatus, SimulcastConfig, TrackBandwidthLimit, TrackContext, Encoding } from "@fishjam-cloud/ts-client";
|
|
3
3
|
import { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
4
4
|
import type { PeerId, PeerState, PeerStatus, TrackId, TrackWithOrigin } from "./state.types";
|
|
5
|
-
import type { DeviceManagerConfig, DeviceManagerInitConfig, DeviceManagerStartConfig, Devices, DeviceState, MediaDeviceType, MediaState, TrackType } from "./types";
|
|
5
|
+
import type { ConnectConfig, DeviceManagerConfig, DeviceManagerInitConfig, DeviceManagerStartConfig, Devices, DeviceState, MediaDeviceType, MediaState, PeerMetadata, TrackMetadata, TrackType } from "./types";
|
|
6
6
|
import type { DeviceManagerEvents } from "./DeviceManager";
|
|
7
7
|
import { DeviceManager } from "./DeviceManager";
|
|
8
|
-
export type ClientApi
|
|
9
|
-
local: PeerState
|
|
10
|
-
peers: Record<PeerId, PeerState
|
|
11
|
-
peersTracks: Record<TrackId, TrackWithOrigin
|
|
12
|
-
components: Record<PeerId, PeerState
|
|
13
|
-
componentsTracks: Record<TrackId, TrackWithOrigin
|
|
8
|
+
export type ClientApi = {
|
|
9
|
+
local: PeerState | null;
|
|
10
|
+
peers: Record<PeerId, PeerState>;
|
|
11
|
+
peersTracks: Record<TrackId, TrackWithOrigin>;
|
|
12
|
+
components: Record<PeerId, PeerState>;
|
|
13
|
+
componentsTracks: Record<TrackId, TrackWithOrigin>;
|
|
14
14
|
bandwidthEstimation: bigint;
|
|
15
15
|
status: PeerStatus;
|
|
16
16
|
media: MediaState | null;
|
|
@@ -21,37 +21,37 @@ type DeviceTypeInfo = {
|
|
|
21
21
|
mediaDeviceType: MediaDeviceType;
|
|
22
22
|
trackType: TrackType;
|
|
23
23
|
};
|
|
24
|
-
export interface ClientEvents
|
|
24
|
+
export interface ClientEvents {
|
|
25
25
|
/**
|
|
26
26
|
* Emitted when the websocket connection is closed
|
|
27
27
|
*
|
|
28
28
|
* @param {CloseEvent} event - Close event object from the websocket
|
|
29
29
|
*/
|
|
30
|
-
socketClose: (event: CloseEvent, client: ClientApi
|
|
30
|
+
socketClose: (event: CloseEvent, client: ClientApi) => void;
|
|
31
31
|
/**
|
|
32
32
|
* Emitted when occurs an error in the websocket connection
|
|
33
33
|
*
|
|
34
34
|
* @param {Event} event - Event object from the websocket
|
|
35
35
|
*/
|
|
36
|
-
socketError: (event: Event, client: ClientApi
|
|
36
|
+
socketError: (event: Event, client: ClientApi) => void;
|
|
37
37
|
/**
|
|
38
38
|
* Emitted when the websocket connection is opened
|
|
39
39
|
*
|
|
40
40
|
* @param {Event} event - Event object from the websocket
|
|
41
41
|
*/
|
|
42
|
-
socketOpen: (event: Event, client: ClientApi
|
|
42
|
+
socketOpen: (event: Event, client: ClientApi) => void;
|
|
43
43
|
/** Emitted when authentication is successful */
|
|
44
|
-
authSuccess: (client: ClientApi
|
|
44
|
+
authSuccess: (client: ClientApi) => void;
|
|
45
45
|
/** Emitted when authentication fails */
|
|
46
|
-
authError: (reason: AuthErrorReason, client: ClientApi
|
|
46
|
+
authError: (reason: AuthErrorReason, client: ClientApi) => void;
|
|
47
47
|
/** Emitted when the connection is closed */
|
|
48
|
-
disconnected: (client: ClientApi
|
|
48
|
+
disconnected: (client: ClientApi) => void;
|
|
49
49
|
/** Emitted on successful reconnection */
|
|
50
|
-
reconnected: (client: ClientApi
|
|
50
|
+
reconnected: (client: ClientApi) => void;
|
|
51
51
|
/** Emitted when the process of reconnection starts */
|
|
52
|
-
reconnectionStarted: (client: ClientApi
|
|
52
|
+
reconnectionStarted: (client: ClientApi) => void;
|
|
53
53
|
/** Emitted when the maximum number of reconnection retries is reached */
|
|
54
|
-
reconnectionRetriesLimitReached: (client: ClientApi
|
|
54
|
+
reconnectionRetriesLimitReached: (client: ClientApi) => void;
|
|
55
55
|
/**
|
|
56
56
|
* Called when peer was accepted.
|
|
57
57
|
*/
|
|
@@ -59,112 +59,112 @@ export interface ClientEvents<PeerMetadata, TrackMetadata> {
|
|
|
59
59
|
peerId: string;
|
|
60
60
|
peers: Peer<PeerMetadata, TrackMetadata>[];
|
|
61
61
|
components: Component<PeerMetadata, TrackMetadata>[];
|
|
62
|
-
}, client: ClientApi
|
|
62
|
+
}, client: ClientApi) => void;
|
|
63
63
|
/**
|
|
64
64
|
* Called when peer was not accepted
|
|
65
65
|
* @param metadata - Pass through for client application to communicate further actions to frontend
|
|
66
66
|
*/
|
|
67
|
-
joinError: (metadata: any, client: ClientApi
|
|
67
|
+
joinError: (metadata: any, client: ClientApi) => void;
|
|
68
68
|
/**
|
|
69
69
|
* Called when data in a new track arrives.
|
|
70
70
|
*
|
|
71
71
|
* This callback is always called after {@link MessageEvents.trackAdded}.
|
|
72
72
|
* It informs user that data related to the given track arrives and can be played or displayed.
|
|
73
73
|
*/
|
|
74
|
-
trackReady: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
74
|
+
trackReady: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
75
75
|
/**
|
|
76
76
|
* Called each time the peer which was already in the room, adds new track. Fields track and stream will be set to null.
|
|
77
77
|
* These fields will be set to non-null value in {@link MessageEvents.trackReady}
|
|
78
78
|
*/
|
|
79
|
-
trackAdded: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
79
|
+
trackAdded: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
80
80
|
/**
|
|
81
81
|
* Called when some track will no longer be sent.
|
|
82
82
|
*
|
|
83
83
|
* It will also be called before {@link MessageEvents.peerLeft} for each track of this peer.
|
|
84
84
|
*/
|
|
85
|
-
trackRemoved: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
85
|
+
trackRemoved: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
86
86
|
/**
|
|
87
87
|
* Called each time peer has its track metadata updated.
|
|
88
88
|
*/
|
|
89
|
-
trackUpdated: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
89
|
+
trackUpdated: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
90
90
|
/**
|
|
91
91
|
* Called each time new peer joins the room.
|
|
92
92
|
*/
|
|
93
|
-
peerJoined: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
93
|
+
peerJoined: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
94
94
|
/**
|
|
95
95
|
* Called each time peer leaves the room.
|
|
96
96
|
*/
|
|
97
|
-
peerLeft: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
97
|
+
peerLeft: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
98
98
|
/**
|
|
99
99
|
* Called each time peer has its metadata updated.
|
|
100
100
|
*/
|
|
101
|
-
peerUpdated: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
101
|
+
peerUpdated: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
102
102
|
/**
|
|
103
103
|
* Called each time new Component is added to the room.
|
|
104
104
|
*/
|
|
105
|
-
componentAdded: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
105
|
+
componentAdded: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
106
106
|
/**
|
|
107
107
|
* Called each time Component is removed from the room.
|
|
108
108
|
*/
|
|
109
|
-
componentRemoved: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
109
|
+
componentRemoved: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
110
110
|
/**
|
|
111
111
|
* Called each time Component has its metadata updated.
|
|
112
112
|
*/
|
|
113
|
-
componentUpdated: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
113
|
+
componentUpdated: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
114
114
|
/**
|
|
115
115
|
* Called in case of errors related to multimedia session e.g. ICE connection.
|
|
116
116
|
*/
|
|
117
|
-
connectionError: (error: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["connectionError"]>[0], client: ClientApi
|
|
117
|
+
connectionError: (error: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["connectionError"]>[0], client: ClientApi) => void;
|
|
118
118
|
/**
|
|
119
119
|
* Called every time the server estimates client's bandiwdth.
|
|
120
120
|
*
|
|
121
121
|
* @param {bigint} estimation - client's available incoming bitrate estimated
|
|
122
122
|
* by the server. It's measured in bits per second.
|
|
123
123
|
*/
|
|
124
|
-
bandwidthEstimationChanged: (estimation: bigint, client: ClientApi
|
|
125
|
-
encodingChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
124
|
+
bandwidthEstimationChanged: (estimation: bigint, client: ClientApi) => void;
|
|
125
|
+
encodingChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
126
126
|
/**
|
|
127
127
|
* Emitted every time an update about voice activity is received from the server.
|
|
128
128
|
*/
|
|
129
|
-
voiceActivityChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
130
|
-
managerStarted: (event: Parameters<DeviceManagerEvents["managerInitialized"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
129
|
+
voiceActivityChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
130
|
+
managerStarted: (event: Parameters<DeviceManagerEvents["managerInitialized"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
131
131
|
managerInitialized: (event: {
|
|
132
132
|
audio?: DeviceState;
|
|
133
133
|
video?: DeviceState;
|
|
134
|
-
}, client: ClientApi
|
|
135
|
-
deviceReady: (event: Parameters<DeviceManagerEvents["deviceReady"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
136
|
-
devicesStarted: (event: Parameters<DeviceManagerEvents["devicesStarted"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
137
|
-
devicesReady: (event: Parameters<DeviceManagerEvents["devicesReady"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
138
|
-
deviceStopped: (event: DeviceTypeInfo, client: ClientApi
|
|
139
|
-
deviceEnabled: (event: DeviceTypeInfo, client: ClientApi
|
|
140
|
-
deviceDisabled: (event: DeviceTypeInfo, client: ClientApi
|
|
141
|
-
error: (arg: any, client: ClientApi
|
|
142
|
-
targetTrackEncodingRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["targetTrackEncodingRequested"]>[0], client: ClientApi
|
|
143
|
-
localTrackAdded: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackAdded"]>[0], client: ClientApi
|
|
144
|
-
localTrackRemoved: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackRemoved"]>[0], client: ClientApi
|
|
145
|
-
localTrackReplaced: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackReplaced"]>[0], client: ClientApi
|
|
146
|
-
localTrackMuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMuted"]>[0], client: ClientApi
|
|
147
|
-
localTrackUnmuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackUnmuted"]>[0], client: ClientApi
|
|
148
|
-
localTrackBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackBandwidthSet"]>[0], client: ClientApi
|
|
149
|
-
localTrackEncodingBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingBandwidthSet"]>[0], client: ClientApi
|
|
150
|
-
localTrackEncodingEnabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingEnabled"]>[0], client: ClientApi
|
|
151
|
-
localTrackEncodingDisabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingDisabled"]>[0], client: ClientApi
|
|
152
|
-
localPeerMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localPeerMetadataChanged"]>[0], client: ClientApi
|
|
153
|
-
localTrackMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMetadataChanged"]>[0], client: ClientApi
|
|
154
|
-
disconnectRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["disconnectRequested"]>[0], client: ClientApi
|
|
134
|
+
}, client: ClientApi) => void;
|
|
135
|
+
deviceReady: (event: Parameters<DeviceManagerEvents["deviceReady"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
136
|
+
devicesStarted: (event: Parameters<DeviceManagerEvents["devicesStarted"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
137
|
+
devicesReady: (event: Parameters<DeviceManagerEvents["devicesReady"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
138
|
+
deviceStopped: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
139
|
+
deviceEnabled: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
140
|
+
deviceDisabled: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
141
|
+
error: (arg: any, client: ClientApi) => void;
|
|
142
|
+
targetTrackEncodingRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["targetTrackEncodingRequested"]>[0], client: ClientApi) => void;
|
|
143
|
+
localTrackAdded: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackAdded"]>[0], client: ClientApi) => void;
|
|
144
|
+
localTrackRemoved: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackRemoved"]>[0], client: ClientApi) => void;
|
|
145
|
+
localTrackReplaced: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackReplaced"]>[0], client: ClientApi) => void;
|
|
146
|
+
localTrackMuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMuted"]>[0], client: ClientApi) => void;
|
|
147
|
+
localTrackUnmuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackUnmuted"]>[0], client: ClientApi) => void;
|
|
148
|
+
localTrackBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackBandwidthSet"]>[0], client: ClientApi) => void;
|
|
149
|
+
localTrackEncodingBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingBandwidthSet"]>[0], client: ClientApi) => void;
|
|
150
|
+
localTrackEncodingEnabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingEnabled"]>[0], client: ClientApi) => void;
|
|
151
|
+
localTrackEncodingDisabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingDisabled"]>[0], client: ClientApi) => void;
|
|
152
|
+
localPeerMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localPeerMetadataChanged"]>[0], client: ClientApi) => void;
|
|
153
|
+
localTrackMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMetadataChanged"]>[0], client: ClientApi) => void;
|
|
154
|
+
disconnectRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["disconnectRequested"]>[0], client: ClientApi) => void;
|
|
155
155
|
}
|
|
156
|
-
export type
|
|
156
|
+
export type ReactClientCreateConfig = {
|
|
157
157
|
clientConfig?: CreateConfig<PeerMetadata, TrackMetadata>;
|
|
158
158
|
deviceManagerDefaultConfig?: DeviceManagerConfig;
|
|
159
159
|
};
|
|
160
|
-
declare const Client_base: new
|
|
161
|
-
export declare class Client
|
|
160
|
+
declare const Client_base: new () => TypedEmitter<Required<ClientEvents>>;
|
|
161
|
+
export declare class Client extends Client_base {
|
|
162
162
|
private readonly tsClient;
|
|
163
|
-
local: PeerState
|
|
164
|
-
peers: Record<PeerId, PeerState
|
|
165
|
-
components: Record<PeerId, PeerState
|
|
166
|
-
peersTracks: Record<TrackId, TrackWithOrigin
|
|
167
|
-
componentsTracks: Record<TrackId, TrackWithOrigin
|
|
163
|
+
local: PeerState | null;
|
|
164
|
+
peers: Record<PeerId, PeerState>;
|
|
165
|
+
components: Record<PeerId, PeerState>;
|
|
166
|
+
peersTracks: Record<TrackId, TrackWithOrigin>;
|
|
167
|
+
componentsTracks: Record<TrackId, TrackWithOrigin>;
|
|
168
168
|
bandwidthEstimation: bigint;
|
|
169
169
|
status: PeerStatus;
|
|
170
170
|
media: MediaState | null;
|
|
@@ -172,13 +172,14 @@ export declare class Client<PeerMetadata, TrackMetadata> extends Client_base<Pee
|
|
|
172
172
|
reconnectionStatus: ReconnectionStatus;
|
|
173
173
|
videoDeviceManager: DeviceManager;
|
|
174
174
|
audioDeviceManager: DeviceManager;
|
|
175
|
-
|
|
175
|
+
private initialized;
|
|
176
|
+
constructor(config?: ReactClientCreateConfig);
|
|
176
177
|
setDeviceManagerConfig(config: DeviceManagerConfig): void;
|
|
177
178
|
private trackContextToTrack;
|
|
178
179
|
getTsClient: () => FishjamClient<PeerMetadata, TrackMetadata>;
|
|
179
|
-
connect(config: ConnectConfig
|
|
180
|
+
connect(config: ConnectConfig): void;
|
|
180
181
|
disconnect(): void;
|
|
181
|
-
addTrack(track: MediaStreamTrack,
|
|
182
|
+
addTrack(track: MediaStreamTrack, simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit): Promise<string>;
|
|
182
183
|
removeTrack(trackId: string): Promise<void>;
|
|
183
184
|
replaceTrack(trackId: string, newTrack: MediaStreamTrack | null): Promise<void>;
|
|
184
185
|
getStatistics(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
|
|
@@ -188,8 +189,6 @@ export declare class Client<PeerMetadata, TrackMetadata> extends Client_base<Pee
|
|
|
188
189
|
setTargetTrackEncoding(trackId: string, encoding: Encoding): void;
|
|
189
190
|
enableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
|
|
190
191
|
disableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
|
|
191
|
-
updatePeerMetadata: (peerMetadata: PeerMetadata) => void;
|
|
192
|
-
updateTrackMetadata: (trackId: string, trackMetadata: TrackMetadata) => void;
|
|
193
192
|
isReconnecting: () => boolean;
|
|
194
193
|
initializeDevices: (config?: DeviceManagerInitConfig) => Promise<void>;
|
|
195
194
|
startDevices: (config: DeviceManagerStartConfig) => Promise<void>;
|
package/dist/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
package/dist/Client.js
CHANGED
|
@@ -16,6 +16,7 @@ export class Client extends EventEmitter {
|
|
|
16
16
|
reconnectionStatus = "idle";
|
|
17
17
|
videoDeviceManager;
|
|
18
18
|
audioDeviceManager;
|
|
19
|
+
initialized = false;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
super();
|
|
21
22
|
this.tsClient = new FishjamClient(config?.clientConfig);
|
|
@@ -292,14 +293,14 @@ export class Client extends EventEmitter {
|
|
|
292
293
|
getTsClient = () => this.tsClient;
|
|
293
294
|
connect(config) {
|
|
294
295
|
this.status = "connecting";
|
|
295
|
-
this.tsClient.connect(config);
|
|
296
|
+
this.tsClient.connect({ ...config, peerMetadata: config?.peerMetadata ?? {} });
|
|
296
297
|
}
|
|
297
298
|
disconnect() {
|
|
298
299
|
this.status = null;
|
|
299
300
|
this.tsClient.disconnect();
|
|
300
301
|
}
|
|
301
|
-
addTrack(track,
|
|
302
|
-
return this.tsClient.addTrack(track,
|
|
302
|
+
addTrack(track, simulcastConfig = { enabled: false, activeEncodings: [], disabledEncodings: [] }, maxBandwidth = 0) {
|
|
303
|
+
return this.tsClient.addTrack(track, undefined, simulcastConfig, maxBandwidth);
|
|
303
304
|
}
|
|
304
305
|
removeTrack(trackId) {
|
|
305
306
|
return this.tsClient.removeTrack(trackId);
|
|
@@ -328,16 +329,15 @@ export class Client extends EventEmitter {
|
|
|
328
329
|
disableTrackEncoding(trackId, encoding) {
|
|
329
330
|
return this.tsClient.disableTrackEncoding(trackId, encoding);
|
|
330
331
|
}
|
|
331
|
-
updatePeerMetadata = (peerMetadata) => {
|
|
332
|
-
this.tsClient.updatePeerMetadata(peerMetadata);
|
|
333
|
-
};
|
|
334
|
-
updateTrackMetadata = (trackId, trackMetadata) => {
|
|
335
|
-
this.tsClient.updateTrackMetadata(trackId, trackMetadata);
|
|
336
|
-
};
|
|
337
332
|
isReconnecting = () => {
|
|
338
333
|
return this.tsClient.isReconnecting();
|
|
339
334
|
};
|
|
340
335
|
initializeDevices = async (config) => {
|
|
336
|
+
// This function should be called only once.
|
|
337
|
+
// Any subsequent calls to this function will be ignored.
|
|
338
|
+
if (this.initialized)
|
|
339
|
+
return;
|
|
340
|
+
this.initialized = true;
|
|
341
341
|
const constraints = {
|
|
342
342
|
video: this.videoDeviceManager.getConstraints(config?.videoTrackConstraints),
|
|
343
343
|
audio: this.audioDeviceManager.getConstraints(config?.audioTrackConstraints),
|
package/dist/DeviceManager.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare class DeviceManager extends DeviceManager_base implements MediaMa
|
|
|
26
26
|
private constraints;
|
|
27
27
|
private storageConfig;
|
|
28
28
|
private status;
|
|
29
|
-
private deviceType;
|
|
29
|
+
private readonly deviceType;
|
|
30
30
|
deviceState: DeviceState;
|
|
31
31
|
constructor(deviceType: "audio" | "video", defaultConfig?: DeviceManagerConfig);
|
|
32
32
|
private createStorageConfig;
|
|
@@ -43,6 +43,7 @@ export declare class DeviceManager extends DeviceManager_base implements MediaMa
|
|
|
43
43
|
stop(): Promise<void>;
|
|
44
44
|
disable(): void;
|
|
45
45
|
enable(): void;
|
|
46
|
+
getDeviceType: () => "audio" | "video";
|
|
46
47
|
setConfig(storage?: boolean | StorageConfig, constraints?: boolean | MediaTrackConstraints): void;
|
|
47
48
|
}
|
|
48
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1G,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7G,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;4CAGxD,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,UAAU,CAAoB;
|
|
1
|
+
{"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1G,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7G,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;4CAGxD,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAExC,WAAW,EAAE,WAAW,CAM7B;gBAEU,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS9E,OAAO,CAAC,mBAAmB;IAMpB,SAAS,IAAI,mBAAmB;IAIhC,cAAc,CACnB,kBAAkB,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,GAC9D,qBAAqB,GAAG,SAAS;IAO7B,QAAQ,uCAAgC;IAExC,SAAS,2BAKd;IAEK,UAAU,WACP,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,kBACV,OAAO,UAChB,WAAW,GAAG,IAAI,iBAWzB;IAEF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY,CAIlB;IAEK,aAAa,IAAI,eAAe,GAAG,IAAI;IAI9C,OAAO,CAAC,cAAc;IAMT,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IA4EjC,IAAI;IAOV,OAAO;IAWP,MAAM;IAWN,aAAa,0BAElB;IAEK,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,qBAAqB;CAIlG"}
|
package/dist/DeviceManager.js
CHANGED
|
@@ -150,6 +150,9 @@ export class DeviceManager extends EventEmitter {
|
|
|
150
150
|
this.deviceState.media.enabled = true;
|
|
151
151
|
this.emit("deviceEnabled", this.deviceState);
|
|
152
152
|
}
|
|
153
|
+
getDeviceType = () => {
|
|
154
|
+
return this.deviceType;
|
|
155
|
+
};
|
|
153
156
|
setConfig(storage, constraints) {
|
|
154
157
|
this.storageConfig = this.createStorageConfig(storage);
|
|
155
158
|
this.constraints = constraints ? toMediaTrackConstraints(constraints) : undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
2
|
+
import type { DeviceManagerConfig } from "./types";
|
|
3
|
+
import type { ReconnectConfig } from "@fishjam-cloud/ts-client";
|
|
4
|
+
interface FishjamProviderProps extends PropsWithChildren {
|
|
5
|
+
config?: {
|
|
6
|
+
reconnect?: ReconnectConfig | boolean;
|
|
7
|
+
};
|
|
8
|
+
deviceManagerDefaultConfig?: DeviceManagerConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare function FishjamProvider({ children, config, deviceManagerDefaultConfig }: FishjamProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=fishjamProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fishjamProvider.d.ts","sourceRoot":"","sources":["../src/fishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/C,OAAO,KAAK,EAAE,mBAAmB,EAAoB,MAAM,SAAS,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAA;KAAE,CAAC;IACnD,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;CAClD;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,oBAAoB,2CAmCrG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { Client } from "./Client";
|
|
4
|
+
import { useTrackManager } from "./trackManager";
|
|
5
|
+
import { useClientState } from "./hooks/clientState";
|
|
6
|
+
import { FishjamContext } from "./hooks/fishjamContext";
|
|
7
|
+
export function FishjamProvider({ children, config, deviceManagerDefaultConfig }) {
|
|
8
|
+
const client = useRef(new Client({
|
|
9
|
+
clientConfig: config,
|
|
10
|
+
deviceManagerDefaultConfig,
|
|
11
|
+
}));
|
|
12
|
+
// TODO: do the same for client config or just remove the Client class
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!deviceManagerDefaultConfig)
|
|
15
|
+
return;
|
|
16
|
+
client.current.setDeviceManagerConfig(deviceManagerDefaultConfig);
|
|
17
|
+
}, [deviceManagerDefaultConfig]);
|
|
18
|
+
const state = useClientState(client.current);
|
|
19
|
+
const tsClient = client.current.getTsClient();
|
|
20
|
+
const screenshareState = useState(null);
|
|
21
|
+
const videoTrackManager = useTrackManager({
|
|
22
|
+
mediaManager: client.current.videoDeviceManager,
|
|
23
|
+
tsClient,
|
|
24
|
+
});
|
|
25
|
+
const audioTrackManager = useTrackManager({
|
|
26
|
+
mediaManager: client.current.audioDeviceManager,
|
|
27
|
+
tsClient,
|
|
28
|
+
});
|
|
29
|
+
return (_jsx(FishjamContext.Provider, { value: { state, screenshareState, videoTrackManager, audioTrackManager }, children: children }));
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientState.d.ts","sourceRoot":"","sources":["../../src/hooks/clientState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAmDxC,eAAO,MAAM,cAAc,WAAY,MAAM,UAwC5C,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
2
|
+
const eventNames = [
|
|
3
|
+
"socketOpen",
|
|
4
|
+
"socketError",
|
|
5
|
+
"socketClose",
|
|
6
|
+
"authSuccess",
|
|
7
|
+
"authError",
|
|
8
|
+
"disconnected",
|
|
9
|
+
"joined",
|
|
10
|
+
"joinError",
|
|
11
|
+
"peerJoined",
|
|
12
|
+
"peerUpdated",
|
|
13
|
+
"peerLeft",
|
|
14
|
+
"reconnected",
|
|
15
|
+
"reconnectionRetriesLimitReached",
|
|
16
|
+
"reconnectionStarted",
|
|
17
|
+
"componentAdded",
|
|
18
|
+
"componentUpdated",
|
|
19
|
+
"componentRemoved",
|
|
20
|
+
"trackReady",
|
|
21
|
+
"trackAdded",
|
|
22
|
+
"trackRemoved",
|
|
23
|
+
"trackUpdated",
|
|
24
|
+
"bandwidthEstimationChanged",
|
|
25
|
+
"encodingChanged",
|
|
26
|
+
"voiceActivityChanged",
|
|
27
|
+
"deviceDisabled",
|
|
28
|
+
"deviceEnabled",
|
|
29
|
+
"managerInitialized",
|
|
30
|
+
"managerStarted",
|
|
31
|
+
"deviceStopped",
|
|
32
|
+
"deviceReady",
|
|
33
|
+
"devicesStarted",
|
|
34
|
+
"devicesReady",
|
|
35
|
+
"error",
|
|
36
|
+
"targetTrackEncodingRequested",
|
|
37
|
+
"localTrackAdded",
|
|
38
|
+
"localTrackRemoved",
|
|
39
|
+
"localTrackReplaced",
|
|
40
|
+
"localTrackMuted",
|
|
41
|
+
"localTrackUnmuted",
|
|
42
|
+
"localTrackBandwidthSet",
|
|
43
|
+
"localTrackEncodingBandwidthSet",
|
|
44
|
+
"localTrackEncodingEnabled",
|
|
45
|
+
"localTrackEncodingDisabled",
|
|
46
|
+
"localPeerMetadataChanged",
|
|
47
|
+
"localTrackMetadataChanged",
|
|
48
|
+
"disconnectRequested",
|
|
49
|
+
];
|
|
50
|
+
export const useClientState = (client) => {
|
|
51
|
+
const mutationRef = useRef(false);
|
|
52
|
+
const subscribe = useCallback((subscribeCallback) => {
|
|
53
|
+
const callback = () => {
|
|
54
|
+
mutationRef.current = true;
|
|
55
|
+
subscribeCallback();
|
|
56
|
+
};
|
|
57
|
+
eventNames.forEach((eventName) => client.on(eventName, callback));
|
|
58
|
+
return () => {
|
|
59
|
+
eventNames.forEach((eventName) => client.removeListener(eventName, callback));
|
|
60
|
+
};
|
|
61
|
+
}, [client]);
|
|
62
|
+
const lastSnapshotRef = useRef(null);
|
|
63
|
+
const getSnapshot = useCallback(() => {
|
|
64
|
+
if (mutationRef.current || lastSnapshotRef.current === null) {
|
|
65
|
+
lastSnapshotRef.current = {
|
|
66
|
+
remote: client.peers,
|
|
67
|
+
media: client.media,
|
|
68
|
+
bandwidthEstimation: client.bandwidthEstimation,
|
|
69
|
+
tracks: client.peersTracks,
|
|
70
|
+
local: client.local,
|
|
71
|
+
status: client.status,
|
|
72
|
+
devices: client.devices,
|
|
73
|
+
client: client,
|
|
74
|
+
reconnectionStatus: client.reconnectionStatus,
|
|
75
|
+
};
|
|
76
|
+
mutationRef.current = false;
|
|
77
|
+
}
|
|
78
|
+
return lastSnapshotRef.current;
|
|
79
|
+
}, [client]);
|
|
80
|
+
return useSyncExternalStore(subscribe, getSnapshot);
|
|
81
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UseConnect } from "../types";
|
|
2
|
+
import type { UseReconnection } from "../state.types";
|
|
3
|
+
export declare function useConnect(): UseConnect;
|
|
4
|
+
export declare function useDisconnect(): () => void;
|
|
5
|
+
export declare function useReconnection(): UseReconnection;
|
|
6
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,UAAU,IAAI,UAAU,CAWvC;AAED,wBAAgB,aAAa,eAM5B;AAED,wBAAgB,eAAe,IAAI,eAAe,CASjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useFishjamContext } from "./fishjamContext";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
export function useConnect() {
|
|
4
|
+
const { state } = useFishjamContext();
|
|
5
|
+
return useMemo(() => {
|
|
6
|
+
return (config) => {
|
|
7
|
+
state.client.connect(config);
|
|
8
|
+
return () => {
|
|
9
|
+
state.client.disconnect();
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}, [state.client]);
|
|
13
|
+
}
|
|
14
|
+
export function useDisconnect() {
|
|
15
|
+
const { state } = useFishjamContext();
|
|
16
|
+
return useCallback(() => {
|
|
17
|
+
state.client.disconnect();
|
|
18
|
+
}, [state.client]);
|
|
19
|
+
}
|
|
20
|
+
export function useReconnection() {
|
|
21
|
+
const { state } = useFishjamContext();
|
|
22
|
+
return {
|
|
23
|
+
status: state.reconnectionStatus,
|
|
24
|
+
isReconnecting: state.reconnectionStatus === "reconnecting",
|
|
25
|
+
isError: state.reconnectionStatus === "error",
|
|
26
|
+
isIdle: state.reconnectionStatus === "idle",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/hooks/devices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,wBAAgB,SAAS,IAAI,YAAY,GAAG,YAAY,CAGvD;AAED,wBAAgB,aAAa,IAAI,YAAY,GAAG,YAAY,CAG3D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useFishjamContext } from "./fishjamContext";
|
|
2
|
+
export function useCamera() {
|
|
3
|
+
const { state, videoTrackManager } = useFishjamContext();
|
|
4
|
+
return { ...state.devices.camera, ...videoTrackManager };
|
|
5
|
+
}
|
|
6
|
+
export function useMicrophone() {
|
|
7
|
+
const { state, audioTrackManager } = useFishjamContext();
|
|
8
|
+
return { ...state.devices.microphone, ...audioTrackManager };
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fishjamContext.d.ts","sourceRoot":"","sources":["../../src/hooks/fishjamContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,cAAc,oDAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAGb,kBAAkB,CACrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
export const FishjamContext = createContext(null);
|
|
3
|
+
export function useFishjamContext() {
|
|
4
|
+
const context = useContext(FishjamContext);
|
|
5
|
+
if (!context)
|
|
6
|
+
throw new Error("useFishjamContext must be used within a FishjamContextProvider");
|
|
7
|
+
return context;
|
|
8
|
+
}
|