Select Git revision
EventReducer.js
Forked from
KSZK / DevTeam / kszkepzes / old / kszkepzes-frontend
Source project has a limited visibility.
EventReducer.js 2.71 KiB
import {
GET_EVENTS,
GET_EVENT_BY_ID,
VISITOR_CHANGE,
WRITE_EVENT,
ADD_EVENT,
DELETE_EVENT,
CLEAR_WRITE,
ABSENT_CHANGE,
CHANGE_NO,
} 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:
if (state.selectedEvent.visitors.includes(action.payload)) {
// Benne van nem kell megváltoztatni
return { ...state }
}
if (state.selectedEvent.absent.indexOf(action.payload) > -1) {
// Ha az absentbe van ki kell venni
state.selectedEvent.absent.splice(state.selectedEvent.absent.indexOf(action.payload), 1);
}
state.selectedEvent.visitors.push(action.payload)
return {
...state,
selectedEvent: {
...state.selectedEvent,
visitors: state.selectedEvent.visitors,
absent: state.selectedEvent.absent,
},
};
case ABSENT_CHANGE:
if (state.selectedEvent.absent.includes(action.payload)) {
return { ...state };
}
if (state.selectedEvent.visitors.indexOf(action.payload) > -1) {
state.selectedEvent.visitors.splice(state.selectedEvent.visitors.indexOf(action.payload), 1);
}
state.selectedEvent.absent.push(action.payload);
return {
...state,
selectedEvent: {
...state.selectedEvent,
visitors: state.selectedEvent.visitors,
absent: state.selectedEvent.absent,
},
};
case CHANGE_NO:
if (state.selectedEvent.visitors.indexOf(action.payload) > -1) {
state.selectedEvent.visitors.splice(state.selectedEvent.visitors.indexOf(action.payload), 1);
}
if (state.selectedEvent.absent.indexOf(action.payload) > -1) {
// Ha az absentbe van ki kell venni
state.selectedEvent.absent.splice(state.selectedEvent.absent.indexOf(action.payload), 1);
}
return {
...state,
selectedEvent: {
...state.selectedEvent,
visitors: state.selectedEvent.visitors,
absent: state.selectedEvent.absent,
},
};