@loona/react
Version:
App State Management done with GraphQL (react integration)
38 lines • 1.65 kB
JavaScript
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
import * as React from 'react';
import { graphql } from 'react-apollo';
import { LoonaContext } from '../context';
import { wrapMutation } from '../component/mutation';
import { getDisplayName } from '../utils';
export function withMutation(document, operationOptions) {
if (operationOptions === void 0) { operationOptions = {}; }
console.log('document', document);
return function (WrappedComponent) {
var name = operationOptions.name || 'mutate';
var wrappedComponentName = getDisplayName(WrappedComponent);
var displayName = "LoonaMutate(" + wrappedComponentName + ")";
function GraphQLComponent(props) {
var mutate = props[name];
console.log('mutate', mutate);
return (React.createElement(LoonaContext.Consumer, null, function (_a) {
var loona = _a.loona;
var _b;
var childProps = (_b = {},
_b[name] = wrapMutation(loona, mutate, document),
_b);
return React.createElement(WrappedComponent, __assign({}, props, childProps));
}));
}
GraphQLComponent.displayName = displayName;
GraphQLComponent.WrappedComponent = WrappedComponent;
return graphql(document, operationOptions)(GraphQLComponent);
};
}
//# sourceMappingURL=mutate.js.map