Skip to content
Snippets Groups Projects
Select Git revision
  • 20d6ca58dc351f9500dac9bf809d77239c95bde6
  • master default protected
2 results

rules

Blame
  • 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,
            },
          };
        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] };
        case CLEAR_WRITE:
          return { ...state, newEvent: {} };
        default:
          return state;
      }
    };