48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import { handleActions } from 'util/redux-utils';
|
|
import * as ACTIONS from 'constants/action_types';
|
|
|
|
const defaultState = {
|
|
fetchingFeaturedContent: false,
|
|
fetchingFeaturedContentFailed: false,
|
|
featuredUris: undefined,
|
|
fetchingTrendingContent: false,
|
|
fetchingTrendingContentFailed: false,
|
|
trendingUris: undefined,
|
|
};
|
|
|
|
export const homepageReducer = handleActions(
|
|
{
|
|
[ACTIONS.FETCH_FEATURED_CONTENT_STARTED]: state => ({
|
|
...state,
|
|
fetchingFeaturedContent: true,
|
|
}),
|
|
|
|
[ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED]: (state, action) => {
|
|
const { uris, success } = action.data;
|
|
|
|
return {
|
|
...state,
|
|
fetchingFeaturedContent: false,
|
|
fetchingFeaturedContentFailed: !success,
|
|
featuredUris: uris,
|
|
};
|
|
},
|
|
|
|
[ACTIONS.FETCH_TRENDING_CONTENT_STARTED]: state => ({
|
|
...state,
|
|
fetchingTrendingContent: true,
|
|
}),
|
|
|
|
[ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED]: (state, action) => {
|
|
const { uris, success } = action.data;
|
|
|
|
return {
|
|
...state,
|
|
fetchingTrendingContent: false,
|
|
fetchingTrendingContentFailed: !success,
|
|
trendingUris: uris,
|
|
};
|
|
},
|
|
},
|
|
defaultState
|
|
);
|