Merge pull request #1 from tonyrewin/feature/sse-connect
Feature/sse connect
This commit is contained in:
commit
cf87fb460c
|
@ -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])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -8,9 +8,9 @@ export default gql`
|
||||||
id
|
id
|
||||||
body
|
body
|
||||||
author
|
author
|
||||||
createdAt
|
created_at
|
||||||
replyTo
|
reply_to
|
||||||
updatedAt
|
updated_at
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
9
src/graphql/mutation/mark-as-read.ts
Normal file
9
src/graphql/mutation/mark-as-read.ts
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user