@@ -23,6 +23,7 @@ import {RecentItemsList} from '../components/recents-list'
2323import { Separator } from '../../components/separator'
2424import { buildFilters } from './lib/build-filters'
2525import type { FilterComboType } from './lib/format-filter-combo'
26+ import fromPairs from 'lodash/fromPairs'
2627
2728const PROMPT_TEXT =
2829 'We need to download the courses from the server. This will take a few seconds.'
@@ -133,16 +134,17 @@ class CourseSearchView extends React.Component<Props, State> {
133134 onRecentFilterPress = async ( text : string ) => {
134135 this . setState ( ( ) => ( { mode : 'browsing' } ) )
135136
136- const selectedFilterCombo = this . props . recentFilters . find (
137- f => f . description === text ,
138- )
139- const resetFilters = await buildFilters ( )
140- const selectedFilters = selectedFilterCombo
141- ? resetFilters . map (
142- f => selectedFilterCombo . filters . find ( f2 => f2 . key === f . key ) || f ,
143- )
144- : resetFilters
137+ let { recentFilters} = this . props
138+ let selectedFilterCombo = recentFilters . find ( f => f . description === text )
145139
140+ let freshFilters = await buildFilters ( )
141+ let selectedFilters = freshFilters
142+ if ( selectedFilterCombo ) {
143+ let filterLookup = fromPairs (
144+ selectedFilterCombo . filters . map ( f => [ f . key , f ] ) ,
145+ )
146+ selectedFilters = freshFilters . map ( f => filterLookup [ f . key ] || f )
147+ }
146148
147149 this . setState ( ( ) => ( { filters : selectedFilters } ) )
148150 }
0 commit comments