selectors.js 915 Bytes
Newer Older
Julien Benchetrit's avatar
Julien Benchetrit committed
1
import { createSelector } from 'reselect';
dengxiaofeng's avatar
dengxiaofeng committed
2

Julien Benchetrit's avatar
Julien Benchetrit committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
import { initialState } from './reducer';

const selectGlobal = state => state.global || initialState;

const selectRouter = state => state.router;

const makeSelectCurrentUser = () =>
  createSelector(
    selectGlobal,
    globalState => globalState.currentUser,
  );

const makeSelectLoading = () =>
  createSelector(
    selectGlobal,
    globalState => globalState.loading,
  );

const makeSelectError = () =>
  createSelector(
    selectGlobal,
    globalState => globalState.error,
  );

const makeSelectRepos = () =>
  createSelector(
    selectGlobal,
    globalState => globalState.userData.repositories,
  );

const makeSelectLocation = () =>
  createSelector(
    selectRouter,
    routerState => routerState.location,
  );

export {
  makeSelectCurrentUser,
  makeSelectError,
dengxiaofeng's avatar
dengxiaofeng committed
42
  makeSelectLoading,
Julien Benchetrit's avatar
Julien Benchetrit committed
43
  makeSelectLocation,
dengxiaofeng's avatar
dengxiaofeng committed
44 45
  makeSelectRepos,
  selectGlobal,
Julien Benchetrit's avatar
Julien Benchetrit committed
46
};