Skip to main content

subscription/publish - GraphQL

==
Front end:

export const ADD_PROJECT_SUBSCRIPTION = gql`
subscription projectAddedSubscription {
projectAdded {
id
projectName
accountId
...
}
}
`

subscribeToNewProject={() =>
subscribeToMore({
document: ADD_PROJECT_SUBSCRIPTION,
variables: {},
updateQuery: (prev, { subscriptionData }) => {
if (!subscriptionData.data) return prev
const newProject = subscriptionData.data.projectAdded
console.log(newProject)
return Object.assign({}, prev, {
projectsOfSat: [newProject, ...prev.projectsOfSat]
})
}
})
}

==
Resolver:
Mutation: {
addProject: combineResolvers(
isAuthenticated,
async (parent, { projectInput }, { models, me, pubsub }) => {
const { projectName, clientId } = projectInput
const project = await Project.create({
accountId: me.accountId,
projectName: projectName || 'default project',
clientId: clientId || 0
})

pubsub.publish('PROJECT_CHANNEL', { projectAdded: project })
return project
}
),

Subscription: {
projectAdded: {
subscribe: (parent, args, { pubsub }) => {
return pubsub.asyncIterator(PROJECT_CHANNEL)
}
}
}

Comments

Popular posts from this blog

apollo client v3 - clean up non-needed packages

v3: https://github.com/apollographql/apollo-client clean up: ApolloProvider useQuery, useMutation, useApolloClient Apollo Client >= 3 includes React hooks functionality out of the box. You don't need to install any additional packages. https://www.apollographql.com/docs/react/api/react/hooks/ //import { ApolloProvider } from '@apollo/react-hooks' import { ApolloProvider } from '@apollo/client/react' //import { useQuery, useMutation, useApolloClient } from '@apollo/react-hooks' import { useQuery, useMutation, useApolloClient } from '@apollo/client' How i can CATCH any error (network and graphql), and prevent promise.reject()  https://github.com/apollographql/apollo-client/issues/6469 npm uninstall @apollo/react-hooks https://github.com/apollographql/apollo-link npm uninstall apollo-link npm uninstall apollo-client npm uninstall apollo-link-error npm uninstall apollo-link-http npm uninstall apollo-link-ws npm uninstall apollo-cache-inmemory

A component is changing an uncontrolled input of type text to be controlled error in ReactJS - Formik

 https://stackoverflow.com/questions/47012169/a-component-is-changing-an-uncontrolled-input-of-type-text-to-be-controlled-erro default value can't be undefined  case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName break change to: case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName || '' break