From d6744891b523e22768c4751b49f4a6afa3fc86f9 Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Thu, 31 Oct 2024 09:44:24 -0500 Subject: [PATCH] Reappropriated the delete infrastructure to implement a close review button. --- web-ui/src/components/reviews/TeamReviews.jsx | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/web-ui/src/components/reviews/TeamReviews.jsx b/web-ui/src/components/reviews/TeamReviews.jsx index 4505b39212..b2502f1d1a 100644 --- a/web-ui/src/components/reviews/TeamReviews.jsx +++ b/web-ui/src/components/reviews/TeamReviews.jsx @@ -12,7 +12,6 @@ import { useLocation, Link } from 'react-router-dom'; import { AddCircle, Archive, - Delete, Search, Unarchive } from '@mui/icons-material'; @@ -50,7 +49,6 @@ import { updateReviewPeriod } from '../../api/reviewperiods.js'; import { - DELETE_REVIEW_PERIOD, UPDATE_REVIEW_PERIOD, UPDATE_REVIEW_PERIODS, UPDATE_TOAST @@ -61,7 +59,7 @@ import { selectCurrentMembers, selectCurrentUser, selectCurrentUserSubordinates, - selectHasDeleteReviewPeriodPermission, + selectHasCloseReviewPeriodPermission, selectHasLaunchReviewPeriodPermission, selectHasUpdateReviewPeriodPermission, selectReviewPeriod, @@ -136,7 +134,7 @@ const TeamReviews = ({ onBack, periodId }) => { const [confirmApproveAllOpen, setConfirmApproveAllOpen] = useState(false); const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false); const [confirmationText, setConfirmationText] = useState(''); - const [confirmDeleteOpen, setConfirmDeleteOpen] = useState(false); + const [confirmCloseOpen, setConfirmCloseOpen] = useState(false); const [memberSelectorOpen, setMemberSelectorOpen] = useState(false); const [nameQuery, setNameQuery] = useState(''); const [query, setQuery] = useState({}); @@ -148,7 +146,7 @@ const TeamReviews = ({ onBack, periodId }) => { const [showAll, setShowAll] = useState(false); const [hasShowAll, setHasShowAll] = useState(false); const [teamMembers, setTeamMembers] = useState([]); - const [toDelete, setToDelete] = useState(null); + const [toClose, setToClose] = useState(null); const [unapproved, setUnapproved] = useState([]); const [validationMessage, setValidationMessage] = useState(null); const [confirmRevieweesWithNoSupervisorOpen, setConfirmRevieweesWithNoSupervisorOpen] = useState(false); @@ -348,31 +346,29 @@ const TeamReviews = ({ onBack, periodId }) => { } }, [csrf, dispatch]); - const confirmDelete = useCallback(() => { - setToDelete(period.id); - setConfirmDeleteOpen(true); - }, [period, setToDelete, setConfirmDeleteOpen]); + const confirmClose = useCallback(() => { + setToClose(period.id); + setConfirmCloseOpen(true); + }, [period, setToClose, setConfirmCloseOpen]); - const handleConfirmDeleteClose = useCallback(() => { - setToDelete(null); - setConfirmDeleteOpen(false); - }, [setToDelete, setConfirmDeleteOpen]); + const handleConfirmCloseClose = useCallback(() => { + setToClose(null); + setConfirmCloseOpen(false); + }, [setToClose, setConfirmCloseOpen]); const handleConfirmApproveAllClose = useCallback(() => { setConfirmApproveAllOpen(false); - }, [setToDelete, setConfirmApproveAllOpen]); + }, [setConfirmApproveAllOpen]); - const deleteReviewPeriod = useCallback(async () => { + const closeReviewPeriod = useCallback(async () => { if (!csrf) return; - await removeReviewPeriod(toDelete, csrf); - dispatch({ - type: DELETE_REVIEW_PERIOD, - payload: toDelete - }); - handleConfirmDeleteClose(); + if (period.reviewStatus === ReviewStatus.OPEN) { + updateReviewPeriodStatus(ReviewStatus.CLOSED); + } + handleConfirmCloseClose(); onBack(); - }, [csrf, dispatch, toDelete, handleConfirmDeleteClose]); + }, [csrf, dispatch, toClose, handleConfirmCloseClose]); const getReviewers = useCallback( reviewee => { @@ -829,7 +825,7 @@ const TeamReviews = ({ onBack, periodId }) => { } }; - const approvalButton = () => { + const modifierButton = () => { switch (period.reviewStatus) { case ReviewStatus.PLANNING: return ; @@ -837,6 +833,10 @@ const TeamReviews = ({ onBack, periodId }) => { return selectHasLaunchReviewPeriodPermission(state) ? ( ) : null; + case ReviewStatus.OPEN: + return selectHasCloseReviewPeriodPermission(state) ? ( + + ) : null; default: return null; } @@ -971,7 +971,7 @@ const TeamReviews = ({ onBack, periodId }) => { disabled={!canUpdate} /> - {approvalButton()} + {modifierButton()} )} {validationMessage && ( @@ -1093,11 +1093,11 @@ const TeamReviews = ({ onBack, periodId }) => { }} />