Merge pull request #1 from tonyrewin/feature/sse-connect

Feature/sse connect
This commit is contained in:
Ilya Y 2023-11-16 18:42:32 +03:00 committed by GitHub
commit cf87fb460c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 13 deletions

View File

@ -32,12 +32,12 @@ export const InboxProvider = (props: { children: JSX.Element }) => {
const handleMessage = (sseMessage) => { const handleMessage = (sseMessage) => {
console.log('[context.inbox]:', sseMessage) console.log('[context.inbox]:', sseMessage)
// TODO: handle all action types: create update delete join left // 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 const relivedMessage = sseMessage.payload
setMessages((prev) => [...prev, relivedMessage]) setMessages((prev) => [...prev, relivedMessage])
} else if (['left', 'join'].includes(sseMessage.action)) { } else if (sseMessage.entity == 'chat') {
// TODO: set chat members const relivedChat = sseMessage.payload
console.debug(sseMessage) setChats((prev) => [...prev, relivedChat])
} }
} }

View File

@ -104,7 +104,7 @@ export const NotificationsProvider = (props: { children: JSX.Element }) => {
}, },
onmessage(event) { onmessage(event) {
const m: SSEMessage = JSON.parse(event.data) 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) console.log('[context.notifications] Received message:', m)
messageHandler()(m) messageHandler()(m)
} else { } else {

View File

@ -8,9 +8,9 @@ export default gql`
id id
body body
author author
createdAt created_at
replyTo reply_to
updatedAt updated_at
} }
} }
} }

View File

@ -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
}
}
`

View File

@ -5,13 +5,12 @@ export default gql`
loadMessagesBy(by: $by, limit: $limit, offset: $offset) { loadMessagesBy(by: $by, limit: $limit, offset: $offset) {
error error
messages { messages {
id
author author
body body
replyTo reply_to
createdAt created_at
id updated_at
updatedAt
replyTo
} }
} }
} }