     # Removes ALL listeners and Destroys dropzone.
     # see https://github.com/enyo/dropzone/issues/1175
     _destroy: (dropzone) ->
+        return if not dropzone?
         dropzone.off()
         dropzone.destroy()


    render: ->
        <div>
            {@render_preview()}
            {@props.children}
        </div>

    _create_dropzone: ->
        dropzone_node = ReactDOM.findDOMNode(@)
        @dropzone = new Dropzone(dropzone_node, @get_djs_config())

    _set_up_events: ->
        return unless @dropzone?

        event_handlers : rtypes.object
        show_upload    : rtypes.bool
        on_close       : rtypes.func
        disabled       : rtypes.bool

    getDefaultProps: ->
        config         : {}
        hide_previewer : false
        disabled       : false

    getInitialState: ->
        files : []
