diff --git a/.circleci/config.yml b/.circleci/config.yml index 43fa7b2e..9dde9b27 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -152,7 +152,7 @@ workflows: context: org-global filters: &filters-dev branches: - only: ["develop", "PM-803_wm-regression-fixes", "PM-902_show-all-projects-on-challenge-page"] + only: ["develop", "PM-803_wm-regression-fixes", "PM-902_show-all-projects-on-challenge-page", "pm-1169"] # Production builds are exectuted only on tagged commits to the # master branch. diff --git a/src/containers/ProjectInvitations/index.js b/src/containers/ProjectInvitations/index.js index df5b80e4..58e6f20d 100644 --- a/src/containers/ProjectInvitations/index.js +++ b/src/containers/ProjectInvitations/index.js @@ -24,6 +24,8 @@ const ProjectInvitations = ({ match, auth, isProjectLoading, history, projectDet const [isUpdating, setIsUpdating] = useState(automaticAction || false) const isAccepting = isUpdating === PROJECT_MEMBER_INVITE_STATUS_ACCEPTED const isDeclining = isUpdating === PROJECT_MEMBER_INVITE_STATUS_REFUSED + const queryParams = new URLSearchParams(window.location.search) + const source = queryParams.get('source') useEffect(() => { if (!projectId) { @@ -42,9 +44,9 @@ const ProjectInvitations = ({ match, auth, isProjectLoading, history, projectDet } }, [projectId, auth, projectDetail, isProjectLoading, history]) - const updateInvite = useCallback(async (status) => { + const updateInvite = useCallback(async (status, source) => { setIsUpdating(status) - await updateProjectMemberInvite(projectId, invitation.id, status) + await updateProjectMemberInvite(projectId, invitation.id, status, source) // await for the project details to propagate await delay(1000) @@ -56,8 +58,8 @@ const ProjectInvitations = ({ match, auth, isProjectLoading, history, projectDet history.push(status === PROJECT_MEMBER_INVITE_STATUS_ACCEPTED ? `/projects/${projectId}/challenges` : '/projects') }, [projectId, invitation, loadProjectInvites, history]) - const acceptInvite = useCallback(() => updateInvite(PROJECT_MEMBER_INVITE_STATUS_ACCEPTED), [updateInvite]) - const declineInvite = useCallback(() => updateInvite(PROJECT_MEMBER_INVITE_STATUS_REFUSED), [updateInvite]) + const acceptInvite = useCallback(() => updateInvite(PROJECT_MEMBER_INVITE_STATUS_ACCEPTED, source), [updateInvite, source]) + const declineInvite = useCallback(() => updateInvite(PROJECT_MEMBER_INVITE_STATUS_REFUSED, source), [updateInvite, source]) useEffect(() => { if (!invitation || !automaticAction) { @@ -69,7 +71,7 @@ const ProjectInvitations = ({ match, auth, isProjectLoading, history, projectDet } else if (automaticAction === PROJECT_MEMBER_INVITE_STATUS_REFUSED) { declineInvite() } - }, [invitation, automaticAction]) + }, [invitation, automaticAction, source]) return ( <> diff --git a/src/services/projectMemberInvites.js b/src/services/projectMemberInvites.js index 783155d5..90068841 100644 --- a/src/services/projectMemberInvites.js +++ b/src/services/projectMemberInvites.js @@ -8,9 +8,9 @@ import { PROJECTS_API_URL } from '../config/constants' * @param {string} status the new status for invitation * @return {object} project member invite returned by api */ -export function updateProjectMemberInvite (projectId, inviteId, status) { +export function updateProjectMemberInvite (projectId, inviteId, status, source) { const url = `${PROJECTS_API_URL}/${projectId}/invites/${inviteId}` - return axios.patch(url, { status }) + return axios.patch(url, { status, source }) .then(resp => resp.data) }