@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
52 lines • 1.79 kB
JavaScript
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