@@ -9,7 +9,7 @@ import { ActionLoading } from '~/apps/admin/src/lib'
99import { ChallengeDetailContext } from '../../contexts'
1010import {
1111 BackendSubmission ,
12- ChallengeInfo ,
12+ ChallengeDetailContextModel ,
1313 MappingReviewAppeal ,
1414 Screening ,
1515 SubmissionInfo ,
@@ -120,6 +120,7 @@ const buildScreeningRows = ({
120120
121121interface 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
132133const 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
180182export 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