diff --git a/src/routes/MyTeamsDetails/components/TeamPositions/index.jsx b/src/routes/MyTeamsDetails/components/TeamPositions/index.jsx index 81de96b4..53657dfa 100644 --- a/src/routes/MyTeamsDetails/components/TeamPositions/index.jsx +++ b/src/routes/MyTeamsDetails/components/TeamPositions/index.jsx @@ -10,10 +10,10 @@ import SkillsList, { skillShape } from "components/SkillsList"; import Button from "components/Button"; import { POSITION_STATUS, POSITION_STATUS_TO_TEXT, RATE_TYPE } from "constants"; import "./styles.module.scss"; -import { formatJobDate } from "utils/format"; +import { formatJobDate, formatOpenPositions } from "utils/format"; import { Link } from "@reach/router"; -const TeamPositions = ({ teamId, positions }) => { +const TeamPositions = ({ teamId, positions, resources }) => { return (
@@ -41,6 +41,7 @@ const TeamPositions = ({ teamId, positions }) => { {position.title} +
{formatOpenPositions(position, resources)}
@@ -89,6 +90,16 @@ TeamPositions.propTypes = { status: PT.oneOf(Object.values(POSITION_STATUS)), }) ), + resources: PT.arrayOf( + PT.shape({ + id: PT.string, + handle: PT.string, + firstName: PT.string, + lastName: PT.string, + skills: PT.arrayOf(skillShape), + skillsMatched: PT.number, + }) + ), }; export default TeamPositions; diff --git a/src/routes/MyTeamsDetails/index.jsx b/src/routes/MyTeamsDetails/index.jsx index 712b7c5c..72c00956 100644 --- a/src/routes/MyTeamsDetails/index.jsx +++ b/src/routes/MyTeamsDetails/index.jsx @@ -28,7 +28,11 @@ const MyTeamsDetails = ({ teamId }) => { - + )} diff --git a/src/utils/format.js b/src/utils/format.js index f7872e01..b908652f 100644 --- a/src/utils/format.js +++ b/src/utils/format.js @@ -201,6 +201,26 @@ export const formatPageTitle = (pageTitle) => { return formattedPageTitle; }; +/** + * Format open positions. + * + * @param {Object} job job object + * @param {Array} resources resource list + * + * @returns {string} open positions string + */ +export const formatOpenPositions = (job, resources) => { + const jobResources = _.filter(resources, { jobId: job.id }); + if (jobResources.length === 0) { + return `${formatPlural(job.numPositions, "open position")}`; + } else { + return `${jobResources.length} / ${formatPlural( + job.numPositions, + "open position" + )}`; + } +}; + /** * Format job date *