@@ -43,7 +43,39 @@ const ReviewViewer: FC = () => {
4343 const [ showCloseConfirmation , setShowCloseConfirmation ] = useState < boolean > ( false )
4444 const [ isChanged , setIsChanged ] = useState ( false )
4545 const respondToAppeals = searchParams . get ( 'respondToAppeals' ) === 'true'
46- const [ isManagerEdit , setIsManagerEdit ] = useState ( respondToAppeals )
46+ const hasChallengeAdminRole = useMemo (
47+ ( ) => myChallengeResources . some (
48+ resource => resource . roleName ?. toLowerCase ( ) === ADMIN . toLowerCase ( ) ,
49+ ) ,
50+ [ myChallengeResources ] ,
51+ )
52+
53+ const hasTopcoderAdminRole = useMemo (
54+ ( ) => myChallengeRoles . some (
55+ role => role ?. toLowerCase ( )
56+ . includes ( 'admin' ) ,
57+ ) ,
58+ [ myChallengeRoles ] ,
59+ )
60+
61+ const hasChallengeManagerRole = useMemo (
62+ ( ) => myChallengeResources . some (
63+ resource => resource . roleName ?. toLowerCase ( ) === MANAGER . toLowerCase ( ) ,
64+ ) ,
65+ [ myChallengeResources ] ,
66+ )
67+
68+ const canManagerEdit = useMemo (
69+ ( ) => hasChallengeAdminRole
70+ || hasTopcoderAdminRole
71+ || hasChallengeManagerRole ,
72+ [
73+ hasChallengeAdminRole ,
74+ hasTopcoderAdminRole ,
75+ hasChallengeManagerRole ,
76+ ] ,
77+ )
78+ const [ isManagerEdit , setIsManagerEdit ] = useState ( respondToAppeals && canManagerEdit )
4779
4880 const {
4981 challengeInfo,
@@ -148,28 +180,6 @@ const ReviewViewer: FC = () => {
148180 } )
149181 } , [ challengeInfo ?. id , mutate , navigate ] )
150182
151- const hasChallengeAdminRole = useMemo (
152- ( ) => myChallengeResources . some (
153- resource => resource . roleName ?. toLowerCase ( ) === ADMIN . toLowerCase ( ) ,
154- ) ,
155- [ myChallengeResources ] ,
156- )
157-
158- const hasTopcoderAdminRole = useMemo (
159- ( ) => myChallengeRoles . some (
160- role => role ?. toLowerCase ( )
161- . includes ( 'admin' ) ,
162- ) ,
163- [ myChallengeRoles ] ,
164- )
165-
166- const hasChallengeManagerRole = useMemo (
167- ( ) => myChallengeResources . some (
168- resource => resource . roleName ?. toLowerCase ( ) === MANAGER . toLowerCase ( ) ,
169- ) ,
170- [ myChallengeResources ] ,
171- )
172-
173183 const hasChallengeCopilotRole = useMemo (
174184 ( ) => myChallengeResources . some (
175185 resource => resource . roleName ?. toLowerCase ( ) === COPILOT . toLowerCase ( ) ,
0 commit comments