46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
import { reduxBatch } from '@manaflair/redux-batch';
|
|
import { createStore, combineReducers, compose } from 'redux';
|
|
import { reducer as formReducer } from 'redux-form';
|
|
import { ApolloClient } from 'apollo-client';
|
|
import { HttpLink } from 'apollo-link-http';
|
|
import { InMemoryCache } from 'apollo-cache-inmemory';
|
|
import { reducer as valuesReducer } from 'react-redux-values';
|
|
|
|
const {
|
|
REACT_APP_GQL_PORT = 443,
|
|
REACT_APP_GQL_PROTOCOL = 'https',
|
|
REACT_APP_GQL_HOSTNAME = window.location.hostname
|
|
} = process.env;
|
|
|
|
export const client = new ApolloClient({
|
|
cache: new InMemoryCache(),
|
|
link: new HttpLink({
|
|
uri: `${REACT_APP_GQL_PROTOCOL}://${REACT_APP_GQL_HOSTNAME}:${REACT_APP_GQL_PORT}/graphql`
|
|
})
|
|
});
|
|
|
|
const initialState = {
|
|
ui: {
|
|
sections: {
|
|
instances: ['summary', 'tags', 'metadata', 'snapshots']
|
|
}
|
|
}
|
|
};
|
|
|
|
export const store = createStore(
|
|
combineReducers({
|
|
values: valuesReducer,
|
|
form: formReducer,
|
|
ui: (state = {}) => state
|
|
}),
|
|
initialState,
|
|
compose(
|
|
reduxBatch,
|
|
// If you are using the devToolsExtension, you can add it here also
|
|
// eslint-disable-next-line no-negated-condition
|
|
typeof window.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined'
|
|
? window.__REDUX_DEVTOOLS_EXTENSION__()
|
|
: f => f
|
|
)
|
|
);
|