jsketcher/modules/ui/fileUploader.ts
2022-12-04 14:33:18 -08:00

21 lines
No EOL
593 B
TypeScript

export function uploadFile(cb: ((fileName: string, text: string) => void)) {
const uploader = document.createElement('input');
uploader.setAttribute('type', 'file');
uploader.style.display = 'none';
document.body.appendChild(uploader);
uploader.click();
function read() {
const reader = new FileReader();
reader.onload = () => {
try {
cb(uploader.value, reader.result as string);
} finally {
document.body.removeChild(uploader);
}
};
reader.readAsText(uploader.files[0]);
}
uploader.addEventListener('change', read, false);
}