Here's the solution:

export default (state = [], action) => {
    switch (action.type) {
        case 'FETCH_POSTS':
            return action.payload;
        case 'ADD_POST':
            return [...state, action.payload];
        default:
            return state;
    }
}

This adds in a new case to the switch statement.  This reducer can now handle actions with the type 'ADD_POST' .

Whenever this reducer sees an action with type 'ADD_POST', it will take the payload property from the action and add it in to the end of the state array.  Notice that the update to the state is done with that special array spread syntax. This makes sure that a completely new array is returned.  Remember: we don't modify (or mutate) state inside of a reducer.