Skip to content

Commit c329669

Browse files
committed
Topgear Iterative Reviewer / submission list fix
1 parent fb1cc20 commit c329669

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

src/apps/review/src/lib/components/ChallengeDetailsContent/ChallengeDetailsContent.tsx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ActionLoading } from '~/apps/admin/src/lib'
99
import { ChallengeDetailContext } from '../../contexts'
1010
import {
1111
BackendSubmission,
12-
ChallengeInfo,
12+
ChallengeDetailContextModel,
1313
MappingReviewAppeal,
1414
Screening,
1515
SubmissionInfo,
@@ -120,6 +120,7 @@ const buildScreeningRows = ({
120120

121121
interface SubmissionTabParams {
122122
selectedTabNormalized: string
123+
allowTopgearSubmissionList: boolean
123124
submissions: BackendSubmission[]
124125
screeningRows: Screening[]
125126
screeningMinimumPassingScore: number | null | undefined
@@ -131,6 +132,7 @@ interface SubmissionTabParams {
131132

132133
const renderSubmissionTab = ({
133134
selectedTabNormalized,
135+
allowTopgearSubmissionList,
134136
submissions,
135137
screeningRows,
136138
screeningMinimumPassingScore,
@@ -149,7 +151,7 @@ const renderSubmissionTab = ({
149151
submission => normalizeType(submission.type) === 'contestsubmission',
150152
)
151153
: submissions
152-
const canShowSubmissionList = !isTopgearSubmissionTab
154+
const canShowSubmissionList = (allowTopgearSubmissionList || !isTopgearSubmissionTab)
153155
&& selectedTabNormalized !== 'screening'
154156
&& visibleSubmissions.length > 0
155157

@@ -178,8 +180,23 @@ const renderSubmissionTab = ({
178180
}
179181

180182
export const ChallengeDetailsContent: FC<Props> = (props: Props) => {
181-
const { challengeInfo }: { challengeInfo?: ChallengeInfo } = useContext(ChallengeDetailContext)
183+
const {
184+
challengeInfo,
185+
myResources,
186+
}: ChallengeDetailContextModel = useContext(ChallengeDetailContext)
182187
const { actionChallengeRole }: useRoleProps = useRole()
188+
const hasIterativeReviewerRole = useMemo(
189+
() => myResources.some(
190+
resource => resource.roleName
191+
?.toLowerCase()
192+
.includes('iterative reviewer'),
193+
),
194+
[myResources],
195+
)
196+
const allowTopgearSubmissionList = useMemo(
197+
() => actionChallengeRole !== SUBMITTER || hasIterativeReviewerRole,
198+
[actionChallengeRole, hasIterativeReviewerRole],
199+
)
183200
const { currentMemberId }: UseSubmissionDownloadAccessResult = useSubmissionDownloadAccess()
184201
const {
185202
isLoading: isDownloadingSubmission,
@@ -364,6 +381,7 @@ export const ChallengeDetailsContent: FC<Props> = (props: Props) => {
364381

365382
if (SUBMISSION_TAB_KEYS.has(selectedTabNormalized)) {
366383
return renderSubmissionTab({
384+
allowTopgearSubmissionList,
367385
downloadSubmission: handleSubmissionDownload,
368386
isActiveChallenge: props.isActiveChallenge,
369387
isDownloadingSubmission,

0 commit comments

Comments
 (0)