Vulcan/packages/nova-core/lib/containers/withSingle.js

35 lines
906 B
JavaScript
Raw Normal View History

import Telescope from 'meteor/nova:lib';
import React, { PropTypes, Component } from 'react';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
export default function withSingle (options) {
const { queryName, collection, fragment, fragmentName } = options,
singleResolverName = collection.options.resolvers.single.name;
return graphql(gql`
query ${queryName}($documentId: String) {
${singleResolverName}(_id: $documentId) {
...${fragmentName}
}
}
${fragment}
`, {
options(ownProps) {
return {
variables: { documentId: ownProps.documentId },
pollInterval: 20000,
};
},
props: returnedProps => {
const { ownProps, data } = returnedProps;
return {
loading: data.loading,
2016-11-23 11:07:48 +09:00
document: data[singleResolverName],
fragmentName,
fragment,
};
},
});
}