UNPKG

@loona/react

Version:

App State Management done with GraphQL (react integration)

36 lines 1.56 kB
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 mutation(document, operationOptions) { if (operationOptions === void 0) { operationOptions = {}; } return function (WrappedComponent) { var name = operationOptions.name || 'mutate'; var wrappedComponentName = getDisplayName(WrappedComponent); var displayName = "LoonaMutation:(" + wrappedComponentName + ")"; function GraphQLComponent(props) { var mutate = props[name]; 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=mutation.js.map