UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

52 lines 1.79 kB
import * as React from 'react'; import { ApolloProvider as Provider } from 'react-apollo'; import { ApolloClient } from 'apollo-client'; import { InMemoryCache } from 'apollo-cache-inmemory'; import { createComponents } from '../common'; import { Context } from '../context'; export const ApolloProvider = props => { const context = React.useContext(Context); const { formElement: { props: { auth, server, tokenName, batchRequests, disable } } } = props; if (disable) { return React.createElement(React.Fragment, null, createComponents(props)); } let httpLink; if (batchRequests) { let { BatchHttpLink } = require('apollo-link-batch-http'); httpLink = new BatchHttpLink({ uri: server }); } else { httpLink = require('apollo-link-http').createHttpLink({ uri: server }); } let client; if (auth) { const { setContext } = require('apollo-link-context'); const authLink = setContext((_, { headers }) => { const token = localStorage.getItem(tokenName || 'CORPIX_TOKEN'); return { headers: { ...headers, authorization: token ? `Bearer ${token}` : '' } }; }); client = new ApolloClient({ link: authLink.concat(httpLink), cache: new InMemoryCache() }); } else { client = new ApolloClient({ link: httpLink, cache: new InMemoryCache() }); } context.app.client = client; return React.createElement(Provider, { client: client }, createComponents(props)); }; export const ApolloProviderView = { Component: ApolloProvider }; //# sourceMappingURL=apollo_provider_view.js.map