diff --git a/src/context/inbox.tsx b/src/context/inbox.tsx index 44cf75e2..e90dcbc3 100644 --- a/src/context/inbox.tsx +++ b/src/context/inbox.tsx @@ -32,12 +32,12 @@ export const InboxProvider = (props: { children: JSX.Element }) => { const handleMessage = (sseMessage) => { console.log('[context.inbox]:', sseMessage) // TODO: handle all action types: create update delete join left - if (['create', 'update', 'delete'].includes(sseMessage.action)) { + if (sseMessage.entity == 'message') { const relivedMessage = sseMessage.payload setMessages((prev) => [...prev, relivedMessage]) - } else if (['left', 'join'].includes(sseMessage.action)) { - // TODO: set chat members - console.debug(sseMessage) + } else if (sseMessage.entity == 'chat') { + const relivedChat = sseMessage.payload + setChats((prev) => [...prev, relivedChat]) } } diff --git a/src/context/notifications.tsx b/src/context/notifications.tsx index f0476e43..c7e28da2 100644 --- a/src/context/notifications.tsx +++ b/src/context/notifications.tsx @@ -104,7 +104,7 @@ export const NotificationsProvider = (props: { children: JSX.Element }) => { }, onmessage(event) { const m: SSEMessage = JSON.parse(event.data) - if (m.entity === 'chat') { + if (m.entity === 'chat' || m.entity == 'message') { console.log('[context.notifications] Received message:', m) messageHandler()(m) } else { diff --git a/src/graphql/mutation/create-chat-message.ts b/src/graphql/mutation/create-chat-message.ts index ef13221c..f82c0b0c 100644 --- a/src/graphql/mutation/create-chat-message.ts +++ b/src/graphql/mutation/create-chat-message.ts @@ -8,9 +8,9 @@ export default gql` id body author - createdAt - replyTo - updatedAt + created_at + reply_to + updated_at } } } diff --git a/src/graphql/mutation/mark-as-read.ts b/src/graphql/mutation/mark-as-read.ts new file mode 100644 index 00000000..955158c4 --- /dev/null +++ b/src/graphql/mutation/mark-as-read.ts @@ -0,0 +1,9 @@ +import { gql } from '@urql/core' + +export default gql` + mutation MarkAsReadMutation($message_id: Int!, $chat_id: String!) { + markAsRead(message_id: $message_id, chat_id: $chat_id) { + error + } + } +` diff --git a/src/graphql/query/chat-messages-load-by.ts b/src/graphql/query/chat-messages-load-by.ts index ed4ee950..d4567d60 100644 --- a/src/graphql/query/chat-messages-load-by.ts +++ b/src/graphql/query/chat-messages-load-by.ts @@ -5,13 +5,12 @@ export default gql` loadMessagesBy(by: $by, limit: $limit, offset: $offset) { error messages { + id author body - replyTo - createdAt - id - updatedAt - replyTo + reply_to + created_at + updated_at } } }