in src/amo/reducers/landing.js [106:150]
export default function reducer(
// eslint-disable-next-line default-param-last
state: LandingState = initialState,
action: Action,
): LandingState {
switch (action.type) {
case SET_LANG:
return {
...state,
lang: action.payload.lang,
};
case GET_LANDING: {
const { payload } = action;
return {
...initialState,
addonType: payload.addonType,
category: payload.category || null,
lang: state.lang,
loading: true,
resultsLoaded: false,
};
}
case LOAD_LANDING: {
const { payload } = action;
const newState = { ...state, loading: false, resultsLoaded: true };
['recommended', 'highlyRated', 'trending'].forEach((key) => {
if (payload[key]) {
newState[key] = {
count: payload[key].count,
results: payload[key].results.map((addon) =>
createInternalAddon(addon, state.lang),
),
};
}
});
return newState;
}
default:
return state;
}
}