import { createSelector } from 'reselect';
import { ApplicationRootState } from 'types';
import { initialState } from './reducer';


/**
 * Direct selector to the {{ camelCase name }} state domain
 */

const select{{ properCase name }}Domain = (state: ApplicationRootState) => {
  return state || initialState;
};

/**
 * Other specific selectors
 */

/**
 * Default selector used by {{ properCase name }}
 */

const makeSelect{{ properCase name }} = () =>
  createSelector(select{{ properCase name }}Domain, substate => {
    return substate;
  });

export default makeSelect{{ properCase name }};
export { select{{ properCase name }}Domain };
