1import ThemeProvider from '@material-ui/styles/ThemeProvider';
2import { createMuiTheme } from '@material-ui/core/styles';
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 introspectionQueryResultData from './fragmentTypes';
14import App from './App';
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);