mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
Clean up
This commit is contained in:
@@ -4,6 +4,7 @@ import { CallSignalingHandler } from "@/core/calls/signaling";
|
||||
import { setCallSignalingHandler } from "@/core/websocket";
|
||||
import { generateCallSessionKey, generateCallEmojis } from "@/core/calls/encryption";
|
||||
import { createRef, useEffect } from "react";
|
||||
import { doAfterInteraction } from "@/utils/utils";
|
||||
|
||||
// Global refs shared across all instances
|
||||
let globalRemoteAudioRef = createRef<HTMLAudioElement>();
|
||||
@@ -91,14 +92,7 @@ export default function useCall() {
|
||||
});
|
||||
|
||||
el.play().catch(() => {
|
||||
// Try to play after user interaction if autoplay is blocked
|
||||
const playAfterInteraction = () => {
|
||||
el.play().catch(() => {});
|
||||
document.removeEventListener("click", playAfterInteraction);
|
||||
document.removeEventListener("touchstart", playAfterInteraction);
|
||||
};
|
||||
document.addEventListener("click", playAfterInteraction);
|
||||
document.addEventListener("touchstart", playAfterInteraction);
|
||||
doAfterInteraction(() => el.play());
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn("failed to attach remote stream:", e);
|
||||
@@ -107,9 +101,7 @@ export default function useCall() {
|
||||
|
||||
// Set up local video stream handler
|
||||
WebRTC.setLocalVideoStreamHandler((_userId: number, stream: MediaStream | null) => {
|
||||
console.log("Local video stream handler called, stream:", stream, "ref exists:", !!localVideoRef.current);
|
||||
if (!localVideoRef.current) {
|
||||
console.warn("Local video ref not available yet");
|
||||
return;
|
||||
}
|
||||
const el = localVideoRef.current;
|
||||
@@ -118,9 +110,9 @@ export default function useCall() {
|
||||
el.muted = true; // Always mute local video to avoid feedback
|
||||
el.autoplay = true;
|
||||
if (stream) {
|
||||
console.log("Playing local video stream");
|
||||
el.play().catch((err) => {
|
||||
console.error("Failed to play local video:", err);
|
||||
doAfterInteraction(() => el.play()).catch(() => {});
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -130,9 +122,7 @@ export default function useCall() {
|
||||
|
||||
// Set up remote video stream handler
|
||||
WebRTC.setRemoteVideoStreamHandler((_userId: number, stream: MediaStream | null) => {
|
||||
console.log("Remote video stream handler called, stream:", stream, "ref exists:", !!remoteVideoRef.current);
|
||||
if (!remoteVideoRef.current) {
|
||||
console.warn("Remote video ref not available yet");
|
||||
return;
|
||||
}
|
||||
const el = remoteVideoRef.current;
|
||||
@@ -141,16 +131,9 @@ export default function useCall() {
|
||||
el.muted = false;
|
||||
el.autoplay = true;
|
||||
if (stream) {
|
||||
console.log("Playing remote video stream");
|
||||
el.play().catch((err) => {
|
||||
console.error("Failed to play remote video:", err);
|
||||
const playAfterInteraction = () => {
|
||||
el.play().catch(() => {});
|
||||
document.removeEventListener("click", playAfterInteraction);
|
||||
document.removeEventListener("touchstart", playAfterInteraction);
|
||||
};
|
||||
document.addEventListener("click", playAfterInteraction);
|
||||
document.addEventListener("touchstart", playAfterInteraction);
|
||||
doAfterInteraction(() => el.play()).catch(() => {});
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -160,9 +143,7 @@ export default function useCall() {
|
||||
|
||||
// Set up local screen share handler
|
||||
WebRTC.setLocalScreenShareHandler((_userId: number, stream: MediaStream | null) => {
|
||||
console.log("Local screen share handler called, stream:", stream, "ref exists:", !!localScreenShareRef.current);
|
||||
if (!localScreenShareRef.current) {
|
||||
console.warn("Local screen share ref not available yet");
|
||||
return;
|
||||
}
|
||||
const el = localScreenShareRef.current;
|
||||
@@ -171,9 +152,9 @@ export default function useCall() {
|
||||
el.muted = true;
|
||||
el.autoplay = true;
|
||||
if (stream) {
|
||||
console.log("Playing local screen share");
|
||||
el.play().catch((err) => {
|
||||
console.error("Failed to play local screen share:", err);
|
||||
doAfterInteraction(() => el.play()).catch(() => {});
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -183,9 +164,7 @@ export default function useCall() {
|
||||
|
||||
// Set up remote screen share handler
|
||||
WebRTC.setRemoteScreenShareHandler((_userId: number, stream: MediaStream | null) => {
|
||||
console.log("Remote screen share handler called, stream:", stream, "ref exists:", !!remoteScreenShareRef.current);
|
||||
if (!remoteScreenShareRef.current) {
|
||||
console.warn("Remote screen share ref not available yet");
|
||||
return;
|
||||
}
|
||||
const el = remoteScreenShareRef.current;
|
||||
@@ -194,16 +173,9 @@ export default function useCall() {
|
||||
el.muted = false;
|
||||
el.autoplay = true;
|
||||
if (stream) {
|
||||
console.log("Playing remote screen share");
|
||||
el.play().catch((err) => {
|
||||
console.error("Failed to play remote screen share:", err);
|
||||
const playAfterInteraction = () => {
|
||||
el.play().catch(() => {});
|
||||
document.removeEventListener("click", playAfterInteraction);
|
||||
document.removeEventListener("touchstart", playAfterInteraction);
|
||||
};
|
||||
document.addEventListener("click", playAfterInteraction);
|
||||
document.addEventListener("touchstart", playAfterInteraction);
|
||||
doAfterInteraction(() => el.play()).catch(() => {});
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -245,7 +217,6 @@ export default function useCall() {
|
||||
const hasPermission = await requestAudioPermissions();
|
||||
|
||||
if (!hasPermission) {
|
||||
console.log("Audio permission denied");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
fetchDMHistory,
|
||||
decryptDm,
|
||||
sendDMViaWebSocket
|
||||
} from "../../../core/api/dmApi";
|
||||
} from "@/core/api/dmApi";
|
||||
import type { User, Message, DmEncryptedJSON } from "@/core/types";
|
||||
import { websocket } from "@/core/websocket";
|
||||
|
||||
|
||||
@@ -88,11 +88,9 @@ export function CallWindow() {
|
||||
} else {
|
||||
if (shouldRender) {
|
||||
// Call ended - start exit animation
|
||||
console.log(`Call ended - starting exit animation. Was minimized: ${wasMinimized}`);
|
||||
setIsVisible(false);
|
||||
// After animation completes, stop rendering
|
||||
const timer = setTimeout(() => {
|
||||
console.log("Exit animation complete, removing window");
|
||||
setShouldRender(false);
|
||||
setCallData(null);
|
||||
setWasMinimized(false);
|
||||
@@ -195,12 +193,6 @@ export function CallWindow() {
|
||||
left: pipPosition.x,
|
||||
top: pipPosition.y
|
||||
} : undefined}
|
||||
ref={(el) => {
|
||||
if (el && !isVisible) {
|
||||
console.log(`Window classes: ${el.className}`);
|
||||
console.log(`Window state - was minimized: ${wasMinimized}, visible: ${isVisible}`);
|
||||
}
|
||||
}}
|
||||
onMouseDown={(e) => {
|
||||
if (call.isMinimized) {
|
||||
// Only start dragging if not clicking on a button
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
sendDmWithFiles,
|
||||
editDmEnvelope,
|
||||
deleteDmEnvelope
|
||||
} from "../../../../../core/api/dmApi";
|
||||
} from "@/core/api/dmApi";
|
||||
import type { DmEncryptedJSON, DmEnvelope, DMWebSocketMessage, EncryptedMessageJson, Message } from "@/core/types";
|
||||
import type { UserState } from "@/pages/chat/state";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user