Skip to content

Instantly share code, notes, and snippets.

export default createFragmentContainer(ListPage, graphql`
fragment ListPage_viewer on Viewer {
...Post_viewer
allPosts(last: 100, orderBy: createdAt_DESC) @connection(key: "ListPage_allPosts", filters: []) {
edges {
node {
...Post_post
}
}
}
<Post key={node.__id} post={node} viewer={this.props.viewer} />
// subscribe to `CREATED`, `UPDATED` and `DELETED` mutations
this.newMessageObserver = this.props.client.subscribe({
query: gql`
subscription {
Message {
mutation # contains `CREATED`, `UPDATED` or `DELETED`
node {
text
sentBy {
name
subscription {
Message {
mutation # contains `CREATED`, `UPDATED` or `DELETED`
# node carries the new values
node {
text
sentBy {
name
}
}
next(data) {
console.log('Old text: ', data.Message.previousValues.text)
console.log('New text: ', data.Message.node.text)
}
type Traveller {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
location: Location! @relation(name: "TravellerLocation")
messages: [Message!]! @relation(name: "MessagesFromTraveller")
}
type Message {
id: ID!
import ApolloClient, { createNetworkInterface } from 'apollo-client'
import {SubscriptionClient, addGraphQLSubscriptions} from 'subscriptions-transport-ws'
import { ApolloProvider } from 'react-apollo'
// Create WebSocket client
const wsClient = new SubscriptionClient(`wss://subscriptions.graph.cool/v1/__PROJECT ID__`, {
reconnect: true,
connectionParams: {
// Pass any arguments you want for initialization
}
})
class App extends Component {
// ...
render() {
return (
<ApolloProvider client={client}>
<WorldChat />
</ApolloProvider>
)
}
}
const allMessages = gql`
query allMessages {
allMessages {
id
text
createdAt
sentBy {
id
name
}
export default graphql(createMessage, {name : 'createMessageMutation'})(
graphql(allMessages, {name: 'allMessagesQuery'})(Chat)
)