import * as React from 'react'; import { Provider } from 'react-redux'; import { createHttpLink } from 'apollo-link-http'; import { InMemoryCache } from 'apollo-cache-inmemory'; import { Route } from 'react-router-dom'; import { BrowserRouter, withRouter } from 'react-router-dom'; import ApolloClient from 'apollo-client'; // import ApolloClient from 'apollo-boost'; import { ApolloProvider } from 'react-apollo'; import { ThemeProvider } from 'mineral-ui/themes'; import { createLocalStore } from './store'; import Header from './components/Header'; import VersionsDashboard from './pages/VersionDashboard'; import ProjectIndicesDashboard from './pages/ProjectIndicesDashboard'; import ConfigEditorDashboard from './pages/ConfigEditorDashboard'; import { adminApiRoot as configAdminApiRoot, baseURL } from './config'; import { Store } from 'redux'; const App = withRouter( ({ history, apiRoot = configAdminApiRoot, store = createLocalStore({ history }), fetcher = fetch, }: any) => { const client = new ApolloClient({ // @ts-ignore there's a type collision between apollo packages link: createHttpLink({ uri: apiRoot, fetch: fetcher }), cache: new InMemoryCache(), }); const RoutedVersionDashboard = () => ; const RoutedProjectIndicesDashboard = ({ match }) => ( ); const RoutedConfigEditor = ({ match }) => ( ); return (
); }, ); export default ({ apiRoot, store, fetcher, }: { apiRoot?: string; store?: Store; fetcher?: typeof fetch; }) => ( );