index.tsx

 1import { createMuiTheme } from '@material-ui/core/styles';
 2import ThemeProvider from '@material-ui/styles/ThemeProvider';
 3import ApolloClient from 'apollo-boost';
 4import {
 5  IntrospectionFragmentMatcher,
 6  InMemoryCache,
 7} from 'apollo-cache-inmemory';
 8import React from 'react';
 9import { ApolloProvider } from 'react-apollo';
10import ReactDOM from 'react-dom';
11import { BrowserRouter } from 'react-router-dom';
12
13import App from './App';
14import introspectionQueryResultData from './fragmentTypes';
15
16const theme = createMuiTheme();
17
18const client = new ApolloClient({
19  uri: '/graphql',
20  cache: new InMemoryCache({
21    fragmentMatcher: new IntrospectionFragmentMatcher({
22      introspectionQueryResultData,
23    }),
24  }),
25});
26
27ReactDOM.render(
28  <ApolloProvider client={client}>
29    <BrowserRouter>
30      <ThemeProvider theme={theme}>
31        <React.Suspense fallback={'Loading…'}>
32          <App />
33        </React.Suspense>
34      </ThemeProvider>
35    </BrowserRouter>
36  </ApolloProvider>,
37  document.getElementById('root')
38);