Skip to content

Commit d2891bf

Browse files
committed
Cleanup for how we show reviews in design challenges
1 parent d55d4af commit d2891bf

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

src/apps/review/src/lib/hooks/useFetchScreeningReview.ts

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,10 @@ export function useFetchScreeningReview(): useFetchScreeningReviewProps {
946946

947947
// Subsets by submission type for tab-specific displays
948948
const contestSubmissions = useMemo(
949-
() => visibleChallengeSubmissions.filter(s => (s.type || '').toUpperCase() === 'CONTEST_SUBMISSION'),
949+
() => visibleChallengeSubmissions.filter(s => {
950+
const submissionType = s.type?.trim()
951+
return submissionType?.toUpperCase() === 'CONTEST_SUBMISSION'
952+
}),
950953
[visibleChallengeSubmissions],
951954
)
952955
const finalFixSubmissions = useMemo(
@@ -958,21 +961,48 @@ export function useFetchScreeningReview(): useFetchScreeningReviewProps {
958961
const reviewerIds = useMemo(() => {
959962
let results: string[] = []
960963

964+
const normalizeRoleName = (roleName?: string | null): string | undefined => roleName
965+
?.trim()
966+
.toLowerCase()
967+
961968
if (challengeReviewers && challengeReviewers.length) {
969+
const reviewerRoleResources = filter(
970+
challengeReviewers,
971+
reviewer => normalizeRoleName(reviewer.roleName) === 'reviewer',
972+
)
973+
962974
results = (
963975
actionChallengeRole === REVIEWER
964976
? filter(
965-
challengeReviewers,
977+
reviewerRoleResources,
966978
reviewer => reviewer.memberId === `${loginUserInfo?.userId}`,
967979
)
968-
: challengeReviewers
980+
: reviewerRoleResources
969981
).map(reviewer => reviewer.id)
970982
}
971983

972984
if (!results.length) {
985+
const reviewerResourceIds = new Set(
986+
(resources ?? [])
987+
.filter(resource => normalizeRoleName(resource.roleName) === 'reviewer')
988+
.map(resource => resource.id)
989+
.filter((id): id is string => Boolean(id)),
990+
)
991+
973992
forEach(visibleChallengeSubmissions, challengeSubmission => {
974993
forEach(challengeSubmission.review, review => {
975-
results.push(review.resourceId)
994+
const resourceId = review.resourceId
995+
if (!resourceId) {
996+
return
997+
}
998+
999+
if (reviewerResourceIds.size && !reviewerResourceIds.has(resourceId)) {
1000+
return
1001+
}
1002+
1003+
if (!results.includes(resourceId)) {
1004+
results.push(resourceId)
1005+
}
9761006
})
9771007
})
9781008
}
@@ -984,6 +1014,7 @@ export function useFetchScreeningReview(): useFetchScreeningReviewProps {
9841014
visibleChallengeSubmissions,
9851015
actionChallengeRole,
9861016
loginUserInfo,
1017+
resources,
9871018
])
9881019

9891020
// fetch appeal response
@@ -1841,6 +1872,11 @@ export function useFetchScreeningReview(): useFetchScreeningReviewProps {
18411872
submissionsByLegacyId: visibleSubmissionsByLegacyId,
18421873
})
18431874

1875+
const submissionType = matchingSubmission?.type?.trim()
1876+
if (submissionType?.toUpperCase() !== 'CONTEST_SUBMISSION') {
1877+
return undefined
1878+
}
1879+
18441880
const submissionWithReview: BackendSubmission | undefined = matchingSubmission
18451881
? {
18461882
...matchingSubmission,

0 commit comments

Comments
 (0)