@streamyy/client 0.2.0 → 0.4.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.
Files changed (41) hide show
  1. package/README.md +4 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/client.d.ts +6 -6
  4. package/dist/client.js +3 -3
  5. package/dist/components/CallControls.d.ts +9 -1
  6. package/dist/components/CallControls.d.ts.map +1 -1
  7. package/dist/components/CallControls.js +13 -8
  8. package/dist/components/CallControls.js.map +1 -1
  9. package/dist/components/IncomingCallCard.d.ts +7 -3
  10. package/dist/components/IncomingCallCard.d.ts.map +1 -1
  11. package/dist/components/IncomingCallCard.js +18 -25
  12. package/dist/components/IncomingCallCard.js.map +1 -1
  13. package/dist/components/StreammyCallWidget.d.ts +17 -2
  14. package/dist/components/StreammyCallWidget.d.ts.map +1 -1
  15. package/dist/components/StreammyCallWidget.js +220 -119
  16. package/dist/components/StreammyCallWidget.js.map +1 -1
  17. package/dist/components/StreamyyCallWidget.d.ts +27 -0
  18. package/dist/components/StreamyyCallWidget.d.ts.map +1 -0
  19. package/dist/components/StreamyyCallWidget.js +347 -0
  20. package/dist/components/StreamyyCallWidget.js.map +1 -0
  21. package/dist/components/VideoStage.d.ts.map +1 -1
  22. package/dist/components/VideoStage.js +12 -48
  23. package/dist/components/VideoStage.js.map +1 -1
  24. package/dist/components/VideoTile.d.ts +1 -1
  25. package/dist/components/VideoTile.d.ts.map +1 -1
  26. package/dist/components/VideoTile.js +18 -14
  27. package/dist/components/VideoTile.js.map +1 -1
  28. package/dist/hooks/useRingtone.d.ts +2 -2
  29. package/dist/hooks/useRingtone.d.ts.map +1 -1
  30. package/dist/hooks/useRingtone.js +11 -7
  31. package/dist/hooks/useRingtone.js.map +1 -1
  32. package/dist/hooks/useStreamyy.d.ts +28 -0
  33. package/dist/hooks/useStreamyy.d.ts.map +1 -0
  34. package/dist/hooks/useStreamyy.js +533 -0
  35. package/dist/hooks/useStreamyy.js.map +1 -0
  36. package/dist/index.d.ts +2 -2
  37. package/dist/index.js +2 -2
  38. package/dist/types.d.ts +30 -30
  39. package/dist/webrtc/peer-session.d.ts +3 -3
  40. package/dist/webrtc/peer-session.js +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ import { type PropsWithChildren } from "react";
