Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // External dependencies
- import React from 'react';
- import thunk from 'redux-thunk';
- import { render } from 'react-dom';
- import { Provider } from 'react-redux';
- import { routerReducer } from 'react-router-redux';
- import { BrowserRouter, Route, Switch } from 'react-router-dom';
- import { createStore, applyMiddleware, compose, combineReducers } from 'redux';
- import ApolloClient, { createNetworkInterface } from 'apollo-client';
- // Setup router
- const Router = () => (
- <BrowserRouter basename={app.route}>
- // Routers go here
- </BrowserRouter>
- );
- // Setup reducer tree
- const reducers = combineReducers({
- // ... your reducers here ...
- routing: routerReducer,
- apollo: apolloClient.reducer(),
- });
- // Setup apollo-client
- const apolloClient = new ApolloClient({
- networkInterface: createNetworkInterface({
- uri: `/my-graphql-server`,
- opts: {
- credentials: 'same-origin',
- },
- }),
- });
- // Setup your redux store
- const store = createStore(
- reducers,
- compose(
- applyMiddleware(thunk.withExtraArgument(apolloClient)),
- window.devToolsExtension ? window.devToolsExtension() : (f) => f
- )
- );
- // Render
- render(
- <Provider store={store}>
- <Router />
- </Provider>,
- document.getElementById('react-root')
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement