mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
Fix "this" being undefined
This commit is contained in:
@@ -4,7 +4,7 @@ import { MessagePanel, type MessagePanelState } from "../../panels/MessagePanel"
|
|||||||
import { ChatMessages } from "./ChatMessages";
|
import { ChatMessages } from "./ChatMessages";
|
||||||
import { ChatInputWrapper } from "./ChatInputWrapper";
|
import { ChatInputWrapper } from "./ChatInputWrapper";
|
||||||
import { setGlobalMessageHandler } from "../../../core/websocket";
|
import { setGlobalMessageHandler } from "../../../core/websocket";
|
||||||
import type { Message } from "../../../core/types";
|
import type { Message, WebSocketMessage } from "../../../core/types";
|
||||||
import defaultAvatar from "../../../resources/images/default-avatar.png";
|
import defaultAvatar from "../../../resources/images/default-avatar.png";
|
||||||
import AnimatedOpacity from "../core/animations/AnimatedOpacity";
|
import AnimatedOpacity from "../core/animations/AnimatedOpacity";
|
||||||
import type { DMPanel } from "../../panels/DMPanel";
|
import type { DMPanel } from "../../panels/DMPanel";
|
||||||
@@ -65,7 +65,7 @@ export function MessagePanelRenderer({ panel }: MessagePanelRendererProps) {
|
|||||||
|
|
||||||
// Set up WebSocket message handler for this panel
|
// Set up WebSocket message handler for this panel
|
||||||
if (panel.handleWebSocketMessage) {
|
if (panel.handleWebSocketMessage) {
|
||||||
setGlobalMessageHandler(panel.handleWebSocketMessage);
|
setGlobalMessageHandler((message: WebSocketMessage<any>) => panel.handleWebSocketMessage(message));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setPanelState(null);
|
setPanelState(null);
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ export function useDM() {
|
|||||||
|
|
||||||
// WebSocket message handler
|
// WebSocket message handler
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleWebSocketMessage = async (e: MessageEvent) => {
|
async function handleWebSocketMessage(e: MessageEvent) {
|
||||||
try {
|
try {
|
||||||
const msg = JSON.parse(e.data);
|
const msg = JSON.parse(e.data);
|
||||||
if (msg.type === "dmNew") {
|
if (msg.type === "dmNew") {
|
||||||
@@ -258,9 +258,10 @@ export function useDM() {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to handle WebSocket message:", error);
|
console.error("Failed to handle WebSocket message:", error);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
websocket.addEventListener("message", handleWebSocketMessage);
|
websocket.addEventListener("message", handleWebSocketMessage);
|
||||||
|
|
||||||
return () => websocket.removeEventListener("message", handleWebSocketMessage);
|
return () => websocket.removeEventListener("message", handleWebSocketMessage);
|
||||||
}, [chat.activeDm, user.currentUser, addMessage]);
|
}, [chat.activeDm, user.currentUser, addMessage]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user