diff --git a/client/coral-framework/hocs/withMutation.js b/client/coral-framework/hocs/withMutation.js index 4008e3491..4488b0e7f 100644 --- a/client/coral-framework/hocs/withMutation.js +++ b/client/coral-framework/hocs/withMutation.js @@ -124,7 +124,7 @@ export default (document, config = {}) => (WrappedComponent) => { if (errors) { throw new ResponseErrors(errors); } - this.context.eventEmitter.emit(`mutation.${name}.success`, {variables}); + this.context.eventEmitter.emit(`mutation.${name}.success`, {variables, data: res.data}); return Promise.resolve(res); }) .catch((error) => { diff --git a/client/coral-framework/hocs/withQuery.js b/client/coral-framework/hocs/withQuery.js index eba931200..adb67b7b3 100644 --- a/client/coral-framework/hocs/withQuery.js +++ b/client/coral-framework/hocs/withQuery.js @@ -56,7 +56,8 @@ export default (document, config = {}) => (WrappedComponent) => { const status = networkStatusToString(networkStatus); - this.context.eventEmitter.emit(`query.${name}.${status}`, {variables}); + const {root} = separateDataAndRoot(data); + this.context.eventEmitter.emit(`query.${name}.${status}`, {variables, data: root}); } wrappedConfig = { @@ -86,13 +87,25 @@ export default (document, config = {}) => (WrappedComponent) => { fetchMore: (lmArgs) => { const fetchName = getDefinitionName(lmArgs.query); this.context.eventEmitter.emit( - `query.${name}.fetchMore.${fetchName}`, + `query.${name}.fetchMore.${fetchName}.begin`, {variables: lmArgs.variables}); // Resolve document fragments before passing it to `apollo-client`. return args.data.fetchMore({ ...lmArgs, query: resolveFragments(lmArgs.query), + }) + .then((res) => { + this.context.eventEmitter.emit( + `query.${name}.fetchMore.${fetchName}.success`, + {variables: lmArgs.variables, data: res.data}); + return Promise.resolve(res); + }) + .catch((err) => { + this.context.eventEmitter.emit( + `query.${name}.fetchMore.${fetchName}.error`, + {variables: lmArgs.variables, error: err}); + throw err; }); }, },