/ember-file-drop-zone

easily add a dropzone to enable file drag and drop to your ember app

Primary LanguageJavaScriptMIT LicenseMIT

ember-file-drop-zone

Greenkeeper badge Latest NPM release TravisCI Build Status Coverage Status Code Climate Ember Observer Score Dependencies Dev Dependencies

easily add a dropzone to enable file drag and drop to your ember app

Compatibility

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Since version 1.0.0 this addon makes use of glimmer components only.

Installation

ember install ember-file-drop-zone

Demo

check out the demo page

Usage

See the source code of the demo app for more complex examples

Component

<FileDropZone @onDrop={{this.addFiles}} @disabled={{this.dropZoneDisabled}} as |state|>
  {#if state.hovering}}
    hovering over the dropzone
  {{else if state.dragging}}
    dragging is active
  {{else}}
    drop your files here...
  {{/if}}
</FileDropZone>

Parameters

Paramter type default description
disabled boolean false when set to true, the dropzone is disabled and files can no longer be dropped

Events

onDrop(files)

called when files have been dropped

files an EmberArray of js file objects that were dropped

onDragEnter()

called when files are being dragged over the dropzone

onDragLeave()

called when files are no longer dragged over the dropzone

Styling

This addon does not provide any predefined styles. However, it applies appropriate css class names so that look can be modified as needed.

class description
ember-file-drop-zone Used to style the default state of the dropzone
disabled Applied when the dropzone is disabled
dragging Applied when one or more files are current being dragged over the dropzone

Please see app.css for a styling example:

.ember-file-drop-zone {
  // initial styles
}

.ember-file-drop-zone.disabled {
  // styles when disabled
}

.ember-file-drop-zone.dragging:not(.disabled) {
  // styles when files are being dragged over the window, but not over the dropzone and dropzone is not disabled
}

.ember-file-drop-zone.hovering {
  // styles when files are being dragged over the dropzone (independent of the disabled state)
}

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.