49 lines
1.2 KiB
JavaScript
49 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
|
||
|
);
|