This commit is contained in:
2025-09-06 12:05:27 +03:00
Unverified
parent 7a9feda991
commit 7429289dc6
4 changed files with 27 additions and 24 deletions
+1 -1
View File
@@ -130,7 +130,7 @@ export class DMPanel extends MessagePanel {
this.addMessage({
id: envelope.id,
content: plaintext,
username: isAuthor ? "You" : this.dmData.username,
username: isAuthor ? this.currentUser.currentUser?.username ?? "You" : this.dmData.username,
timestamp: envelope.timestamp,
is_read: false,
is_edited: false
+1 -4
View File
@@ -1,6 +1,6 @@
import { create } from "zustand";
import type { Message, User, WebSocketMessage } from "../core/types";
import { request, reconnectWebSocket } from "../websocket";
import { request } from "../websocket";
import { MessagePanel } from "./panels/MessagePanel";
import { PublicChatPanel } from "./panels/PublicChatPanel";
import { DMPanel, type DMPanelData } from "./panels/DMPanel";
@@ -151,9 +151,6 @@ export const useAppState = create<AppState>((set, get) => ({
}
}));
// Reconnect WebSocket with new auth token
reconnectWebSocket();
try {
const payload: WebSocketMessage = {
type: "ping",
+18 -16
View File
@@ -44,16 +44,26 @@ export function setGlobalMessageHandler(handler: ((response: WebSocketMessage) =
}
export function request(payload: WebSocketMessage): Promise<WebSocketMessage> {
console.log("WebSocket request:", payload);
return new Promise((resolve, reject) => {
let listener: ((e: MessageEvent) => void) | null = null;
listener = (e) => {
resolve(JSON.parse(e.data));
websocket.removeEventListener("message", listener!);
}
websocket.addEventListener("message", listener);
websocket.send(JSON.stringify(payload))
function requestInner() {
let listener: ((e: MessageEvent) => void) | null = null;
listener = (e) => {
resolve(JSON.parse(e.data));
websocket.removeEventListener("message", listener!);
}
websocket.addEventListener("message", listener);
websocket.send(JSON.stringify(payload))
setTimeout(() => reject("Request timed out"), 10000);
setTimeout(() => reject("Request timed out"), 10000);
}
if (websocket.readyState == 0) {
websocket.addEventListener("open", requestInner);
setTimeout(() => reject("Request timed out"), 10000);
} else {
requestInner();
}
})
}
@@ -79,14 +89,6 @@ async function onError() {
websocket.addEventListener("error", onError);
}
/**
* Recreate WebSocket connection (useful when user logs in)
*/
export function reconnectWebSocket(): void {
websocket = create();
websocket.addEventListener("error", onError);
}
// --------------
// Initialization
// --------------