From f058b0b342ed9a4c2d69423f2204ab5e97b52123 Mon Sep 17 00:00:00 2001 From: araddcc002 Date: Thu, 25 Jan 2024 11:53:26 +0000 Subject: [PATCH 1/4] updated archived list on reviews page --- frontend/pages/beta/review.tsx | 2 +- frontend/src/reviews/ReviewsList.tsx | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/pages/beta/review.tsx b/frontend/pages/beta/review.tsx index 0286415ec..b5f4f7223 100644 --- a/frontend/pages/beta/review.tsx +++ b/frontend/pages/beta/review.tsx @@ -8,7 +8,7 @@ export default function Review() { () => [ { title: 'Release reviews', path: 'releases', view: }, { title: 'Access request reviews', path: 'access', view: }, - { title: 'Archived', path: 'archived', view: }, + { title: 'Archived', path: 'archived', view: }, ], [], ) diff --git a/frontend/src/reviews/ReviewsList.tsx b/frontend/src/reviews/ReviewsList.tsx index 07f6ca2db..e3dbc408a 100644 --- a/frontend/src/reviews/ReviewsList.tsx +++ b/frontend/src/reviews/ReviewsList.tsx @@ -9,7 +9,7 @@ import ReviewItem from 'src/reviews/ReviewItem' import { Decision, ReviewRequestInterface } from 'types/interfaces' type ReviewsListProps = { - kind?: 'release' | 'access' | 'all' + kind?: 'release' | 'access' | 'all' | 'archived' } export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { @@ -17,7 +17,7 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { const { currentUser, isCurrentUserLoading, isCurrentUserError } = useGetCurrentUser() const [filteredReviews, setFilteredReviews] = useState([]) - const doesNotContainUserApproval = useCallback( + const containsUserApproval = useCallback( (review: ReviewRequestInterface) => { return ( currentUser && @@ -30,14 +30,14 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { ) useEffect(() => { - if (kind === 'all') { - setFilteredReviews(reviews) + if (kind === 'archived') { + setFilteredReviews(reviews.filter((filteredReview) => !containsUserApproval(filteredReview))) } else { setFilteredReviews( - reviews.filter((filteredReview) => filteredReview.kind === kind && doesNotContainUserApproval(filteredReview)), + reviews.filter((filteredReview) => filteredReview.kind === kind && containsUserApproval(filteredReview)), ) } - }, [reviews, kind, doesNotContainUserApproval]) + }, [reviews, kind, containsUserApproval]) if (isReviewsError) { return From 806d99896111ed0a8de10fb3d866ab08d2feb92c Mon Sep 17 00:00:00 2001 From: araddcc002 Date: Thu, 25 Jan 2024 11:55:45 +0000 Subject: [PATCH 2/4] reversed logic in function to filter reviews based on user review! --- frontend/src/reviews/ReviewsList.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/reviews/ReviewsList.tsx b/frontend/src/reviews/ReviewsList.tsx index e3dbc408a..29eda33b6 100644 --- a/frontend/src/reviews/ReviewsList.tsx +++ b/frontend/src/reviews/ReviewsList.tsx @@ -22,7 +22,7 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { return ( currentUser && !review.responses.find( - (response) => response.user === `user:${currentUser.dn}` && response.decision === Decision.Approve, + (response) => response.user !== `user:${currentUser.dn}` && response.decision === Decision.Approve, ) ) }, @@ -31,10 +31,10 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { useEffect(() => { if (kind === 'archived') { - setFilteredReviews(reviews.filter((filteredReview) => !containsUserApproval(filteredReview))) + setFilteredReviews(reviews.filter((filteredReview) => containsUserApproval(filteredReview))) } else { setFilteredReviews( - reviews.filter((filteredReview) => filteredReview.kind === kind && containsUserApproval(filteredReview)), + reviews.filter((filteredReview) => filteredReview.kind === kind && !containsUserApproval(filteredReview)), ) } }, [reviews, kind, containsUserApproval]) From f4c56b18949e8d5e58f74fac8fb06c6cec1f4264 Mon Sep 17 00:00:00 2001 From: araddcc002 Date: Fri, 26 Jan 2024 09:28:18 +0000 Subject: [PATCH 3/4] fixed issue where new releases werent appearing in reviw list --- frontend/src/reviews/ReviewItem.tsx | 2 ++ frontend/src/reviews/ReviewsList.tsx | 9 ++------- frontend/src/wrapper/SideNavigation.tsx | 9 ++------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/frontend/src/reviews/ReviewItem.tsx b/frontend/src/reviews/ReviewItem.tsx index 21bf1e214..187c386ac 100644 --- a/frontend/src/reviews/ReviewItem.tsx +++ b/frontend/src/reviews/ReviewItem.tsx @@ -1,5 +1,6 @@ import { ListItem, ListItemButton, Stack, Typography } from '@mui/material' import { useRouter } from 'next/router' +import ReviewDisplay from 'src/model/beta/reviews/ReviewDisplay' import ReviewRoleDisplay from 'src/reviews/ReviewRoleDisplay' import { ReviewRequestInterface } from 'types/interfaces' import { timeDifference } from 'utils/dateUtils' @@ -41,6 +42,7 @@ export default function ReviewItem({ review }: ReviewItemProps) { + diff --git a/frontend/src/reviews/ReviewsList.tsx b/frontend/src/reviews/ReviewsList.tsx index 29eda33b6..302e08f24 100644 --- a/frontend/src/reviews/ReviewsList.tsx +++ b/frontend/src/reviews/ReviewsList.tsx @@ -6,7 +6,7 @@ import EmptyBlob from 'src/common/EmptyBlob' import Loading from 'src/common/Loading' import MessageAlert from 'src/MessageAlert' import ReviewItem from 'src/reviews/ReviewItem' -import { Decision, ReviewRequestInterface } from 'types/interfaces' +import { ReviewRequestInterface } from 'types/interfaces' type ReviewsListProps = { kind?: 'release' | 'access' | 'all' | 'archived' @@ -19,12 +19,7 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { const containsUserApproval = useCallback( (review: ReviewRequestInterface) => { - return ( - currentUser && - !review.responses.find( - (response) => response.user !== `user:${currentUser.dn}` && response.decision === Decision.Approve, - ) - ) + return currentUser && review.responses.find((response) => response.user === `user:${currentUser.dn}`) }, [currentUser], ) diff --git a/frontend/src/wrapper/SideNavigation.tsx b/frontend/src/wrapper/SideNavigation.tsx index 36f651333..cd54054de 100644 --- a/frontend/src/wrapper/SideNavigation.tsx +++ b/frontend/src/wrapper/SideNavigation.tsx @@ -13,7 +13,7 @@ import { CSSProperties, useCallback, useEffect, useState } from 'react' import Loading from 'src/common/Loading' import MessageAlert from 'src/MessageAlert' import { NavMenuItem } from 'src/wrapper/NavMenuItem' -import { Decision, ReviewRequestInterface } from 'types/interfaces' +import { ReviewRequestInterface } from 'types/interfaces' import { User } from '../../types/v2/types' import { DRAWER_WIDTH } from '../../utils/constants' @@ -81,12 +81,7 @@ export default function SideNavigation({ const doesNotContainUserApproval = useCallback( (review: ReviewRequestInterface) => { - return ( - currentUser && - !review.responses.find( - (response) => response.user === `user:${currentUser.dn}` && response.decision === Decision.Approve, - ) - ) + return currentUser && !review.responses.find((response) => response.user === `user:${currentUser.dn}`) }, [currentUser], ) From 502163d7b7211e5b6feb4e88907406249384800b Mon Sep 17 00:00:00 2001 From: araddcc002 Date: Mon, 29 Jan 2024 12:06:50 +0000 Subject: [PATCH 4/4] resolved pr comments --- frontend/src/reviews/ReviewsList.tsx | 12 ++++++------ frontend/src/wrapper/SideNavigation.tsx | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/reviews/ReviewsList.tsx b/frontend/src/reviews/ReviewsList.tsx index 302e08f24..6e0207e65 100644 --- a/frontend/src/reviews/ReviewsList.tsx +++ b/frontend/src/reviews/ReviewsList.tsx @@ -9,15 +9,15 @@ import ReviewItem from 'src/reviews/ReviewItem' import { ReviewRequestInterface } from 'types/interfaces' type ReviewsListProps = { - kind?: 'release' | 'access' | 'all' | 'archived' + kind: 'release' | 'access' | 'archived' } -export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { +export default function ReviewsList({ kind }: ReviewsListProps) { const { reviews, isReviewsLoading, isReviewsError } = useGetReviewRequestsForUser() const { currentUser, isCurrentUserLoading, isCurrentUserError } = useGetCurrentUser() const [filteredReviews, setFilteredReviews] = useState([]) - const containsUserApproval = useCallback( + const containsUserResponse = useCallback( (review: ReviewRequestInterface) => { return currentUser && review.responses.find((response) => response.user === `user:${currentUser.dn}`) }, @@ -26,13 +26,13 @@ export default function ReviewsList({ kind = 'all' }: ReviewsListProps) { useEffect(() => { if (kind === 'archived') { - setFilteredReviews(reviews.filter((filteredReview) => containsUserApproval(filteredReview))) + setFilteredReviews(reviews.filter((filteredReview) => containsUserResponse(filteredReview))) } else { setFilteredReviews( - reviews.filter((filteredReview) => filteredReview.kind === kind && !containsUserApproval(filteredReview)), + reviews.filter((filteredReview) => filteredReview.kind === kind && !containsUserResponse(filteredReview)), ) } - }, [reviews, kind, containsUserApproval]) + }, [reviews, kind, containsUserResponse]) if (isReviewsError) { return diff --git a/frontend/src/wrapper/SideNavigation.tsx b/frontend/src/wrapper/SideNavigation.tsx index cd54054de..c5ab7eea7 100644 --- a/frontend/src/wrapper/SideNavigation.tsx +++ b/frontend/src/wrapper/SideNavigation.tsx @@ -79,7 +79,7 @@ export default function SideNavigation({ const theme = useTheme() - const doesNotContainUserApproval = useCallback( + const doesNotContainUserResponse = useCallback( (review: ReviewRequestInterface) => { return currentUser && !review.responses.find((response) => response.user === `user:${currentUser.dn}`) }, @@ -90,11 +90,11 @@ export default function SideNavigation({ async function fetchReviewCount() { onResetErrorMessage() if (reviews) { - setReviewCount(reviews.filter((filteredReview) => doesNotContainUserApproval(filteredReview)).length) + setReviewCount(reviews.filter((filteredReview) => doesNotContainUserResponse(filteredReview)).length) } } fetchReviewCount() - }, [onResetErrorMessage, doesNotContainUserApproval, reviews]) + }, [onResetErrorMessage, doesNotContainUserResponse, reviews]) if (isReviewsError) { return