2017-04-21 15:43:48 -07:00
|
|
|
import { ActionTypes } from 'wherehows-web/actions/browse';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Initial state for browse feature
|
2017-04-25 21:23:27 -07:00
|
|
|
* @type {{entity: string}}
|
2017-04-21 15:43:48 -07:00
|
|
|
*/
|
|
|
|
const initialState = {
|
2017-04-25 21:23:27 -07:00
|
|
|
entity: 'datasets',
|
|
|
|
isFetching: false,
|
|
|
|
browseData: {}
|
2017-04-21 15:43:48 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reduces browse actions into state object
|
|
|
|
* @param {Object} state = initialState
|
|
|
|
* @param {Object} action Flux Standard Action FSA object
|
|
|
|
* @return {Object} final state of the browse key in the store
|
|
|
|
*/
|
|
|
|
export default (state = initialState, action = {}) => {
|
|
|
|
switch (action.type) {
|
|
|
|
case ActionTypes.REQUEST_BROWSE_DATA:
|
|
|
|
case ActionTypes.SELECT_BROWSE_DATA:
|
|
|
|
return Object.assign({}, state, {
|
|
|
|
isFetching: true,
|
2017-04-25 21:23:27 -07:00
|
|
|
entity: action.payload.entity
|
2017-04-21 15:43:48 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
case ActionTypes.RECEIVE_BROWSE_DATA:
|
|
|
|
return Object.assign({}, state, {
|
2017-04-25 21:23:27 -07:00
|
|
|
isFetching: false,
|
|
|
|
browseData: action.payload.browseData
|
2017-04-21 15:43:48 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
};
|