2
+ import type { CallStatus, CallType } from "@streamyy/core";
3
+ import { type StreamyyClient } from "../client.js";
4
+ import type { StreamyyActiveCall, StreamyyCallMediaState, StreamyyClientOptions } from "../types.js";
5
+ interface StreamyyContextValue {
6
+ client: StreamyyClient;
7
+ activeCall: StreamyyActiveCall | null;
8
+ callStatus: CallStatus | "idle";
9
+ connected: boolean;
10
+ reconnecting: boolean;
11
+ media: StreamyyCallMediaState;
12
+ initiateCall(receiverId: string, callType: CallType, metadata?: Record<string, unknown>): Promise<void>;
13
+ startAudioCall(receiverId: string, metadata?: Record<string, unknown>): Promise<void>;
14
+ startVideoCall(receiverId: string, metadata?: Record<string, unknown>): Promise<void>;
15
+ acceptCall(callId?: string): Promise<void>;
16
+ declineCall(callId?: string, reason?: string): Promise<void>;
17
+ cancelCall(callId?: string): Promise<void>;
18
+ endCall(callId?: string): Promise<void>;
19
+ toggleMute(nextMuted?: boolean): void;
20
+ toggleVideo(nextEnabled?: boolean): void;
21
+ clearActiveCall(): void;
22
+ }
23
+ export declare const StreamyyProvider: ({ options, children, }: PropsWithChildren<{
24
+ options: StreamyyClientOptions;
25
+ }>) => any;
26
+ export declare const useStreamyy: () => StreamyyContextValue;
27
+ export {};
28
+ //# sourceMappingURL=useStreamyy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStreamyy.d.ts","sourceRoot":"","sources":["../../src/hooks/useStreamyy.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAIrB,UAAU,oBAAoB;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,eAAe,IAAI,IAAI,CAAC;CACzB;AAgCD,eAAO,MAAM,gBAAgB,GAAI,wBAG9B,iBAAiB,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAA;CAAE,CAAC,QAylBvD,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,oBAO9B,CAAC"}
@@ -0,0 +1,533 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useEffect, useMemo, useRef, useState, } from "react";
3
+ import { createStreamyyClient } from "../client.js";
4
+ import { getUserMedia, toggleStreamTracks } from "../webrtc/media.js";
5
+ import { StreamyyPeerSession } from "../webrtc/peer-session.js";
6
+ const StreamyyContext = createContext(null);
7
+ const ACTIVE_CALL_STORAGE_KEY = "streamyy:active-call";
8
+ const createEmptyRemoteStream = () => new MediaStream();
9
+ const stopStream = (stream) => {
10
+ if (!stream) {
11
+ return;
12
+ }
13
+ for (const track of stream.getTracks()) {
14
+ track.stop();
15
+ }
16
+ };
17
+ const canRestoreCall = (call) => {
18
+ if (!call) {
19
+ return false;
20
+ }
21
+ return (call.status === "accepted" ||
22
+ call.status === "ongoing" ||
23
+ call.status === "initiated" ||
24
+ call.status === "ringing");
25
+ };
26
+ export const StreamyyProvider = ({ options, children, }) => {
27
+ const clientRef = useRef(null);
28
+ if (!clientRef.current) {
29
+ clientRef.current = createStreamyyClient(options);
30
+ }
31
+ const client = clientRef.current;
32
+ const [connected, setConnected] = useState(false);
33
+ const [reconnecting, setReconnecting] = useState(false);
34
+ const [activeCall, setActiveCall] = useState(null);
35
+ const [callStatus, setCallStatus] = useState("idle");
36
+ const [localStream, setLocalStream] = useState(null);
37
+ const [remoteStream, setRemoteStream] = useState(null);
38
+ const [muted, setMuted] = useState(false);
39
+ const [videoEnabled, setVideoEnabled] = useState(false);
40
+ const activeCallRef = useRef(null);
41
+ const localStreamRef = useRef(null);
42
+ const remoteStreamRef = useRef(null);
43
+ const peerSessionRef = useRef(null);
44
+ const attachedLocalStreamRef = useRef(false);
45
+ const pendingOfferRef = useRef(null);
46
+ const shouldResumeCallRef = useRef(false);
47
+ useEffect(() => {
48
+ if (typeof window === "undefined") {
49
+ return;
50
+ }
51
+ const raw = window.sessionStorage.getItem(ACTIVE_CALL_STORAGE_KEY);
52
+ if (!raw) {
53
+ return;
54
+ }
55
+ try {
56
+ const restored = JSON.parse(raw);
57
+ if (!canRestoreCall(restored)) {
58
+ window.sessionStorage.removeItem(ACTIVE_CALL_STORAGE_KEY);
59
+ return;
60
+ }
61
+ updateCallState(restored);
62
+ setCallStatus(restored.status);
63
+ setVideoEnabled(restored.callType === "video");
64
+ shouldResumeCallRef.current = true;
65
+ }
66
+ catch {
67
+ window.sessionStorage.removeItem(ACTIVE_CALL_STORAGE_KEY);
68
+ }
69
+ }, []);
70
+ useEffect(() => {
71
+ activeCallRef.current = activeCall;
72
+ }, [activeCall]);
73
+ useEffect(() => {
74
+ localStreamRef.current = localStream;
75
+ }, [localStream]);
76
+ useEffect(() => {
77
+ remoteStreamRef.current = remoteStream;
78
+ }, [remoteStream]);
79
+ useEffect(() => {
80
+ if (typeof window === "undefined") {
81
+ return;
82
+ }
83
+ if (canRestoreCall(activeCall)) {
84
+ window.sessionStorage.setItem(ACTIVE_CALL_STORAGE_KEY, JSON.stringify(activeCall));
85
+ return;
86
+ }
87
+ window.sessionStorage.removeItem(ACTIVE_CALL_STORAGE_KEY);
88
+ }, [activeCall]);
89
+ const teardownPeerSession = () => {
90
+ peerSessionRef.current?.close();
91
+ peerSessionRef.current = null;
92
+ attachedLocalStreamRef.current = false;
93
+ pendingOfferRef.current = null;
94
+ };
95
+ const releaseMedia = () => {
96
+ stopStream(localStreamRef.current);
97
+ stopStream(remoteStreamRef.current);
98
+ localStreamRef.current = null;
99
+ remoteStreamRef.current = null;
100
+ setLocalStream(null);
101
+ setRemoteStream(null);
102
+ setMuted(false);
103
+ setVideoEnabled(false);
104
+ };
105
+ const resetCallArtifacts = () => {
106
+ teardownPeerSession();
107
+ releaseMedia();
108
+ };
109
+ const updateCallState = (updater) => {
110
+ setActiveCall((current) => {
111
+ const next = typeof updater === "function" ? updater(current) : updater;
112
+ activeCallRef.current = next;
113
+ return next;
114
+ });
115
+ };
116
+ const ensureLocalStream = async (callType) => {
117
+ const needsVideo = callType === "video";
118
+ const current = localStreamRef.current;
119
+ const hasAudio = Boolean(current?.getAudioTracks().length);
120
+ const hasVideo = Boolean(current?.getVideoTracks().length);
121
+ if (current && hasAudio && (!needsVideo || hasVideo)) {
122
+ toggleStreamTracks(current, "audio", !muted);
123
+ if (hasVideo) {
124
+ toggleStreamTracks(current, "video", videoEnabled || needsVideo);
125
+ }
126
+ return current;
127
+ }
128
+ stopStream(current ?? null);
129
+ const nextStream = await getUserMedia({
130
+ audio: true,
131
+ video: needsVideo,
132
+ });
133
+ localStreamRef.current = nextStream;
134
+ setLocalStream(nextStream);
135
+ setMuted(false);
136
+ setVideoEnabled(needsVideo);
137
+ toggleStreamTracks(nextStream, "audio", true);
138
+ toggleStreamTracks(nextStream, "video", needsVideo);
139
+ return nextStream;
140
+ };
141
+ const ensurePeerSession = (call) => {
142
+ const existing = peerSessionRef.current;
143
+ if (existing) {
144
+ return existing;
145
+ }
146
+ const remoteUserId = call.direction === "incoming" ? call.callerId : call.receiverId;
147
+ const session = new StreamyyPeerSession({
148
+ client,
149
+ callId: call.callId,
150
+ remoteUserId,
151
+ });
152
+ session.connection.ontrack = (event) => {
153
+ const streamed = event.streams[0];
154
+ if (streamed) {
155
+ remoteStreamRef.current = streamed;
156
+ setRemoteStream(streamed);
157
+ return;
158
+ }
159
+ const fallback = remoteStreamRef.current ?? createEmptyRemoteStream();
160
+ fallback.addTrack(event.track);
161
+ remoteStreamRef.current = fallback;
162
+ setRemoteStream(fallback);
163
+ };
164
+ session.connection.onconnectionstatechange = () => {
165
+ if (session.connection.connectionState === "connected") {
166
+ updateCallState((current) => current && current.callId === call.callId
167
+ ? {
168
+ ...current,
169
+ status: "ongoing",
170
+ }
171
+ : current);
172
+ setCallStatus("ongoing");
173
+ }
174
+ };
175
+ peerSessionRef.current = session;
176
+ return session;
177
+ };
178
+ const attachLocalStream = (session, stream) => {
179
+ if (attachedLocalStreamRef.current) {
180
+ return;
181
+ }
182
+ session.attachLocalStream(stream);
183
+ attachedLocalStreamRef.current = true;
184
+ };
185
+ const applyPendingOffer = async (call) => {
186
+ const offer = pendingOfferRef.current;
187
+ if (!offer) {
188
+ return;
189
+ }
190
+ pendingOfferRef.current = null;
191
+ const session = ensurePeerSession(call);
192
+ const stream = localStreamRef.current ?? (await ensureLocalStream(call.callType));
193
+ attachLocalStream(session, stream);
194
+ await session.applyRemoteDescription(offer);
195
+ const answer = await session.createAnswer();
196
+ client.sendAnswer(call.callId, call.callerId, answer);
197
+ updateCallState((current) => current && current.callId === call.callId
198
+ ? {
199
+ ...current,
200
+ status: "ongoing",
201
+ }
202
+ : current);
203
+ setCallStatus("ongoing");
204
+ };
205
+ const resumeActiveCall = async (call) => {
206
+ const resumableStatus = call.status === "accepted" || call.status === "ongoing";
207
+ if (!resumableStatus) {
208
+ return;
209
+ }
210
+ const stream = await ensureLocalStream(call.callType);
211
+ const session = ensurePeerSession(call);
212
+ attachLocalStream(session, stream);
213
+ const offer = await session.createOffer();
214
+ const remoteUserId = call.direction === "incoming" ? call.callerId : call.receiverId;
215
+ client.sendOffer(call.callId, remoteUserId, offer);
216
+ };
217
+ useEffect(() => {
218
+ const unsubscribers = [
219
+ client.on("connected", () => {
220
+ setConnected(true);
221
+ setReconnecting(false);
222
+ }),
223
+ client.on("disconnected", () => {
224
+ setConnected(false);
225
+ }),
226
+ client.on("reconnecting", () => {
227
+ setConnected(false);
228
+ setReconnecting(true);
229
+ }),
230
+ client.on("reconnected", () => {
231
+ setConnected(true);
232
+ setReconnecting(false);
233
+ }),
234
+ client.on("incomingCall", (call) => {
235
+ resetCallArtifacts();
236
+ updateCallState({
237
+ ...call,
238
+ direction: "incoming",
239
+ });
240
+ setCallStatus(call.status);
241
+ }),
242
+ client.on("callInitiated", (call) => {
243
+ updateCallState({
244
+ callId: call.callId,
245
+ callerId: call.callerId,
246
+ receiverId: call.receiverId,
247
+ callType: call.callType,
248
+ status: call.status,
249
+ direction: call.callerId === options.userId ? "outgoing" : "incoming",
250
+ ...(call.metadata ? { metadata: call.metadata } : {}),
251
+ });
252
+ setCallStatus(call.status);
253
+ }),
254
+ client.on("callAccepted", (payload) => {
255
+ updateCallState((current) => current
256
+ ? {
257
+ ...current,
258
+ callId: current.direction === "outgoing" &&
259
+ (current.callId === payload.callId || current.callId.startsWith("pending-"))
260
+ ? payload.callId
261
+ : current.callId,
262
+ status: payload.status,
263
+ }
264
+ : current);
265
+ setCallStatus(payload.status);
266
+ const current = activeCallRef.current;
267
+ if (!current ||
268
+ current.direction !== "outgoing" ||
269
+ (current.callId !== payload.callId && !current.callId.startsWith("pending-"))) {
270
+ return;
271
+ }
272
+ void (async () => {
273
+ const liveCall = current.callId === payload.callId
274
+ ? current
275
+ : {
276
+ ...current,
277
+ callId: payload.callId,
278
+ };
279
+ const stream = await ensureLocalStream(liveCall.callType);
280
+ const session = ensurePeerSession(liveCall);
281
+ attachLocalStream(session, stream);
282
+ const offer = await session.createOffer();
283
+ client.sendOffer(payload.callId, liveCall.receiverId, offer);
284
+ })();
285
+ }),
286
+ client.on("callDeclined", (payload) => {
287
+ updateCallState((current) => current && current.callId === payload.callId
288
+ ? {
289
+ ...current,
290
+ status: payload.status,
291
+ }
292
+ : current);
293
+ setCallStatus(payload.status);
294
+ resetCallArtifacts();
295
+ }),
296
+ client.on("callCancelled", (payload) => {
297
+ updateCallState((current) => current && current.callId === payload.callId
298
+ ? {
299
+ ...current,
300
+ status: payload.status,
301
+ }
302
+ : current);
303
+ setCallStatus(payload.status);
304
+ resetCallArtifacts();
305
+ }),
306
+ client.on("callEnded", (payload) => {
307
+ updateCallState((current) => current && current.callId === payload.callId
308
+ ? {
309
+ ...current,
310
+ status: payload.status,
311
+ }
312
+ : current);
313
+ setCallStatus(payload.status);
314
+ resetCallArtifacts();
315
+ }),
316
+ client.on("offer", (payload) => {
317
+ const current = activeCallRef.current;
318
+ if (!current || current.callId !== payload.callId) {
319
+ return;
320
+ }
321
+ void (async () => {
322
+ if (current.direction !== "incoming") {
323
+ return;
324
+ }
325
+ if (current.status !== "accepted" && current.status !== "ongoing") {
326
+ pendingOfferRef.current = payload.payload;
327
+ return;
328
+ }
329
+ const session = ensurePeerSession(current);
330
+ const stream = localStreamRef.current ?? (await ensureLocalStream(current.callType));
331
+ attachLocalStream(session, stream);
332
+ await session.applyRemoteDescription(payload.payload);
333
+ const answer = await session.createAnswer();
334
+ client.sendAnswer(current.callId, current.callerId, answer);
335
+ updateCallState((call) => call && call.callId === current.callId
336
+ ? {
337
+ ...call,
338
+ status: "ongoing",
339
+ }
340
+ : call);
341
+ setCallStatus("ongoing");
342
+ })();
343
+ }),
344
+ client.on("answer", (payload) => {
345
+ const current = activeCallRef.current;
346
+ if (!current || current.callId !== payload.callId) {
347
+ return;
348
+ }
349
+ void (async () => {
350
+ const session = ensurePeerSession(current);
351
+ await session.applyRemoteDescription(payload.payload);
352
+ updateCallState((call) => call && call.callId === current.callId
353
+ ? {
354
+ ...call,
355
+ status: "ongoing",
356
+ }
357
+ : call);
358
+ setCallStatus("ongoing");
359
+ })();
360
+ }),
361
+ client.on("iceCandidate", (payload) => {
362
+ const current = activeCallRef.current;
363
+ if (!current || current.callId !== payload.callId) {
364
+ return;
365
+ }
366
+ void ensurePeerSession(current).addIceCandidate(payload.payload);
367
+ }),
368
+ ];
369
+ return () => {
370
+ for (const unsubscribe of unsubscribers) {
371
+ unsubscribe();
372
+ }
373
+ resetCallArtifacts();
374
+ };
375
+ }, [client, options.userId]);
376
+ useEffect(() => {
377
+ if (!connected || !shouldResumeCallRef.current) {
378
+ return;
379
+ }
380
+ const current = activeCallRef.current;
381
+ if (!current || !canRestoreCall(current)) {
382
+ shouldResumeCallRef.current = false;
383
+ return;
384
+ }
385
+ shouldResumeCallRef.current = false;
386
+ void resumeActiveCall(current);
387
+ }, [connected]);
388
+ const media = useMemo(() => ({
389
+ localStream,
390
+ remoteStream,
391
+ muted,
392
+ videoEnabled,
393
+ hasLocalAudio: Boolean(localStream?.getAudioTracks().length),
394
+ hasLocalVideo: Boolean(localStream?.getVideoTracks().length),
395
+ hasRemoteVideo: Boolean(remoteStream?.getVideoTracks().length),
396
+ }), [localStream, muted, remoteStream, videoEnabled]);
397
+ const initiateCall = async (receiverId, callType, metadata) => {
398
+ const nextReceiverId = receiverId.trim();
399
+ if (!nextReceiverId) {
400
+ return;
401
+ }
402
+ await ensureLocalStream(callType);
403
+ updateCallState({
404
+ callId: `pending-${Date.now()}`,
405
+ callerId: options.userId,
406
+ receiverId: nextReceiverId,
407
+ callType,
408
+ status: "initiated",
409
+ direction: "outgoing",
410
+ ...(metadata ? { metadata } : {}),
411
+ });
412
+ setCallStatus("initiated");
413
+ client.initiateCall(nextReceiverId, callType, metadata);
414
+ };
415
+ const acceptCall = async (callId) => {
416
+ const current = activeCallRef.current;
417
+ const resolvedCallId = callId ?? current?.callId;
418
+ if (!resolvedCallId || !current) {
419
+ return;
420
+ }
421
+ const stream = await ensureLocalStream(current.callType);
422
+ const session = ensurePeerSession(current);
423
+ attachLocalStream(session, stream);
424
+ client.acceptCall(resolvedCallId);
425
+ updateCallState((call) => call && call.callId === resolvedCallId
426
+ ? {
427
+ ...call,
428
+ status: "accepted",
429
+ }
430
+ : call);
431
+ setCallStatus("accepted");
432
+ await applyPendingOffer(current);
433
+ };
434
+ const declineCall = async (callId, reason) => {
435
+ const resolvedCallId = callId ?? activeCallRef.current?.callId;
436
+ if (!resolvedCallId) {
437
+ return;
438
+ }
439
+ client.declineCall(resolvedCallId, reason);
440
+ updateCallState((current) => current && current.callId === resolvedCallId
441
+ ? {
442
+ ...current,
443
+ status: "declined",
444
+ }
445
+ : current);
446
+ setCallStatus("declined");
447
+ resetCallArtifacts();
448
+ };
449
+ const cancelCall = async (callId) => {
450
+ const resolvedCallId = callId ?? activeCallRef.current?.callId;
451
+ if (!resolvedCallId) {
452
+ return;
453
+ }
454
+ client.cancelCall(resolvedCallId);
455
+ updateCallState((current) => current && current.callId === resolvedCallId
456
+ ? {
457
+ ...current,
458
+ status: "cancelled",
459
+ }
460
+ : current);
461
+ setCallStatus("cancelled");
462
+ resetCallArtifacts();
463
+ };
464
+ const endCall = async (callId) => {
465
+ const resolvedCallId = callId ?? activeCallRef.current?.callId;
466
+ if (!resolvedCallId) {
467
+ return;
468
+ }
469
+ client.endCall(resolvedCallId);
470
+ updateCallState((current) => current && current.callId === resolvedCallId
471
+ ? {
472
+ ...current,
473
+ status: "ended",
474
+ }
475
+ : current);
476
+ setCallStatus("ended");
477
+ resetCallArtifacts();
478
+ };
479
+ const value = useMemo(() => ({
480
+ client,
481
+ connected,
482
+ reconnecting,
483
+ activeCall,
484
+ callStatus,
485
+ media,
486
+ initiateCall,
487
+ async startAudioCall(receiverId, metadata) {
488
+ await initiateCall(receiverId, "audio", metadata);
489
+ },
490
+ async startVideoCall(receiverId, metadata) {
491
+ await initiateCall(receiverId, "video", metadata);
492
+ },
493
+ acceptCall,
494
+ declineCall,
495
+ cancelCall,
496
+ endCall,
497
+ toggleMute(nextMuted) {
498
+ const stream = localStreamRef.current;
499
+ if (!stream) {
500
+ return;
501
+ }
502
+ const shouldMute = nextMuted ?? !muted;
503
+ toggleStreamTracks(stream, "audio", !shouldMute);
504
+ setMuted(shouldMute);
505
+ },
506
+ toggleVideo(nextEnabled) {
507
+ const stream = localStreamRef.current;
508
+ if (!stream || !stream.getVideoTracks().length) {
509
+ return;
510
+ }
511
+ const shouldEnable = nextEnabled ?? !videoEnabled;
512
+ toggleStreamTracks(stream, "video", shouldEnable);
513
+ setVideoEnabled(shouldEnable);
514
+ },
515
+ clearActiveCall() {
516
+ resetCallArtifacts();
517
+ updateCallState(null);
518
+ setCallStatus("idle");
519
+ if (typeof window !== "undefined") {
520
+ window.sessionStorage.removeItem(ACTIVE_CALL_STORAGE_KEY);
521
+ }
522
+ },
523
+ }), [activeCall, callStatus, client, connected, media, muted, reconnecting, videoEnabled]);
524
+ return _jsx(StreamyyContext.Provider, { value: value, children: children });
525
+ };
526
+ export const useStreamyy = () => {
527
+ const context = useContext(StreamyyContext);
528
+ if (!context) {
529
+ throw new Error("useStreamyy must be used inside StreamyyProvider.");
530
+ }
531
+ return context;
532
+ };
533
+ //# sourceMappingURL=useStreamyy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStreamyy.js","sourceRoot":"","sources":["../../src/hooks/useStreamyy.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export * from "./client.js";
2
2
  export * from "./components/CallControls.js";
3
3
  export * from "./components/IncomingCallCard.js";
4
- export * from "./components/StreammyCallWidget.js";
4
+ export * from "./components/StreamyyCallWidget.js";
5
5
  export * from "./components/VideoStage.js";
6
6
  export * from "./components/VideoTile.js";
7
7
  export * from "./hooks/useRingtone.js";
8
- export * from "./hooks/useStreammy.js";
8
+ export * from "./hooks/useStreamyy.js";
9
9
  export * from "./types.js";
10
10
  export * from "./webrtc/media.js";
11
11
  export * from "./webrtc/peer-session.js";
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export * from "./client.js";
2
2
  export * from "./components/CallControls.js";
3
3
  export * from "./components/IncomingCallCard.js";
4
- export * from "./components/StreammyCallWidget.js";
4
+ export * from "./components/StreamyyCallWidget.js";
5
5
  export * from "./components/VideoStage.js";
6
6
  export * from "./components/VideoTile.js";
7
7
  export * from "./hooks/useRingtone.js";
8
- export * from "./hooks/useStreammy.js";
8
+ export * from "./hooks/useStreamyy.js";
9
9
  export * from "./types.js";
10
10
  export * from "./webrtc/media.js";
11
11
  export * from "./webrtc/peer-session.js";