Refactored target percentage to use redux and only be calculated once per job.

This commit is contained in:
Patrick Fic
2020-10-19 13:34:23 -07:00
parent a11c44e444
commit 2c62eb09b7
11 changed files with 108 additions and 85 deletions

View File

@@ -1,9 +1,10 @@
import { useQuery } from "@apollo/client";
import { Result } from "antd";
import React from "react";
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { QUERY_JOB_BY_PK } from "../../../graphql/jobs.queries";
import { setSelectedJobTargetPc } from "../../../redux/application/application.actions";
import { selectSelectedJobId } from "../../../redux/application/application.selectors";
import ErrorResultAtom from "../../atoms/error-result/error-result.atom";
import JobsPartsGraphAtom from "../../atoms/jobs-parts-graph/jobs-parts-graph.atom";
@@ -18,14 +19,23 @@ const mapStateToProps = createStructuredSelector({
});
const mapDispatchToProps = (dispatch) => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
setSelectedJobTargetPc: (job) => dispatch(setSelectedJobTargetPc(job)),
});
export function JobsDetailOrganism({ selectedJobId }) {
export function JobsDetailOrganism({ selectedJobId, setSelectedJobTargetPc }) {
const { loading, error, data } = useQuery(QUERY_JOB_BY_PK, {
variables: { jobId: selectedJobId },
skip: !selectedJobId,
});
useEffect(() => {
if (data)
setSelectedJobTargetPc({
group: data.jobs_by_pk.group,
v_age: data.jobs_by_pk.v_age,
});
}, [data, setSelectedJobTargetPc]);
if (!selectedJobId) return <Result title="No job selected." />;
if (error)
return (