         deleted           : false
         search            : ''
         selected_hashtags : {}
-        show_all          : false
 
     componentWillReceiveProps: (next) ->
         if not @props.project_map?


    propTypes :
        projects    : rtypes.array.isRequired
        show_all    : rtypes.bool.isRequired
        images      : rtypes.immutable.Map
        redux       : rtypes.object

    getDefaultProps: ->
        projects : []
        user_map : undefined

    show_all_projects: ->
        @actions('projects').setState(show_all : not @props.show_all)

    render_show_all: ->
        if @props.projects.length > MAX_DEFAULT_PROJECTS
            more = @props.projects.length - MAX_DEFAULT_PROJECTS
            <br />
            <Button
                onClick={@show_all_projects}
                bsStyle='info'
                bsSize='large'>
                Show {if @props.show_all then "#{more} Less" else "#{more} More"} Matching Projects...
            </Button>

    render_list: ->
        listing = []
        i = 0
        for project in @props.projects
            if i >= MAX_DEFAULT_PROJECTS and not @props.show_all
                break
            listing.push <ProjectRow
                             project  = {project}
                             images   = {@props.images}
                             user_map = {@props.user_map}
                             index    = {i}
                             key      = {i}
                             redux    = {redux} />
            i += 1

        return listing

    render: ->
        if @props.nb_projects == 0


    render: ->
        if @props.done
            return <span/>
        <div style={marginTop:'20px'}>
            {@render_button()}
        </div>
