export default function reducer()

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;
  }
}