From 6ace21b2bed75a6f392d12c6be7f0946f18e9fad Mon Sep 17 00:00:00 2001 From: Kristen Cooke Date: Wed, 28 Apr 2021 11:19:20 -0700 Subject: [PATCH] feat: decision modal supports reverting the decision --- .../Admin/ApplicationReview/DecisionModal.tsx | 45 +++++++++++++++++-- app/pages/analyst/application-review.tsx | 6 --- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/app/containers/Admin/ApplicationReview/DecisionModal.tsx b/app/containers/Admin/ApplicationReview/DecisionModal.tsx index 01070e6fc5..25db110983 100644 --- a/app/containers/Admin/ApplicationReview/DecisionModal.tsx +++ b/app/containers/Admin/ApplicationReview/DecisionModal.tsx @@ -3,10 +3,11 @@ import {graphql, createFragmentContainer, RelayProp} from 'react-relay'; import {DecisionModal_applicationRevisionStatus} from '__generated__/DecisionModal_applicationRevisionStatus.graphql'; import createApplicationRevisionStatusMutation from 'mutations/application/createApplicationRevisionStatusMutation'; import {CiipApplicationRevisionStatus} from 'createApplicationRevisionStatusMutation.graphql'; -import {Modal, Button} from 'react-bootstrap'; +import {Modal, Button, Alert} from 'react-bootstrap'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faEnvelope, faCheck, faTimes} from '@fortawesome/free-solid-svg-icons'; import ModalSharedStyles from 'components/ModalSharedStyles'; +import {getUserFriendlyStatusLabel} from 'lib/text-transforms'; interface Props { show: boolean; @@ -24,6 +25,11 @@ export const DecisionModal: React.FunctionComponent = ({ applicationRevisionStatus }) => { const {applicationId, versionNumber} = applicationRevisionStatus; + const status = applicationRevisionStatus.applicationRevisionStatus; + const decisionHasBeenMade = status !== 'SUBMITTED'; + const title = decisionHasBeenMade + ? `Revert Decision` + : 'Make a Decision or Request Changes'; const saveDecision = async (decision) => { onDecision(); @@ -78,16 +84,46 @@ export const DecisionModal: React.FunctionComponent = ({ ); + const revertDecisionContent = ( + <> + +

+ The applicant was notified by email of the following decision:{' '} + {getUserFriendlyStatusLabel(status)} +

+

Would you like to revert this decision?

+

+ Doing so will change this application's status back to{' '} + Submitted and you will have the opportunity to make + further changes to the review before making a new decision or + requesting changes. +

+ {status === 'REQUESTED_CHANGES' && ( + + Note: If the applicant begins drafting a new + revision of the application, it will no longer be possible to revert + a decision of Changes requested. + + )} +
+ + + + + ); return ( -

Make a Decision or Request Changes

+

{title}

- {makeDecisionContent} + {!decisionHasBeenMade && makeDecisionContent} + {decisionHasBeenMade && revertDecisionContent}