Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit abac3ef

Browse files
authored
Merge branch 'dev' into issue-35
2 parents 5b3081e + aff92db commit abac3ef

File tree

4 files changed

+88
-61
lines changed

4 files changed

+88
-61
lines changed

src/components/SkillsList/index.jsx

+58-58
Original file line numberDiff line numberDiff line change
@@ -71,69 +71,69 @@ const SkillsList = ({ requiredSkills, skills, limit = 3 }) => {
7171
}, [isOpen, setIsOpen]);
7272

7373
return (
74-
<div styleName="skills-list">
75-
{_.map(skillsToShow, "name").join(", ")}
76-
{skillsToHide.length > 0 && (
74+
<OutsideClickHandler onOutsideClick={close} display="inline">
75+
<div
76+
styleName="skills-list"
77+
onClick={toggle}
78+
onMouseEnter={open}
79+
onMouseLeave={close}
80+
role="button"
81+
tabIndex={0}
82+
ref={setReferenceElement}
83+
>
84+
{_.map(skillsToShow, "name").join(", ")}
85+
86+
{skillsToHide.length > 0 && (
87+
<>
88+
{" and "}
89+
<span styleName="more">{skillsToHide.length > 0} more</span>
90+
</>
91+
)}
7792
<>
78-
{" and "}
79-
<OutsideClickHandler onOutsideClick={close} display="inline">
80-
<span
81-
styleName="more"
82-
onClick={toggle}
83-
onMouseEnter={open}
84-
onMouseLeave={close}
85-
role="button"
86-
tabIndex={0}
87-
ref={setReferenceElement}
93+
{isOpen && (
94+
<div
95+
styleName="popover"
96+
ref={setPopperElement}
97+
style={styles.popper}
98+
{...attributes.popper}
8899
>
89-
{skillsToHide.length > 0} more
90-
</span>
91-
92-
{isOpen && (
93-
<div
94-
styleName="popover"
95-
ref={setPopperElement}
96-
style={styles.popper}
97-
{...attributes.popper}
98-
>
99-
<div styleName="popover-content">
100-
{requiredSkills && (
101-
<div styleName="skills-section">
102-
<div styleName="skills-title">Required Job Skills</div>
103-
<ul styleName="skills-list">
104-
{!requiredSkills.length && <li>None</li>}
105-
{requiredSkills.map((skill) => (
106-
<li key={skill.id}>
107-
{_.find(skills, { id: skill.id }) ? (
108-
<IconCheck />
109-
) : (
110-
<IconCross />
111-
)}{" "}
112-
{skill.name}
113-
</li>
114-
))}
115-
</ul>
116-
</div>
117-
)}
118-
{otherSkills && (
119-
<div styleName="skills-section">
120-
<div styleName="skills-title">
121-
{showMatches ? "Other User Skills" : "Required Skills"}
122-
</div>
123-
<ul styleName="skills-list">
124-
{otherSkills.map((skill) => (
125-
<li key={skill.id}>{skill.name}</li>
126-
))}
127-
</ul>
100+
<div styleName="popover-content">
101+
{requiredSkills && (
102+
<div styleName="skills-section">
103+
<div styleName="skills-title">Required Job Skills</div>
104+
<ul styleName="skills-list">
105+
{!requiredSkills.length && <li>None</li>}
106+
{requiredSkills.map((skill) => (
107+
<li key={skill.id}>
108+
{_.find(skills, { id: skill.id }) ? (
109+
<IconCheck />
110+
) : (
111+
<IconCross />
112+
)}{" "}
113+
{skill.name}
114+
</li>
115+
))}
116+
</ul>
117+
</div>
118+
)}
119+
{otherSkills && (
120+
<div styleName="skills-section">
121+
<div styleName="skills-title">
122+
{showMatches ? "Other User Skills" : "Required Skills"}
128123
</div>
129-
)}
130-
</div>
124+
<ul styleName="skills-list">
125+
{otherSkills.map((skill) => (
126+
<li key={skill.id}>{skill.name}</li>
127+
))}
128+
</ul>
129+
</div>
130+
)}
131131
</div>
132-
)}
133-
</OutsideClickHandler>
132+
</div>
133+
)}
134134
</>
135-
)}
136-
</div>
135+
</div>
136+
</OutsideClickHandler>
137137
);
138138
};
139139

src/routes/MyTeamsDetails/components/TeamPositions/index.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import SkillsList, { skillShape } from "components/SkillsList";
1010
import Button from "components/Button";
1111
import { POSITION_STATUS, POSITION_STATUS_TO_TEXT, RATE_TYPE } from "constants";
1212
import "./styles.module.scss";
13-
import { formatDateRange, formatOpenPositions } from "utils/format";
13+
import { formatJobDate, formatOpenPositions } from "utils/format";
1414
import { Link } from "@reach/router";
1515

1616
const TeamPositions = ({ teamId, positions, resources }) => {
@@ -45,7 +45,7 @@ const TeamPositions = ({ teamId, positions, resources }) => {
4545
</div>
4646
<div styleName="table-group-first-inner">
4747
<div styleName="table-cell cell-date">
48-
{formatDateRange(position.startDate, position.endDate)}
48+
{formatJobDate(position.startDate, position.duration)}
4949
</div>
5050
<div styleName="table-cell cell-money">
5151
{/* Hide rate as we don't have data for it */}

src/routes/PositionDetails/components/PositionCandidates/index.jsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Show a list of position candidates with sort select and pagination.
55
*/
6-
import React, { useMemo, useState, useCallback } from "react";
6+
import React, { useMemo, useState, useCallback, useEffect } from "react";
77
import PT from "prop-types";
88
import _ from "lodash";
99
import CardHeader from "components/CardHeader";
@@ -58,6 +58,11 @@ const populateSkillsMatched = (position, candidate) => ({
5858
const PositionCandidates = ({ position, candidateStatus, updateCandidate }) => {
5959
const { candidates } = position;
6060
const [sortBy, setSortBy] = useState(CANDIDATES_SORT_BY.SKILL_MATCHED);
61+
62+
useEffect(() => {
63+
setPage(1);
64+
}, [candidateStatus])
65+
6166
const filteredCandidates = useMemo(
6267
() =>
6368
_.chain(candidates)

src/utils/format.js

+22
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,25 @@ export const formatOpenPositions = (job, resources) => {
220220
)}`;
221221
}
222222
};
223+
224+
/**
225+
* Format job date
226+
*
227+
* @param {string} startDate job startDate
228+
* @param {number} duration job duration
229+
*
230+
* @returns {string} formatted string
231+
*/
232+
export const formatJobDate = (startDate, duration) => {
233+
const dateStr = startDate ? moment(startDate).format(DAY_FORMAT) : "";
234+
235+
if (startDate && duration) {
236+
return `Requested starting ${dateStr} for ${formatPlural(duration, "week")}`;
237+
} else if (startDate) {
238+
return `Requested starting ${dateStr}`;
239+
} else if (duration) {
240+
return formatPlural(duration, "week");
241+
}
242+
243+
return "TBD";
244+
};

0 commit comments

Comments
 (0)