Files
imexrps/src/redux/application/application.sagas.js

31 lines
1.0 KiB
JavaScript

import { all, call, takeLatest, select, put } from "redux-saga/effects";
import { setSelectedJobTargetPcSuccess } from "./application.actions";
import ApplicationActionTypes from "./application.types";
export function* onSetTargetPc() {
yield takeLatest(
ApplicationActionTypes.SET_SELECTED_JOB_TARGET_PC,
CalculateTarget
);
}
export function* CalculateTarget({ payload }) {
const { group, v_age } = payload;
const targets = yield select((state) => state.user.bodyshop.targets);
const targetsForGroup = targets.filter((t) => t.group === group);
if (!targetsForGroup) return 0;
const targetPc = targetsForGroup.filter(
(t) => t.ageGte <= v_age && (t.ageLt ? t.ageLt > v_age : true)
);
if (targetPc.length === 0) yield put(setSelectedJobTargetPcSuccess(100));
else if (targetPc.length === 1)
yield put(setSelectedJobTargetPcSuccess(targetPc[0].target));
else {
yield put(setSelectedJobTargetPcSuccess(100));
}
}
export function* applicationSagas() {
yield all([call(onSetTargetPc)]);
}