@@ -3,7 +3,7 @@ import {Link, RouteComponentProps, withRouter} from "react-router-dom";
3
3
import { selectors , useAppSelector } from "../../state" ;
4
4
import { Badge , Card , CardBody , CardHeader , Container } from "reactstrap" ;
5
5
import queryString from "query-string" ;
6
- import { getFilteredStageOptions , isAda , isPhy , isRelevantToPageContext , matchesAllWordsInAnyOrder , pushConceptsToHistory , searchResultIsPublic , shortcuts , STAGE , STAGE_TO_LEARNING_STAGE , TAG_ID , tags } from "../../services" ;
6
+ import { getFilteredStageOptions , isAda , isPhy , isRelevantToPageContext , matchesAllWordsInAnyOrder , pushConceptsToHistory , searchResultIsPublic , shortcuts , TAG_ID , tags } from "../../services" ;
7
7
import { generateSubjectLandingPageCrumbFromContext , TitleAndBreadcrumb } from "../elements/TitleAndBreadcrumb" ;
8
8
import { ShortcutResponse , Tag } from "../../../IsaacAppTypes" ;
9
9
import { IsaacSpinner } from "../handlers/IsaacSpinner" ;
@@ -13,7 +13,7 @@ import { SubjectSpecificConceptListSidebar, MainContent, SidebarLayout, GenericC
13
13
import { getHumanContext , isFullyDefinedContext , useUrlPageTheme } from "../../services/pageContext" ;
14
14
import { useListConceptsQuery } from "../../state/slices/api/conceptsApi" ;
15
15
import { ShowLoadingQuery } from "../handlers/ShowLoadingQuery" ;
16
- import { ContentSummaryDTO } from "../../../IsaacApiTypes" ;
16
+ import { ContentSummaryDTO , Stage } from "../../../IsaacApiTypes" ;
17
17
import { skipToken } from "@reduxjs/toolkit/query" ;
18
18
import { AffixButton } from "../elements/AffixButton" ;
19
19
@@ -32,13 +32,17 @@ export const Concepts = withRouter((props: RouteComponentProps) => {
32
32
33
33
const searchParsed = queryString . parse ( location . search , { arrayFormat : "comma" } ) ;
34
34
35
- const [ query , filters ] = useMemo ( ( ) => {
35
+ const [ query , filters , stages ] = useMemo ( ( ) => {
36
36
const queryParsed = searchParsed . query || null ;
37
37
const query = Array . isArray ( queryParsed ) ? queryParsed . join ( "," ) : queryParsed ;
38
38
39
39
const filterParsed = searchParsed . types || null ;
40
40
const filters = Array . isArray ( filterParsed ) ? filterParsed . filter ( x => ! ! x ) as string [ ] : filterParsed ?. split ( "," ) ?? [ ] ;
41
- return [ query , filters ] ;
41
+
42
+ const stagesParsed = searchParsed . stages || null ;
43
+ const stages = Array . isArray ( stagesParsed ) ? stagesParsed . filter ( x => ! ! x ) as string [ ] : stagesParsed ?. split ( "," ) ?? [ ] ;
44
+
45
+ return [ query , filters , stages ] ;
42
46
} , [ searchParsed ] ) ;
43
47
44
48
const applicableTags = pageContext ?. subject
@@ -49,7 +53,7 @@ export const Concepts = withRouter((props: RouteComponentProps) => {
49
53
const [ conceptFilters , setConceptFilters ] = useState < Tag [ ] > (
50
54
applicableTags . filter ( f => filters . includes ( f . id ) )
51
55
) ;
52
- const [ searchStages , setSearchStages ] = useState < STAGE [ ] > ( [ ] ) ;
56
+ const [ searchStages , setSearchStages ] = useState < Stage [ ] > ( stages as Stage [ ] ) ;
53
57
const [ shortcutResponse , setShortcutResponse ] = useState < ShortcutResponse [ ] > ( ) ;
54
58
55
59
const listConceptsQuery = useListConceptsQuery ( pageContext
@@ -91,7 +95,7 @@ export const Concepts = withRouter((props: RouteComponentProps) => {
91
95
if ( e ) {
92
96
e . preventDefault ( ) ;
93
97
}
94
- pushConceptsToHistory ( history , searchText || "" , [ ...conceptFilters . map ( f => f . id ) ] ) ;
98
+ pushConceptsToHistory ( history , searchText || "" , [ ...conceptFilters . map ( f => f . id ) ] , searchStages ) ;
95
99
96
100
if ( searchText ) {
97
101
setShortcutResponse ( shortcuts ( searchText ) ) ;
@@ -108,7 +112,7 @@ export const Concepts = withRouter((props: RouteComponentProps) => {
108
112
} ;
109
113
} , [ searchText ] ) ;
110
114
111
- useEffect ( ( ) => { doSearch ( ) ; } , [ conceptFilters ] ) ;
115
+ useEffect ( ( ) => { doSearch ( ) ; } , [ conceptFilters , searchStages ] ) ;
112
116
113
117
const crumb = isPhy && isFullyDefinedContext ( pageContext ) && generateSubjectLandingPageCrumbFromContext ( pageContext ) ;
114
118
0 commit comments