import Component from '@ember/component';
import classic from 'ember-classic-decorator';
import {action} from '@ember/object';

@classic
export default class GhFileUpload extends Component {
    _file = null;
    acceptEncoding = null;
    uploadButtonText = 'Text';
    uploadButtonDisabled = true;
    shouldResetForm = true;

    // closure actions
    onUpload() {}

    onAdd() {}

    @action
    upload() {
        if (!this.uploadButtonDisabled && this._file) {
            this.onUpload(this._file);
        }

        // Prevent double post by disabling the button.
        this.set('uploadButtonDisabled', true);

        // Reset form
        if (this.shouldResetForm) {
            this.element.closest('form').reset();
        }
    }

    change(event) {
        this.set('uploadButtonDisabled', false);
        this.onAdd();
        this._file = event.target.files[0];
    }
}