| @@ -7,9 +7,7 @@ import { Link } from "react-router-dom"; | |||
| import AddAdModal from "../../components/Ads/AddAdModal"; | |||
| import AdFilters from "../../components/Ads/AdFilters"; | |||
| import { useDispatch } from "react-redux"; | |||
| import { setApplicantProcessesReq } from "../../store/actions/processes/applicantProcessesAction"; | |||
| import { useSelector } from "react-redux"; | |||
| import { selectApplicantProcesses } from "../../store/selectors/applicantProcessesSelectors"; | |||
| import FilterButton from "../../components/Button/FilterButton"; | |||
| import Slider from "react-slick"; | |||
| import "slick-carousel/slick/slick.css"; | |||
| @@ -19,13 +17,16 @@ import { useMediaQuery } from "@mui/material"; | |||
| import ApplicantSelection from "../../components/Selection/ApplicantSelection"; | |||
| import { setProcessesReq } from "../../store/actions/processes/processesAction" | |||
| import { selectProcesses } from "../../store/selectors/processesSelectors" | |||
| import { selectApplicant } from "../../store/selectors/applicantWithProcessSelector" | |||
| import {setApplicantReq } from "../../store/actions/processes/applicantAction" | |||
| const SelectionProcessOfApplicantPage = () => { | |||
| const theme = useTheme(); | |||
| const matches = useMediaQuery(theme.breakpoints.down("sm")); | |||
| const [toggleFiltersDrawer, setToggleFiltersDrawer] = useState(false); | |||
| const [toggleModal, setToggleModal] = useState(false); | |||
| const processes = useSelector(selectApplicantProcesses); | |||
| const applicant = useSelector(selectApplicant) | |||
| const processes = applicant?.selectionProcesses; | |||
| const levels = useSelector(selectProcesses) | |||
| const { id } = useParams(); | |||
| const activeAdsSliderRef = useRef(); | |||
| @@ -33,7 +34,7 @@ const SelectionProcessOfApplicantPage = () => { | |||
| const dispatch = useDispatch(); | |||
| useEffect(() => { | |||
| dispatch(setApplicantProcessesReq(id)); | |||
| dispatch(setApplicantReq(id)); | |||
| dispatch(setProcessesReq()); | |||
| }, []); | |||
| @@ -123,7 +124,7 @@ const SelectionProcessOfApplicantPage = () => { | |||
| | | |||
| </span> | |||
| <span className="level-header-subheader"> | |||
| {id} | |||
| {applicant.firstName + " " + applicant.lastName} | |||
| </span> | |||
| </h1> | |||
| <FilterButton onShowFilters={handleToggleFiltersDrawer} /> | |||
| @@ -4,17 +4,17 @@ import { | |||
| FETCH_APPLICANT_PROCESSES_SUCCESS, | |||
| } from "./processesActionConstants"; | |||
| export const setApplicantProcessesReq = (payload) => ({ | |||
| export const setApplicantReq = (payload) => ({ | |||
| type: FETCH_APPLICANT_PROCESSES_REQ, | |||
| payload | |||
| }); | |||
| export const setApplicantProcessesError = (payload) => ({ | |||
| export const setApplicantError = (payload) => ({ | |||
| type: FETCH_APPLICANT_PROCESSES_ERR, | |||
| payload, | |||
| }); | |||
| export const setApplicantProcesses = (payload) => ({ | |||
| export const setApplicant = (payload) => ({ | |||
| type: FETCH_APPLICANT_PROCESSES_SUCCESS, | |||
| payload, | |||
| }); | |||
| @@ -11,7 +11,8 @@ import archiveAdsReducer from "./ad/archiveAdsReducer"; | |||
| import candidatesReducer from "./candidates/candidatesReducer"; | |||
| import processesReducer from './processes/processesReducer'; | |||
| import processReducer from "./processes/processReducer"; | |||
| import applicantProcessesReducer from "./processes/applicantProcessesReducer"; | |||
| import applicantWithProcessesReducer from "./processes/applicantWithProcessesReducer"; | |||
| export default combineReducers({ | |||
| login: loginReducer, | |||
| @@ -26,5 +27,5 @@ export default combineReducers({ | |||
| candidates: candidatesReducer, | |||
| processes: processesReducer, | |||
| process: processReducer, | |||
| applicantProcesses: applicantProcessesReducer | |||
| applicant: applicantWithProcessesReducer | |||
| }); | |||
| @@ -5,26 +5,26 @@ import { | |||
| import createReducer from "../../utils/createReducer"; | |||
| const initialState = { | |||
| applicantProcesses: [], | |||
| applicant: {}, | |||
| errorMessage: "" | |||
| }; | |||
| export default createReducer( | |||
| { | |||
| [FETCH_APPLICANT_PROCESSES_SUCCESS]: setStateApplicantProcesses, | |||
| [FETCH_APPLICANT_PROCESSES_ERR]: setApplicantProcessesErrorMessage, | |||
| [FETCH_APPLICANT_PROCESSES_SUCCESS]: setStateApplicant, | |||
| [FETCH_APPLICANT_PROCESSES_ERR]: setApplicantErrorMessage, | |||
| }, | |||
| initialState | |||
| ); | |||
| function setStateApplicantProcesses(state, action) { | |||
| function setStateApplicant(state, action) { | |||
| return { | |||
| ...state, | |||
| applicantProcesses: action.payload, | |||
| applicant: action.payload, | |||
| }; | |||
| } | |||
| function setApplicantProcessesErrorMessage(state, action) { | |||
| function setApplicantErrorMessage(state, action) { | |||
| return { | |||
| ...state, | |||
| errorMessage: action.payload, | |||
| @@ -2,7 +2,7 @@ import { all, call, put, takeLatest } from "redux-saga/effects"; | |||
| import { getAllLevels, doneProcess, getProcessesOfApplicant } from "../../request/processesReguest"; | |||
| import { setProcesses, setProcessesError } from "../actions/processes/processesAction"; | |||
| import { setDoneProcess, setDoneProcessError } from "../actions/processes/processAction"; | |||
| import { setApplicantProcesses, setApplicantProcessesError } from "../actions/processes/applicantProcessesAction"; | |||
| import { setApplicant, setApplicantError } from "../actions/processes/applicantAction"; | |||
| import { FETCH_PROCESSES_REQ, PUT_PROCESS_REQ, FETCH_APPLICANT_PROCESSES_REQ } from "../actions/processes/processesActionConstants"; | |||
| export function* getProcesses() { | |||
| @@ -27,10 +27,10 @@ export function* finishProcess(payload) { | |||
| export function* getApplicantProcesses(payload) { | |||
| try { | |||
| const id = payload.payload; | |||
| const result = yield call(getProcessesOfApplicant,id); | |||
| yield put(setApplicantProcesses(result.data.selectionProcesses)); | |||
| const {data} = yield call(getProcessesOfApplicant,id); | |||
| yield put(setApplicant(data)); | |||
| } catch (error) { | |||
| yield put(setApplicantProcessesError(error)); | |||
| yield put(setApplicantError(error)); | |||
| } | |||
| } | |||
| @@ -1,10 +0,0 @@ | |||
| import { createSelector } from "@reduxjs/toolkit"; | |||
| export const applicantProcessesSelector = (state) => state.applicantProcesses; | |||
| export const selectApplicantProcesses = createSelector(applicantProcessesSelector, (state) => state.applicantProcesses); | |||
| export const selectApplicantProcessesError = createSelector( | |||
| applicantProcessesSelector, | |||
| (state) => state.errorMessage | |||
| ); | |||
| @@ -0,0 +1,10 @@ | |||
| import { createSelector } from "@reduxjs/toolkit"; | |||
| export const applicantSelector = (state) => state.applicant; | |||
| export const selectApplicant = createSelector(applicantSelector, (state) => state.applicant); | |||
| export const selectApplicantError = createSelector( | |||
| applicantSelector, | |||
| (state) => state.errorMessage | |||
| ); | |||