             user_type       : rtypes.string    # needed for projects get_my_group call in render
         billing :
             customer : rtypes.immutable  # similar to stripe_customer
-        "#{name}" :
-            stripped_public_paths : rtypes.immutable
 
     propTypes :
         project_id : rtypes.string.isRequired

                include the following URL:
                <URLBox />
            </span>
        </ProjectSettingsPanel>

SharePanel = rclass ({name}) ->
    displayName : 'ProjectSettings-SharePanel'

    propTypes :
        project      : rtypes.object.isRequired
        public_paths : rtypes.object.isRequired
        desc         : rtypes.string.isRequired
        name         : rtypes.string

    reduxProps :
        "#{name}" :
            get_public_path_id : rtypes.func

    getInitialState: ->
        state : 'view'    # view --> edit --> view
        desc  : @props.desc

    componentWillReceiveProps: (nextProps) ->
        if @state.desc isnt nextProps.desc
            @setState
                desc  : nextProps.desc
                state : 'view'

    cancel: ->
        @setState(state : 'view')

    save: ->
        actions = @actions(name)
        actions.set_public_path('', ReactDOM.findDOMNode(@refs.share_project).value)
        @setState(state : 'view')

    render_share_cancel_buttons: ->
        <ButtonToolbar style={paddingBottom:'5px'}>
            <Button bsStyle='primary' onClick={@save}>
                <Icon name='share-square-o' /> Share
            </Button>
            <Button onClick={@cancel}>Cancel</Button>
        </ButtonToolbar>

    render_update_desc_button: ->
        <ButtonToolbar style={paddingBottom:'5px'}>
            <Button bsStyle='primary' onClick={@save} disabled={@state.desc == @props.desc} >
                <Icon name='share-square-o' /> Change description
            </Button>
        </ButtonToolbar>

    render_share: (shared) ->
        if @state.state == 'edit' or shared
            <form onSubmit={(e)=>e.preventDefault(); @save()}>
                <FormGroup>
                    <FormControl
                        ref         = 'share_project'
                        type        = 'text'
                        value       = {@state.desc}
                        onChange    = {=>@setState(desc : ReactDOM.findDOMNode(@refs.share_project).value)}
                        placeholder = 'Give a description...' />
                </FormGroup>
                {@render_share_cancel_buttons() if @state.state == 'edit'}
                {@render_update_desc_button() if shared}
            </form>

    toggle_share: (shared) ->
        actions = @actions(name)
        if shared
            actions.disable_public_path('')
        else
            @setState(state : 'edit')

    render_share_unshare_button: (shared) ->
        <Button
            bsStyle = {if shared then 'warning' else 'primary'}
            onClick = {=>@toggle_share(shared)}
            style   = {float: 'right', marginBottom:'10px'} >
            <Icon name={if shared then 'shield' else 'share-square-o'} /> {if shared then 'Unshare' else 'Share'} Project...
        </Button>

    render: ->
        if not @props.public_paths?
            return <Loading />
        project_id = @props.project.get('project_id')
        id = @props.get_public_path_id('')
        shared = @props.public_paths.get(id)? and not @props.public_paths.getIn([id, 'disabled'])
        if shared
            share_message = "This project is publicly shared, so anyone can see it."
        else
            share_message = "Share this project publicly. You can also share individual files or folders from the file listing."
        <ProjectSettingsPanel title='Project sharing' icon='share'>
            <Row>
                <Col sm=8>
                    {share_message}
                </Col>
                <Col sm=4>
                    {@render_share_unshare_button(shared) if @state.state == 'view'}
                </Col>
            </Row>
            <Row>
                <Col sm=12>
                    {@render_share(shared)}
                </Col>
            </Row>
        </ProjectSettingsPanel>

HideDeletePanel = rclass

                    <ProjectControlPanel   key='control'       project={@props.project} />
                    <SageWorksheetPanel    key='worksheet'     project={@props.project} />
                    <JupyterServerPanel    key='jupyter'        project_id={@props.project_id} />
                </Col>
            </Row>
        </div>
