Skip to content

Instantly share code, notes, and snippets.

@theredhead
Created August 21, 2019 10:50
Show Gist options
  • Save theredhead/ef66157cb09e08a0c09b452adb3291e1 to your computer and use it in GitHub Desktop.
Save theredhead/ef66157cb09e08a0c09b452adb3291e1 to your computer and use it in GitHub Desktop.
dragOver = false;
fileDropped(file: File) {
const reader = new FileReader();
reader.onload = (event: ProgressEvent) => {
const json = reader.result as string;
this.rulesets = JSON.parse(json) as Ruleset[];
};
//reader.onerror...
reader.readAsText(file);
}
@HostListener('dragover', ['$event']) public onDragOver(event) {
event.preventDefault();
event.stopPropagation();
this.dragOver = true;
}
@HostListener('dragleave', ['$event']) public onDragLeave(event) {
event.preventDefault();
event.stopPropagation();
this.dragOver = false;
}
@HostListener('drop', ['$event']) public onDrop(event) {
event.preventDefault();
event.stopPropagation();
this.dragOver = false;
const files = event.dataTransfer.files;
if (files.length === 1) {
this.fileDropped(files.item(0));
} else {
throw new Error('Only one file is sipported at a time.');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment