UNPKG

ngx-upload-steroids

Version:
73 lines (63 loc) 1.91 kB
import { Component, EventEmitter } from '@angular/core'; import { UploadOutput, UploadInput, UploadFile, humanizeBytes } from '../../../'; interface FormData { concurrency: number; autoUpload: boolean; verbose: boolean; } @Component({ selector: 'app-home', templateUrl: 'app-home.component.html' }) export class AppHomeComponent { formData: FormData; files: UploadFile[]; uploadInput: EventEmitter<UploadInput>; humanizeBytes: Function; dragOver: boolean; constructor() { this.formData = { concurrency: 0, autoUpload: false, verbose: true }; this.files = []; this.uploadInput = new EventEmitter<UploadInput>(); this.humanizeBytes = humanizeBytes; } onUploadOutput(output: UploadOutput): void { console.log(output); if (output.type === 'allAddedToQueue') { this.files = [output.file]; } else if (output.type === 'addedToQueue') { this.files.push(output.file); } else if (output.type === 'uploading') { const index = this.files.findIndex(file => file.id === output.file.id); this.files[index] = output.file; } else if (output.type === 'removed') { this.files = this.files.filter((file: UploadFile) => file !== output.file); } else if (output.type === 'dragOver') { this.dragOver = true; } else if (output.type === 'dragOut') { this.dragOver = false; } else if (output.type === 'drop') { this.dragOver = false; } } startUpload(): void { const event: UploadInput = { type: 'uploadAll', url: 'http://localhost:4900/upload', method: 'POST', data: { foo: 'bar' }, concurrency: this.formData.concurrency } this.uploadInput.emit(event); } cancelUpload(id: string): void { this.uploadInput.emit({ type: 'cancel', id: id }); } clearAll(): void { this.uploadInput.emit({ type: 'clearAll' }); } }