1
1
import React , { useEffect } from "react" ;
2
2
import {
3
+ AppState ,
3
4
logAction ,
4
5
selectors ,
5
6
setAssignBoardPath ,
@@ -24,7 +25,8 @@ import {
24
25
siteSpecific ,
25
26
TAG_ID ,
26
27
TAG_LEVEL ,
27
- tags
28
+ tags ,
29
+ useUserViewingContext
28
30
} from "../../services" ;
29
31
import { Redirect } from "react-router" ;
30
32
import queryString from "query-string" ;
@@ -74,6 +76,10 @@ const GameboardItemComponent = ({gameboard, question}: {gameboard: GameboardDTO,
74
76
const questionTags = tags . getByIdsAsHierarchy ( ( question . tags || [ ] ) as TAG_ID [ ] )
75
77
. filter ( ( t , i ) => ! isAda || i !== 0 ) ; // CS always has Computer Science at the top level
76
78
79
+ const questionViewingContexts = filterAudienceViewsByProperties ( determineAudienceViews ( question . audience , question . creationContext ) , AUDIENCE_DISPLAY_FIELDS ) ;
80
+ const userViewingContext = useUserViewingContext ( ) ;
81
+ const currentUser = useAppSelector ( ( state : AppState ) => state ?. user ?. loggedIn && state . user || null ) ;
82
+ const uniqueStage = questionViewingContexts . find ( context => context . stage === userViewingContext . stage ) ;
77
83
return < ListGroupItem key = { question . id } className = { itemClasses } >
78
84
< Link to = { `/questions/${ question . id } ?board=${ gameboard . id } ` } className = { classNames ( "position-relative" , { "align-items-center" : isPhy , "justify-content-center" : isAda } ) } >
79
85
< span className = { "question-progress-icon" } >
@@ -101,7 +107,7 @@ const GameboardItemComponent = ({gameboard, question}: {gameboard: GameboardDTO,
101
107
</ div >
102
108
103
109
{ question . audience && < StageAndDifficultySummaryIcons audienceViews = {
104
- filterAudienceViewsByProperties ( determineAudienceViews ( question . audience , question . creationContext ) , AUDIENCE_DISPLAY_FIELDS )
110
+ isPhy && ! isTutorOrAbove ( currentUser ) && uniqueStage ? [ uniqueStage ] : questionViewingContexts
105
111
} /> }
106
112
</ div >
107
113
{ isAda && < div className = { "list-caret vertical-center" } > < img src = { "/assets/common/icons/chevron_right.svg" } alt = { "Go to question" } /> </ div > }
0 commit comments