diff --git a/app/src/features/chats/ChatBody.tsx b/app/src/features/chats/ChatBody.tsx index e493071a..3376ee3d 100644 --- a/app/src/features/chats/ChatBody.tsx +++ b/app/src/features/chats/ChatBody.tsx @@ -68,7 +68,12 @@ function ChatBody() { } }, [fetchNextPage, inView, chatId]); - const messages = chat?.messages?.filter((msg) => !msg.parentMessageId); + let messages = chat?.messages; + + if (chat?.type === "channel") { + messages?.filter((msg) => !msg.parentMessageId); + } + const threadMessages = activeThread ? chat?.messages.filter((msg) => msg.parentMessageId === activeThread) : []; @@ -123,9 +128,9 @@ function ChatBody() { ":hover": { backgroundColor: "var(--color-background-own-1)", color: "white", - transition: "0.2s", - }, - }, + transition: "0.2s" + } + } })} diff --git a/app/src/sockets/SocketProvider.tsx b/app/src/sockets/SocketProvider.tsx index 6496ec5a..83a55a55 100644 --- a/app/src/sockets/SocketProvider.tsx +++ b/app/src/sockets/SocketProvider.tsx @@ -23,6 +23,7 @@ import { useChat } from "@features/chats/hooks/useChat"; import { useCallContext } from "@features/calls/hooks/useCallContext"; import { useAppSelector } from "@hooks/useGlobalState"; import { resetRightSideBar } from "@state/side-bar/sideBar"; +import { getChatByID } from "@features/chats/utils/helpers"; const handleIncomingMessage = ( dispatch: Dispatch, @@ -79,9 +80,9 @@ function SocketProvider({ children }: SocketProviderProps) { const socket = useSocket(); const queryClient = useQueryClient(); - const userId = useAppSelector((state) => state.user.userInfo.id); - + const chats = useAppSelector((state) => state.chats.chats); const user = useAppSelector((state) => state.user.userInfo); + const userId = user.id; const { decrypt } = useEncryptDecrypt(); const { chat } = useChat(); @@ -172,16 +173,18 @@ function SocketProvider({ children }: SocketProviderProps) { }); }; const onReceiveMessage = (message: MessageInterface) => { - if (!chat) { - console.warn("No chat context available for decryption"); + const messageChat = getChatByID({ chats, chatID: message.chatId }); + + if (!messageChat) { + console.warn("No messageChat context available for decryption"); return; } - if (chat.type === "private") { + if (messageChat.type === "private") { decrypt({ message: message.content, - key: chat.encryptionKey!, - iv: chat.initializationVector! + key: messageChat.encryptionKey!, + iv: messageChat.initializationVector! }) .then((content) => { console.log("Decrypted content:", content); diff --git a/app/src/state/messages/chats.ts b/app/src/state/messages/chats.ts index faa45904..fe7d4175 100644 --- a/app/src/state/messages/chats.ts +++ b/app/src/state/messages/chats.ts @@ -355,7 +355,7 @@ export const { setName, setPhoto, setIsMention, - setIsSeen, + setIsSeen } = chatsSlice.actions; export default chatsSlice.reducer; export type { DetailedChatInterface, ChatsState };