import { GET_EVENTS, GET_EVENT_BY_ID, VISITOR_CHANGE, WRITE_EVENT, ADD_EVENT, DELETE_EVENT, } from '../actions/types'; const INITIAL_STATE = { events: [], newEvent: {} }; export default (state = INITIAL_STATE, action) => { switch (action.type) { case GET_EVENTS: return { ...state, events: [...action.payload] }; case GET_EVENT_BY_ID: return { ...state, selectedEvent: action.payload }; case VISITOR_CHANGE: const index = state.selectedEvent.visitors.indexOf(action.payload); if (index !== -1) { state.selectedEvent.visitors.splice(index, 1); return { ...state, selectedEvent: { ...state.selectedEvent, visitors: state.selectedEvent.visitors, }, }; } state.selectedEvent.visitors.push(action.payload) return { ...state, selectedEvent: { ...state.selectedEvent, visitors: state.selectedEvent.visitors, }, }; case WRITE_EVENT: return { ...state, newEvent: { ...state.newEvent, [action.target]: action.payload } }; case ADD_EVENT: return { ...state, events: [...state.events, action.payload] }; case DELETE_EVENT: state.events.splice(state.events.indexOf(action.payload), 1); return { ...state, events: [...state.events] }; default: return state; } };