@@ -53,8 +53,11 @@ function NoMatchingProfilesResultCard({ role }) {
: "Custom Role"}
- We will be looking internally for members matching your requirements
- and be back at them in about 2 weeks.
+ We did not get a perfect match to your requirements on the first pass,
+ but we are confident they are out there. We'd like to dig a little
+ deeper into our community to find someone who can fit your needs. This
+ may take up to two weeks. Please continue to submit your request, and
+ a Topcoder representative will reach out to you soon with next steps.
{role.rates && role.name ? (
diff --git a/src/routes/CreateNewTeam/components/NoMatchingProfilesResultCard/styles.module.scss b/src/routes/CreateNewTeam/components/NoMatchingProfilesResultCard/styles.module.scss
index b39ab76b..d60db1e5 100644
--- a/src/routes/CreateNewTeam/components/NoMatchingProfilesResultCard/styles.module.scss
+++ b/src/routes/CreateNewTeam/components/NoMatchingProfilesResultCard/styles.module.scss
@@ -56,7 +56,7 @@
@include font-roboto;
font-size: 14px;
line-height: 22px;
- width: 357px;
+ width: 80%;
text-align: center;
}
.niche-rate-box {
diff --git a/src/routes/CreateNewTeam/components/Completeness/index.jsx b/src/routes/CreateNewTeam/components/Progress/index.jsx
similarity index 82%
rename from src/routes/CreateNewTeam/components/Completeness/index.jsx
rename to src/routes/CreateNewTeam/components/Progress/index.jsx
index df29ba1d..06c1cebe 100644
--- a/src/routes/CreateNewTeam/components/Completeness/index.jsx
+++ b/src/routes/CreateNewTeam/components/Progress/index.jsx
@@ -1,6 +1,6 @@
/**
- * Completeness Sidebar
- * Shows level of completeness through skill
+ * Progress Sidebar
+ * Shows level of progress through skill
* input process and contains a button for
* searching for users or submitting the job.
*/
@@ -8,13 +8,13 @@ import Button from "components/Button";
import React from "react";
import cn from "classnames";
import PT from "prop-types";
-import CompleteProgress from "../CompleteProgress";
+import ProgressBar from "../ProgressBar";
import "./styles.module.scss";
import IconMultipleActionsCheck from "../../../../assets/images/icon-multiple-actions-check-2.svg";
import IconListQuill from "../../../../assets/images/icon-list-quill.svg";
import IconOfficeFileText from "../../../../assets/images/icon-office-file-text.svg";
-function Completeness({
+function Progress({
extraStyleName,
isDisabled,
onClick,
@@ -23,7 +23,7 @@ function Completeness({
percentage,
}) {
- let backgroundIcon
+ let backgroundIcon
if (extraStyleName === "input-skills") {
backgroundIcon=
} else if (extraStyleName === "input-job-description") {
@@ -33,8 +33,8 @@ function Completeness({
}
return (
-
- setAddAnotherOpen(true)}
- extraStyleName={completenessStyle}
- buttonLabel="Submit Request"
+ extraStyleName={progressStyle}
+ buttonLabel="Continue"
stages={stages}
percentage={getPercentage()}
/>
@@ -76,8 +112,10 @@ function SearchContainer({
}
SearchContainer.propTypes = {
+ isNewRole: PT.bool,
stages: PT.array,
- completenessStyle: PT.string,
+ progressStyle: PT.string,
+ previousSearchId: PT.string,
navigate: PT.func,
addedRoles: PT.array,
searchState: PT.string,
diff --git a/src/routes/CreateNewTeam/components/SubmitContainer/index.jsx b/src/routes/CreateNewTeam/components/SubmitContainer/index.jsx
index b7bfdc40..5a523cfd 100644
--- a/src/routes/CreateNewTeam/components/SubmitContainer/index.jsx
+++ b/src/routes/CreateNewTeam/components/SubmitContainer/index.jsx
@@ -17,13 +17,13 @@ import { toastr } from "react-redux-toastr";
import { navigate } from "@reach/router";
import ResultCard from "../ResultCard";
import AddedRolesAccordion from "../AddedRolesAccordion";
-import Completeness from "../Completeness";
+import Progress from "../Progress";
import AddAnotherModal from "../AddAnotherModal";
import TeamDetailsModal from "../TeamDetailsModal";
import ConfirmationModal from "../ConfirmationModal";
import withAuthentication from "../../../../hoc/withAuthentication";
import "./styles.module.scss";
-import { isCustomRole, setCurrentStage } from "utils/helpers";
+import { isCustomRole, isUuid, setCurrentStage } from "utils/helpers";
import { clearSearchedRoles } from "../../actions";
import { postTeamRequest } from "services/teams";
import NoMatchingProfilesResultCard from "../NoMatchingProfilesResultCard";
@@ -31,7 +31,7 @@ import NoMatchingProfilesResultCard from "../NoMatchingProfilesResultCard";
function SubmitContainer({
stages,
setStages,
- completenessStyle,
+ progressStyle,
matchingRole,
addedRoles,
}) {
@@ -65,11 +65,15 @@ function SubmitContainer({
};
const assembleTeam = (formData) => {
- const teamObject = _.pick(formData, ["teamName", "teamDescription"]);
+ const teamObject = _.pick(formData, [
+ "teamName",
+ "teamDescription",
+ "refCode",
+ ]);
const positions = [];
for (let key of Object.keys(formData)) {
- if (key === "teamName" || key === "teamDescription") {
+ if (!isUuid(key)) {
continue;
}
const position = _.mapValues(formData[key], (val, key) =>
@@ -116,10 +120,10 @@ function SubmitContainer({
)}
- setAddAnotherOpen(true)}
- extraStyleName={completenessStyle}
- buttonLabel="Submit Request"
+ extraStyleName={progressStyle}
+ buttonLabel="Continue"
stages={stages}
percentage="98"
/>
@@ -150,7 +154,7 @@ function SubmitContainer({
SubmitContainer.propTypes = {
stages: PT.array,
setStages: PT.func,
- completenessStyle: PT.string,
+ progressStyle: PT.string,
addedRoles: PT.array,
matchingRole: PT.object,
};
diff --git a/src/routes/CreateNewTeam/components/TeamDetailsModal/index.jsx b/src/routes/CreateNewTeam/components/TeamDetailsModal/index.jsx
index 30d89b08..fde71b11 100644
--- a/src/routes/CreateNewTeam/components/TeamDetailsModal/index.jsx
+++ b/src/routes/CreateNewTeam/components/TeamDetailsModal/index.jsx
@@ -11,6 +11,7 @@ import FormField from "components/FormField";
import BaseCreateModal from "../BaseCreateModal";
import { FORM_FIELD_TYPE } from "constants/";
import { formatPlural } from "utils/format";
+import { isUuid } from "utils/helpers";
import Button from "components/Button";
import MonthPicker from "components/MonthPicker";
import InformationTooltip from "components/InformationTooltip";
@@ -28,7 +29,7 @@ const Error = ({ name }) => {
};
function TeamDetailsModal({ open, onClose, submitForm, addedRoles }) {
- const [showDescription, setShowDescription] = useState(false);
+ const [showAdvanced, setShowAdvanced] = useState(false);
const [startMonthVisible, setStartMonthVisible] = useState({});
// Ensure role is removed from form state when it is removed from redux store
@@ -37,7 +38,7 @@ function TeamDetailsModal({ open, onClose, submitForm, addedRoles }) {
useEffect(() => {
const values = getFormState().values;
for (let fieldName of Object.keys(values)) {
- if (fieldName === "teamName" || fieldName === "teamDescription") {
+ if (!isUuid(fieldName)) {
continue;
}
if (addedRoles.findIndex((role) => role.searchId === fieldName) === -1) {
@@ -49,8 +50,8 @@ function TeamDetailsModal({ open, onClose, submitForm, addedRoles }) {
const dispatch = useDispatch();
- const toggleDescription = () => {
- setShowDescription((prevState) => !prevState);
+ const toggleAdvanced = () => {
+ setShowAdvanced((prevState) => !prevState);
};
return (
@@ -78,7 +79,7 @@ function TeamDetailsModal({ open, onClose, submitForm, addedRoles }) {
open={open}
onClose={onClose}
title="Team Details"
- subtitle="Please provide your team details before submitting a request."
+ subtitle="Please provide a name for your Team. This could be the name of the project they will work on, the name of the team they are joining, or whatever else will make this talent request meaningful for you."
buttons={
- {showDescription && (
-
+ {showAdvanced && (
+ <>
+
+
+ >
)}
+ Input a Job Description for your opening and the Topcoder Platform
+ will identify the skills required to perform the job duties and find
+ the best matching freelancers for your job opening. After inputting
+ the Job Description click on the "Search" button to see the skills
+ identified.
+
+ Please select one or more essential skills you require your talent to
+ have. Topcoder will match to profiles which contain most or all of these
+ skills.
+