diff --git a/src/routes/CreateNewTeam/components/SearchAndSubmit/index.jsx b/src/routes/CreateNewTeam/components/SearchAndSubmit/index.jsx index d9d910dd..63e0d55c 100644 --- a/src/routes/CreateNewTeam/components/SearchAndSubmit/index.jsx +++ b/src/routes/CreateNewTeam/components/SearchAndSubmit/index.jsx @@ -2,10 +2,13 @@ import { Router, navigate } from "@reach/router"; import _ from "lodash"; import React, { useCallback, useState, useEffect, useMemo } from "react"; import { useDispatch, useSelector } from "react-redux"; +import { getAuthUserTokens } from "@topcoder/micro-frontends-navbar-app"; +import { decodeToken } from "tc-auth-lib"; import { SEARCH_STAGE_TIME } from "constants/"; import { useData } from "hooks/useData"; import { getSkills } from "services/skills"; -import { searchRoles } from "services/teams"; +import { searchRoles, isExternalMemberRequest } from "services/teams"; +import { getRoleById } from "services/roles"; import { isCustomRole, setCurrentStage } from "utils/helpers"; import { clearMatchingRole, @@ -21,11 +24,44 @@ const SEARCHINGTIME = SEARCH_STAGE_TIME * 3 + 100; function SearchAndSubmit(props) { const { stages, setStages, searchObject, onClick, page } = props; - const [searchState, setSearchState] = useState(null); const [isNewRole, setIsNewRole] = useState(false); + const [isExternalMember, setIsExternalMember] = useState(null); const [skills] = useData(getSkills); const { matchingRole } = useSelector((state) => state.searchedRoles); + const { userId } = useSelector((state) => state.authUser); + useEffect(() => { + if (stages.length === 3) { + getAuthUserTokens().then(({ tokenV3 }) => { + if (!!tokenV3) { + const tokenData = decodeToken(tokenV3); + isExternalMemberRequest({ + memberId: tokenData.userId, + }).then((res) => { + const newStages = [...stages, { name: "Overview of the Results" }]; + setIsExternalMember(res.data); + setStages(newStages); + }); + } + }); + } + }, [stages, setStages]); + + useEffect(() => { + if (isExternalMember === false) { + if (matchingRole && matchingRole.isExternalMember) { + getRoleById(matchingRole.id).then((res) => { + // update role info + const newRole = { + ...matchingRole, + rates: res.data.rates, + isExternalMember: false, + }; + dispatch(saveMatchingRole(newRole)); + }); + } + } + }, [isExternalMember, matchingRole, dispatch]); const matchedSkills = useMemo(() => { if (skills && matchingRole && matchingRole.matchedSkills) { diff --git a/src/routes/CreateNewTeam/pages/InputJobDescription/index.jsx b/src/routes/CreateNewTeam/pages/InputJobDescription/index.jsx index d363e91b..0307083d 100644 --- a/src/routes/CreateNewTeam/pages/InputJobDescription/index.jsx +++ b/src/routes/CreateNewTeam/pages/InputJobDescription/index.jsx @@ -18,7 +18,6 @@ function InputJobDescription() { { name: "Input Job Description", isCurrent: true }, { name: "Search Member" }, { name: "Overview of the Results" }, - { name: "Refundable Deposit Payment" }, ]); const [jdString, setJdString] = useState(""); const [jobTitle, setJobTitle] = useState(""); diff --git a/src/routes/CreateNewTeam/pages/InputSkills/index.jsx b/src/routes/CreateNewTeam/pages/InputSkills/index.jsx index a4293351..516c057b 100644 --- a/src/routes/CreateNewTeam/pages/InputSkills/index.jsx +++ b/src/routes/CreateNewTeam/pages/InputSkills/index.jsx @@ -21,7 +21,6 @@ function InputSkills() { { name: "Input Skills", isCurrent: true }, { name: "Search Member" }, { name: "Overview of the Results" }, - { name: "Refundable Deposit Payment" }, ]); const [selectedSkills, setSelectedSkills] = useState([]); const [popupSelectedSkills, setPopupSelectedSkills] = useState([]); diff --git a/src/routes/CreateNewTeam/pages/SelectRole/index.jsx b/src/routes/CreateNewTeam/pages/SelectRole/index.jsx index c6ba179d..88dcc6ff 100644 --- a/src/routes/CreateNewTeam/pages/SelectRole/index.jsx +++ b/src/routes/CreateNewTeam/pages/SelectRole/index.jsx @@ -25,7 +25,6 @@ function SelectRole() { { name: "Select a Role", isCurrent: true }, { name: "Search Member" }, { name: "Overview of the Results" }, - { name: "Refundable Deposit Payment" }, ]); const [selectedRoleId, setSelectedRoleId] = useState(null); const [roleDetailsModalOpen, setRoleDetailsModalOpen] = useState(false);