livebook/assets/js/hooks/dropzone.js
Jonatan Kłosko b3b79afed4
Refactor JS hooks (#1055)
* Restructure hook files

* Simplify app.js

* Refactor hooks

* Implement password toggle with JS commands
2022-03-16 11:33:53 +01:00

25 lines
565 B
JavaScript

const DRAGGING_ATTR = "data-js-dragging";
/**
* A hook used to highlight drop zone when dragging a file.
*/
const Dropzone = {
mounted() {
this.el.addEventListener("dragenter", (event) => {
this.el.setAttribute(DRAGGING_ATTR, "");
});
this.el.addEventListener("dragleave", (event) => {
if (!this.el.contains(event.relatedTarget)) {
this.el.removeAttribute(DRAGGING_ATTR);
}
});
this.el.addEventListener("drop", (event) => {
this.el.removeAttribute(DRAGGING_ATTR);
});
},
};
export default Dropzone;