spent 3h fixing this
This commit is contained in:
parent
0426bf3282
commit
f04b76dadc
3 changed files with 14 additions and 23 deletions
|
|
@ -136,10 +136,7 @@ export default function DMChannelContent(
|
||||||
setSessionError(null);
|
setSessionError(null);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const session = await getSession(otherUser.id, {
|
const session = await getSession(otherUser.id, otherUser.olmAccount);
|
||||||
identityKey: otherUser.olmAccount.identityKey,
|
|
||||||
oneTimeKeys: otherUser.olmAccount.oneTimeKeys,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (session) {
|
if (session) {
|
||||||
setOlmSession(session);
|
setOlmSession(session);
|
||||||
|
|
@ -153,7 +150,7 @@ export default function DMChannelContent(
|
||||||
};
|
};
|
||||||
|
|
||||||
loadSession();
|
loadSession();
|
||||||
}, [isReady, olmAccount, otherUser, password, getSession])
|
}, [isReady, olmAccount, otherUser, password,])
|
||||||
|
|
||||||
// Check if OLM is ready
|
// Check if OLM is ready
|
||||||
if (!isReady || !olmAccount) {
|
if (!isReady || !olmAccount) {
|
||||||
|
|
|
||||||
|
|
@ -276,8 +276,8 @@ export function OlmProvider({
|
||||||
}
|
}
|
||||||
|
|
||||||
const otk = recipientOlmAccount.oneTimeKeys[0];
|
const otk = recipientOlmAccount.oneTimeKeys[0];
|
||||||
const Olm = await loadOlm();
|
const Olm: typeof import("@matrix-org/olm") = await loadOlm();
|
||||||
const newSession = new Olm.Session();
|
const newSession: Olm.Session = new Olm.Session();
|
||||||
|
|
||||||
newSession.create_outbound(
|
newSession.create_outbound(
|
||||||
olmAccount!,
|
olmAccount!,
|
||||||
|
|
|
||||||
|
|
@ -159,12 +159,6 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
if (!currentUserId) {
|
if (!currentUserId) {
|
||||||
console.error("[Socket]: No user ID available");
|
console.error("[Socket]: No user ID available");
|
||||||
return;
|
return;
|
||||||
} else if (
|
|
||||||
data.participants.length !== 2 ||
|
|
||||||
data.participants.some((participant) => participant === currentUserId)
|
|
||||||
) {
|
|
||||||
console.error("[Socket]: Invalid DM data, participants:", data.participants, "currentUserId:", currentUserId);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract sender from participants
|
// Extract sender from participants
|
||||||
|
|
@ -229,14 +223,14 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!olmAccount || !olmIsReady || messageQueueRef.current.length === 0) return;
|
if (!olmAccount || !olmIsReady || messageQueueRef.current.length === 0) return;
|
||||||
|
|
||||||
console.log(`[Socket]: OLM is now ready, processing ${messageQueueRef.current.length} queued messages`);
|
console.log(`[Socket - processQueue]: OLM is now ready, processing ${messageQueueRef.current.length} queued messages`);
|
||||||
|
|
||||||
const processQueue = async () => {
|
const processQueue = async () => {
|
||||||
const queue = [...messageQueueRef.current];
|
const queue = [...messageQueueRef.current];
|
||||||
messageQueueRef.current = []; // Clear queue
|
messageQueueRef.current = []; // Clear queue
|
||||||
|
|
||||||
for (const data of queue) {
|
for (const data of queue) {
|
||||||
console.log("[Socket]: Processing queued message:", data);
|
console.log("[Socket - processQueue]: Processing queued message:", data);
|
||||||
await processIncomingDM(data);
|
await processIncomingDM(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -290,7 +284,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
if (!oldStatus) {
|
if (!oldStatus) {
|
||||||
console.log("🔌 User default status set to online");
|
console.log("[Socket - setUserDefaultStatus]: User default status set to online");
|
||||||
updateAndRefetchUserStatus("online", false);
|
updateAndRefetchUserStatus("online", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -298,7 +292,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
if (newStatus === "offline") {
|
if (newStatus === "offline") {
|
||||||
updateAndRefetchUserStatus(newStatus, oldStatus.isUserSet);
|
updateAndRefetchUserStatus(newStatus, oldStatus.isUserSet);
|
||||||
} else if (!oldStatus.isUserSet) {
|
} else if (!oldStatus.isUserSet) {
|
||||||
console.log("🔌 User default status set to online");
|
console.log("[Socket - setUserDefaultStatus]: User default status set to online");
|
||||||
updateAndRefetchUserStatus(newStatus, oldStatus.isUserSet);
|
updateAndRefetchUserStatus(newStatus, oldStatus.isUserSet);
|
||||||
} else {
|
} else {
|
||||||
updateAndRefetchUserStatus(oldStatus.status, oldStatus.isUserSet);
|
updateAndRefetchUserStatus(oldStatus.status, oldStatus.isUserSet);
|
||||||
|
|
@ -306,7 +300,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.on("connect", () => {
|
socket.on("connect", () => {
|
||||||
console.log("✅ Connected to socket - Authentication successful!");
|
console.log("[Socket - connect]: Connected to socket - Authentication successful!");
|
||||||
setSocketStatus("connected");
|
setSocketStatus("connected");
|
||||||
updateSocketInfo({
|
updateSocketInfo({
|
||||||
connectedAt: Date.now(),
|
connectedAt: Date.now(),
|
||||||
|
|
@ -329,7 +323,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("connect_error", (err) => {
|
socket.on("connect_error", (err) => {
|
||||||
console.error("❌ Socket connection error:", err.message);
|
console.error("[Socket - connect_error]: Socket connection error:", err.message);
|
||||||
setUserDefaultStatus("offline", userStatusRef.current);
|
setUserDefaultStatus("offline", userStatusRef.current);
|
||||||
setSocketStatus("error");
|
setSocketStatus("error");
|
||||||
updateSocketInfo({
|
updateSocketInfo({
|
||||||
|
|
@ -341,7 +335,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("disconnect", (reason) => {
|
socket.on("disconnect", (reason) => {
|
||||||
console.log("🔌 Disconnected from socket:", reason);
|
console.log("[Socket - disconnect]: Disconnected from socket:", reason);
|
||||||
setSocketStatus("disconnected");
|
setSocketStatus("disconnected");
|
||||||
updateSocketInfo({
|
updateSocketInfo({
|
||||||
ping: null,
|
ping: null,
|
||||||
|
|
@ -355,7 +349,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("reconnect_attempt", (attempt) => {
|
socket.on("reconnect_attempt", (attempt) => {
|
||||||
console.log("🔌 Reconnect attempt:", attempt);
|
console.log("[Socket - reconnect_attempt]: Reconnect attempt:", attempt);
|
||||||
setSocketStatus("connecting");
|
setSocketStatus("connecting");
|
||||||
updateSocketInfo({
|
updateSocketInfo({
|
||||||
ping: null,
|
ping: null,
|
||||||
|
|
@ -365,7 +359,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("reconnect_error", (error) => {
|
socket.on("reconnect_error", (error) => {
|
||||||
console.error("❌ Reconnect error:", error);
|
console.error("[Socker - reconnect_error]:", error);
|
||||||
setSocketStatus("error");
|
setSocketStatus("error");
|
||||||
updateSocketInfo({
|
updateSocketInfo({
|
||||||
ping: null,
|
ping: null,
|
||||||
|
|
@ -375,7 +369,7 @@ export function SocketProvider({ children, user, refetchUser }: SocketProviderPr
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("dm:new", async (data: { content: { type: 0 | 1; body: unknown }, participants: string[] }) => {
|
socket.on("dm:new", async (data: { content: { type: 0 | 1; body: unknown }, participants: string[] }) => {
|
||||||
console.log("🔌 New DM received:", data);
|
console.log("[Socket - dm:new]: New DM received:", data);
|
||||||
|
|
||||||
// Check if OLM account is loaded
|
// Check if OLM account is loaded
|
||||||
if (!olmAccount) {
|
if (!olmAccount) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue