         show_desc : rtypes.bool
 
     getDefaultProps: ->
-        state     : 'unknown'
+        state     : immutable.Map()
         show_desc : false
 
     render_spinner:  ->

            onChange     = {@props.on_change}
        />

# NOTE: This component does *NOT* all the update_directory_tree action.  That is currently necessary
# to update the tree as of July 31, 2015, though when there is a sync'd filetree it won't be.
exports.DirectoryInput = rclass
    displayName : 'DirectoryInput'

        on_key_up     : rtypes.func
        exclusions    : rtypes.array

    update_soon: ->
        do_update = => redux.getActions('projects').fetch_directory_tree(@props.project_id, exclusions:@props.exclusions)
        # This must happen in a later render loop, since fetch_directory_tree will change state, and you should not
        # change state in a render method (this is called below).
        setTimeout(do_update, 1)

    render: ->
        x = @props.directory_trees?.get(@props.project_id)?.toJS()
        if not x? or new Date() - x.updated >= 15000
            @update_soon()
        tree = x?.tree
        if tree?
            group = (s) ->
