mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
Make WebRTC call a class
This commit is contained in:
@@ -140,3 +140,7 @@ export function restoreKeys() {
|
|||||||
currentPublicKey = ub64(localStorage.getItem("publicKey")!);
|
currentPublicKey = ub64(localStorage.getItem("publicKey")!);
|
||||||
currentPrivateKey = ub64(localStorage.getItem("privateKey")!);
|
currentPrivateKey = ub64(localStorage.getItem("privateKey")!);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getAuthToken(): string | null {
|
||||||
|
return localStorage.getItem("authToken");
|
||||||
|
}
|
||||||
@@ -25,7 +25,6 @@ export class CallSignalingHandler {
|
|||||||
handleWebSocketMessage(message: CallSignalingMessage) {
|
handleWebSocketMessage(message: CallSignalingMessage) {
|
||||||
const { data } = message;
|
const { data } = message;
|
||||||
if (!data) {
|
if (!data) {
|
||||||
console.warn("Received call signaling message with no data:", message);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+781
-750
File diff suppressed because it is too large
Load Diff
@@ -36,10 +36,6 @@ export default function useCall() {
|
|||||||
const remoteScreenShareRef = globalRemoteScreenShareRef;
|
const remoteScreenShareRef = globalRemoteScreenShareRef;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (user.authToken) {
|
|
||||||
WebRTC.setAuthToken(user.authToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize call signaling handler
|
// Initialize call signaling handler
|
||||||
const signalingHandler = new CallSignalingHandler(() => ({
|
const signalingHandler = new CallSignalingHandler(() => ({
|
||||||
receiveCall: (userId: number, username: string) => {
|
receiveCall: (userId: number, username: string) => {
|
||||||
@@ -55,7 +51,7 @@ export default function useCall() {
|
|||||||
setCallSignalingHandler(signalingHandler);
|
setCallSignalingHandler(signalingHandler);
|
||||||
|
|
||||||
// Set up call state change handler
|
// Set up call state change handler
|
||||||
WebRTC.setCallStateChangeHandler((userId: number, state: string) => {
|
WebRTC.callbacks.onCallStateChange = (userId: number, state: string) => {
|
||||||
const call = chat.call;
|
const call = chat.call;
|
||||||
if (call.remoteUserId === userId) {
|
if (call.remoteUserId === userId) {
|
||||||
switch (state) {
|
switch (state) {
|
||||||
@@ -72,10 +68,10 @@ export default function useCall() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
// Set up remote audio stream handler
|
// Set up remote audio stream handler
|
||||||
WebRTC.setRemoteStreamHandler((_userId: number, stream: MediaStream) => {
|
WebRTC.callbacks.onRemoteStream = (_userId: number, stream: MediaStream) => {
|
||||||
if (!remoteAudioRef.current) {
|
if (!remoteAudioRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -97,10 +93,10 @@ export default function useCall() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("failed to attach remote stream:", e);
|
console.warn("failed to attach remote stream:", e);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
// Set up local video stream handler
|
// Set up local video stream handler
|
||||||
WebRTC.setLocalVideoStreamHandler((_userId: number, stream: MediaStream | null) => {
|
WebRTC.callbacks.onLocalVideoStream = (_userId: number, stream: MediaStream | null) => {
|
||||||
if (!localVideoRef.current) {
|
if (!localVideoRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -118,10 +114,10 @@ export default function useCall() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("failed to attach local video stream:", e);
|
console.warn("failed to attach local video stream:", e);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
// Set up remote video stream handler
|
// Set up remote video stream handler
|
||||||
WebRTC.setRemoteVideoStreamHandler((_userId: number, stream: MediaStream | null) => {
|
WebRTC.callbacks.onRemoteVideoStream = (_userId: number, stream: MediaStream | null) => {
|
||||||
if (!remoteVideoRef.current) {
|
if (!remoteVideoRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -139,10 +135,10 @@ export default function useCall() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("failed to attach remote video stream:", e);
|
console.warn("failed to attach remote video stream:", e);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
// Set up local screen share handler
|
// Set up local screen share handler
|
||||||
WebRTC.setLocalScreenShareHandler((_userId: number, stream: MediaStream | null) => {
|
WebRTC.callbacks.onLocalScreenShare = (_userId: number, stream: MediaStream | null) => {
|
||||||
if (!localScreenShareRef.current) {
|
if (!localScreenShareRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -160,10 +156,10 @@ export default function useCall() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("failed to attach local screen share stream:", e);
|
console.warn("failed to attach local screen share stream:", e);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
// Set up remote screen share handler
|
// Set up remote screen share handler
|
||||||
WebRTC.setRemoteScreenShareHandler((_userId: number, stream: MediaStream | null) => {
|
WebRTC.callbacks.onRemoteScreenShare = (_userId: number, stream: MediaStream | null) => {
|
||||||
if (!remoteScreenShareRef.current) {
|
if (!remoteScreenShareRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -181,7 +177,7 @@ export default function useCall() {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("failed to attach remote screen share stream:", e);
|
console.warn("failed to attach remote screen share stream:", e);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
WebRTC.cleanup();
|
WebRTC.cleanup();
|
||||||
|
|||||||
Reference in New Issue
Block a user