// mydropzone_controller.js import { Controller } from '@hotwired/stimulus'; import axios from 'axios'; export default class extends Controller { connect() { this.element.addEventListener('dropzone:connect', this._onConnect); this.element.addEventListener('dropzone:change', this._onChange); this.element.addEventListener('dropzone:clear', this._onClear); } disconnect() { // You should always remove listeners when the controller is disconnected to avoid side-effects this.element.removeEventListener('dropzone:connect', this._onConnect); this.element.removeEventListener('dropzone:change', this._onChange); this.element.removeEventListener('dropzone:clear', this._onClear); } _onConnect(event) { // The dropzone was just created // console.info(event); console.info('onconnect'); // // axios.get('/book/search/modyfikowany+węgiel').then(response => { // console.info(response.data); // }); } _onChange(event) { // The dropzone just changed console.info('onchange'); axios.post(document.URL, new FormData(event.target.closest('form')), { headers: { 'Content-Type': 'multipart/form-data' } }).then(() => { event.target.querySelector('.dropzone-preview-button').click() }) } _onClear(event) { // The dropzone has just been cleared // console.info(event); console.info('onclear'); } }