static-cms/src/reducers/collections.js

27 lines
1003 B
JavaScript
Raw Normal View History

import { OrderedMap, fromJS } from 'immutable';
import { CONFIG_SUCCESS } from '../actions/config';
import { FILES, FOLDER } from '../constants/collectionTypes';
const hasProperty = (config, property) => ({}.hasOwnProperty.call(config, property));
2016-02-25 00:45:56 -08:00
2016-06-10 00:16:01 -03:00
const collections = (state = null, action) => {
2016-02-25 00:45:56 -08:00
switch (action.type) {
case CONFIG_SUCCESS:
const configCollections = action.payload && action.payload.collections;
return OrderedMap().withMutations((map) => {
(configCollections || []).forEach((configCollection) => {
if (hasProperty(configCollection, 'folder')) {
configCollection.type = FOLDER; // eslint-disable-line no-param-reassign
} else if (hasProperty(configCollection, 'files')) {
configCollection.type = FILES; // eslint-disable-line no-param-reassign
}
map.set(configCollection.name, fromJS(configCollection));
2016-02-25 00:45:56 -08:00
});
});
default:
return state;
}
2016-06-18 12:29:03 -07:00
};
2016-06-10 00:16:01 -03:00
export default collections;