 
     propTypes :
         search_cb    : rtypes.func
-        set_state_cb : rtypes.func
-
-    getInitialState : ->
+        user_input   : rtypes.string
+        actions      : rtypes.object
+
+    getDefaultProps : ->
         user_input : ''
 
     clear_and_focus_input : ->
-        @setState(user_input : '')
+        @props.actions.setTo(user_input : '')
         @refs.project_search_input.getInputDOMNode().focus()
 
     clear_button : ->

    propTypes :
        checkboxes      : rtypes.object
        toggle_checkbox : rtypes.func
        search_cb       : rtypes.func

    getInitialState: ->
        case_sensitive  : false    # do not change any of these to true without also changing
        subdirectories  : false    # the "@checkbox_state = {}" below.
        hidden_files    : false

    handle_change : (name) ->
        @props.toggle_checkbox(name)
        @setState("#{name}":not @state[name])

    render_checkbox : (name, label) ->
        <Input

        filename         : rtypes.string
        description      : rtypes.string
        most_recent_path : rtypes.string
        actions          : rtypes.object

    click_filename : (e) ->
        e.preventDefault()
        @props.actions.open_file
            path       : misc.path_to_file(@props.most_recent_path, @props.filename)
            foreground : misc_page.open_in_foreground(e)

