You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.3 KiB
141 lines
3.3 KiB
import { |
|
IS_SENDING_CSHIFT_REQUEST, |
|
SET_CSHIFT_REQUEST_ERRORS, |
|
CLEAR_CSHIFT_REQUEST_ERRORS, |
|
SET_CSHIFT_REQUEST_SUCCESS, |
|
CLEAR_CSHIFT_REQUEST_SUCCESS, |
|
SET_FORM_EMPLOYEE_UUID, |
|
SET_FORM_PRICE_UUID, |
|
SET_FORM_SHIFT_START_TIME, |
|
SET_FORM_SHIFT_DURATION, |
|
SET_FORM_SHIFT_NOTE, |
|
SET_FORM_SHIFT_DATES, |
|
SET_CSHIFT_UUID, |
|
SET_CSHIFT_PAGE, |
|
SET_CSHIFT_APPROVAL_FILTER, |
|
SET_CSHIFT_COMPLETED_FILTER, |
|
SET_CSHIFT_PROVIDER_FILTER, |
|
SET_CSHIFT_WORKTYPE_FILTER, |
|
SET_CLEAR_CSHIFT_STATE |
|
} from "../constants/cShift.constants"; |
|
|
|
const initialState = { |
|
isSendingCShiftRequest: false, |
|
cShiftRequestErrors: [], |
|
cShiftRequestSuccess: "", |
|
employeeUUID: "", // Which employee |
|
priceUUID: "", // Which price |
|
startTime: null, // When does the shift begin? moment instance |
|
duration: "", // Duration of shift in minutes |
|
note: "", // Optional note |
|
shiftDates: {}, // Dates, map of "YYYY-MM-DD" > moment instance |
|
cShiftUUID: "", |
|
page: 1, |
|
approvalFilter: null, |
|
completedFilter: null, |
|
providerFilter: null, |
|
workTypeFilter: null |
|
}; |
|
|
|
function cShiftReducer(state = initialState, action) { |
|
switch (action.type) { |
|
case IS_SENDING_CSHIFT_REQUEST: |
|
return { |
|
...state, |
|
isSendingCShiftRequest: action.data |
|
}; |
|
case SET_CSHIFT_REQUEST_ERRORS: |
|
return { |
|
...state, |
|
cShiftRequestErrors: action.data |
|
}; |
|
case CLEAR_CSHIFT_REQUEST_ERRORS: |
|
return { |
|
...state, |
|
cShiftRequestErrors: [] |
|
}; |
|
case SET_CSHIFT_REQUEST_SUCCESS: |
|
return { |
|
...state, |
|
cShiftRequestSuccess: action.data |
|
}; |
|
case CLEAR_CSHIFT_REQUEST_SUCCESS: |
|
return { |
|
...state, |
|
cShiftRequestSuccess: "" |
|
}; |
|
case SET_FORM_EMPLOYEE_UUID: |
|
return { |
|
...state, |
|
employeeUUID: action.data |
|
}; |
|
case SET_FORM_PRICE_UUID: |
|
return { |
|
...state, |
|
priceUUID: action.data |
|
}; |
|
case SET_FORM_SHIFT_START_TIME: |
|
return { |
|
...state, |
|
startTime: action.data |
|
}; |
|
case SET_FORM_SHIFT_DURATION: |
|
return { |
|
...state, |
|
duration: action.data |
|
}; |
|
case SET_FORM_SHIFT_NOTE: |
|
return { |
|
...state, |
|
note: action.data |
|
}; |
|
case SET_FORM_SHIFT_DATES: |
|
return { |
|
...state, |
|
shiftDates: action.data |
|
}; |
|
case SET_CSHIFT_UUID: |
|
return { |
|
...state, |
|
cShiftUUID: action.data |
|
}; |
|
case SET_CSHIFT_PAGE: |
|
return { |
|
...state, |
|
page: action.data |
|
}; |
|
case SET_CSHIFT_APPROVAL_FILTER: |
|
return { |
|
...state, |
|
approvalFilter: action.data |
|
}; |
|
case SET_CSHIFT_COMPLETED_FILTER: |
|
return { |
|
...state, |
|
completedFilter: action.data |
|
}; |
|
case SET_CSHIFT_PROVIDER_FILTER: |
|
return { |
|
...state, |
|
providerFilter: action.data |
|
}; |
|
case SET_CSHIFT_WORKTYPE_FILTER: |
|
return { |
|
...state, |
|
workTypeFilter: action.data |
|
}; |
|
case SET_CLEAR_CSHIFT_STATE: |
|
return { |
|
...initialState, |
|
page: state.page, |
|
approvalFilter: state.approvalFilter, |
|
completedFilter: state.completedFilter, |
|
providerFilter: state.providerFilter, |
|
workTypeFilter: state.workTypeFilter |
|
}; |
|
default: |
|
return state; |
|
} |
|
} |
|
|
|
export default cShiftReducer;
|
|
|