         div className: 'beatmapsets-search__icon',
           i className: 'fas fa-search'
 
-      el Beatmaps.SearchFilter,
-        filters: @props.filters
+      @renderFilter
+        multiselect: true
         name: 'general'
-        title: osu.trans('beatmaps.listing.search.filters.general')
         options: filters.general
-        default: @props.filterDefaults.general
-        multiselect: true
-        selected: @props.filters.general
 
-      el Beatmaps.SearchFilter,
-        filters: @props.filters
+      @renderFilter
         name: 'mode'
-        title: osu.trans('beatmaps.listing.search.filters.mode')
         options: filters.modes
-        default: @props.filterDefaults.mode
-        selected: @props.filters.mode
 
-      el Beatmaps.SearchFilter,
-        filters: @props.filters
+      @renderFilter
         name: 'status'
-        title: osu.trans('beatmaps.listing.search.filters.status')
         options: filters.statuses
-        default: @props.filterDefaults.status
-        selected: @props.filters.status
 
       a
         className: 'beatmapsets-search__expand-link'

  onInput: (event) =>
    event.persist()
    @debouncedSubmit event


  renderGuest: =>

#    along with osu!web.  If not, see <http://www.gnu.org/licenses/>.
###

{div, a, i, input, h1, h2} = ReactDOMFactories
el = React.createElement

class Beatmaps.SearchPanel extends React.PureComponent
