subs-fix
This commit is contained in:
parent
47822553bd
commit
7fda54636d
|
@ -4,6 +4,8 @@ import { createChatClient } from '../graphql/privateGraphQLClient'
|
||||||
import type { Chat } from '../graphql/types.gen'
|
import type { Chat } from '../graphql/types.gen'
|
||||||
import { apiClient } from '../utils/apiClient'
|
import { apiClient } from '../utils/apiClient'
|
||||||
import newMessages from '../graphql/subs/new-messages'
|
import newMessages from '../graphql/subs/new-messages'
|
||||||
|
import type { Client } from '@urql/core'
|
||||||
|
import { pipe, subscribe } from 'wonka'
|
||||||
|
|
||||||
type InboxContextType = {
|
type InboxContextType = {
|
||||||
chats: Accessor<Chat[]>
|
chats: Accessor<Chat[]>
|
||||||
|
@ -23,7 +25,7 @@ export function useInbox() {
|
||||||
export const InboxProvider = (props: { children: JSX.Element }) => {
|
export const InboxProvider = (props: { children: JSX.Element }) => {
|
||||||
const [chats, setChats] = createSignal<Chat[]>([])
|
const [chats, setChats] = createSignal<Chat[]>([])
|
||||||
const [listener, setListener] = createSignal(console.debug)
|
const [listener, setListener] = createSignal(console.debug)
|
||||||
const subclient = createMemo(() => createChatClient(listener()))
|
const subclient = createMemo<Client>(() => createChatClient(listener()))
|
||||||
const loadChats = async () => {
|
const loadChats = async () => {
|
||||||
try {
|
try {
|
||||||
const newChats = await apiClient.getChats({ limit: 50, offset: 0 })
|
const newChats = await apiClient.getChats({ limit: 50, offset: 0 })
|
||||||
|
@ -50,9 +52,15 @@ export const InboxProvider = (props: { children: JSX.Element }) => {
|
||||||
loadChats,
|
loadChats,
|
||||||
setListener // setting listening handler
|
setListener // setting listening handler
|
||||||
}
|
}
|
||||||
onMount(() => {
|
|
||||||
const resp = subclient().subscription(newMessages, {})
|
onMount(async () => {
|
||||||
console.debug(resp)
|
const { unsubscribe } = pipe(
|
||||||
|
subclient().subscription(newMessages, {}),
|
||||||
|
subscribe((result) => {
|
||||||
|
console.debug(result) // { data: ... }
|
||||||
|
// TODO: handle data result
|
||||||
|
})
|
||||||
|
)
|
||||||
})
|
})
|
||||||
const value: InboxContextType = { chats, actions }
|
const value: InboxContextType = { chats, actions }
|
||||||
return <InboxContext.Provider value={value}>{props.children}</InboxContext.Provider>
|
return <InboxContext.Provider value={value}>{props.children}</InboxContext.Provider>
|
||||||
|
|
|
@ -54,9 +54,9 @@ export type AuthorsBy = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Chat = {
|
export type Chat = {
|
||||||
admins?: Maybe<Array<Maybe<Scalars['String']>>>
|
admins?: Maybe<Array<Maybe<Scalars['Int']>>>
|
||||||
createdAt: Scalars['Int']
|
createdAt: Scalars['Int']
|
||||||
createdBy: Scalars['String']
|
createdBy: Scalars['Int']
|
||||||
description?: Maybe<Scalars['String']>
|
description?: Maybe<Scalars['String']>
|
||||||
id: Scalars['String']
|
id: Scalars['String']
|
||||||
members?: Maybe<Array<Maybe<ChatMember>>>
|
members?: Maybe<Array<Maybe<ChatMember>>>
|
||||||
|
@ -65,7 +65,7 @@ export type Chat = {
|
||||||
title?: Maybe<Scalars['String']>
|
title?: Maybe<Scalars['String']>
|
||||||
unread?: Maybe<Scalars['Int']>
|
unread?: Maybe<Scalars['Int']>
|
||||||
updatedAt: Scalars['Int']
|
updatedAt: Scalars['Int']
|
||||||
users?: Maybe<Array<Maybe<Scalars['String']>>>
|
users?: Maybe<Array<Maybe<Scalars['Int']>>>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ChatInput = {
|
export type ChatInput = {
|
||||||
|
@ -78,6 +78,7 @@ export type ChatMember = {
|
||||||
id: Scalars['Int']
|
id: Scalars['Int']
|
||||||
lastSeen?: Maybe<Scalars['DateTime']>
|
lastSeen?: Maybe<Scalars['DateTime']>
|
||||||
name: Scalars['String']
|
name: Scalars['String']
|
||||||
|
online?: Maybe<Scalars['Boolean']>
|
||||||
slug: Scalars['String']
|
slug: Scalars['String']
|
||||||
userpic?: Maybe<Scalars['String']>
|
userpic?: Maybe<Scalars['String']>
|
||||||
}
|
}
|
||||||
|
@ -139,12 +140,13 @@ export type LoadShoutsOptions = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Message = {
|
export type Message = {
|
||||||
author: Scalars['String']
|
author: Scalars['Int']
|
||||||
body: Scalars['String']
|
body: Scalars['String']
|
||||||
chatId: Scalars['String']
|
chatId: Scalars['String']
|
||||||
createdAt: Scalars['Int']
|
createdAt: Scalars['Int']
|
||||||
id: Scalars['Int']
|
id: Scalars['Int']
|
||||||
replyTo?: Maybe<Scalars['String']>
|
replyTo?: Maybe<Scalars['String']>
|
||||||
|
seen?: Maybe<Scalars['Boolean']>
|
||||||
updatedAt?: Maybe<Scalars['Int']>
|
updatedAt?: Maybe<Scalars['Int']>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,6 +355,7 @@ export type Query = {
|
||||||
loadShout?: Maybe<Shout>
|
loadShout?: Maybe<Shout>
|
||||||
loadShouts: Array<Maybe<Shout>>
|
loadShouts: Array<Maybe<Shout>>
|
||||||
markdownBody: Scalars['String']
|
markdownBody: Scalars['String']
|
||||||
|
searchMessages: Result
|
||||||
searchRecipients: Result
|
searchRecipients: Result
|
||||||
signIn: AuthResult
|
signIn: AuthResult
|
||||||
signOut: AuthResult
|
signOut: AuthResult
|
||||||
|
@ -417,6 +420,12 @@ export type QueryMarkdownBodyArgs = {
|
||||||
body: Scalars['String']
|
body: Scalars['String']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type QuerySearchMessagesArgs = {
|
||||||
|
by: MessagesBy
|
||||||
|
limit?: InputMaybe<Scalars['Int']>
|
||||||
|
offset?: InputMaybe<Scalars['Int']>
|
||||||
|
}
|
||||||
|
|
||||||
export type QuerySearchRecipientsArgs = {
|
export type QuerySearchRecipientsArgs = {
|
||||||
limit?: InputMaybe<Scalars['Int']>
|
limit?: InputMaybe<Scalars['Int']>
|
||||||
offset?: InputMaybe<Scalars['Int']>
|
offset?: InputMaybe<Scalars['Int']>
|
||||||
|
@ -620,17 +629,13 @@ export type Stat = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Subscription = {
|
export type Subscription = {
|
||||||
newMessage: Message
|
newMessages: Message
|
||||||
onlineUpdated: Array<User>
|
onlineUpdated: Array<User>
|
||||||
reactionUpdated: ReactionUpdating
|
reactionUpdated: ReactionUpdating
|
||||||
shoutUpdated: Shout
|
shoutUpdated: Shout
|
||||||
userUpdated: User
|
userUpdated: User
|
||||||
}
|
}
|
||||||
|
|
||||||
export type SubscriptionNewMessageArgs = {
|
|
||||||
chats?: InputMaybe<Array<Scalars['Int']>>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type SubscriptionReactionUpdatedArgs = {
|
export type SubscriptionReactionUpdatedArgs = {
|
||||||
shout: Scalars['String']
|
shout: Scalars['String']
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user