This commit is contained in:
2020-08-22 14:56:41 +02:00
parent 79d89f266a
commit 26028445bf
16 changed files with 315 additions and 176 deletions

View File

@@ -1,3 +1,6 @@
import { nanoid } from 'nanoid';
import File from '../types/File';
export const downloadLink = (name: string, blob: Blob) => {
const url = URL.createObjectURL(blob);
const downloadLink = document.createElement('a');
@@ -7,3 +10,49 @@ export const downloadLink = (name: string, blob: Blob) => {
downloadLink.click();
document.body.removeChild(downloadLink);
};
//type SetFilesType = (fn: (files: {[id: string]: File}) => {[id: string]: File}) => any;
type SetFilesType = any;
export const createFile = (setFiles: SetFilesType, name: string) => {
const id = nanoid();
const file: File = {
name,
status: 'processing',
};
setFiles((files) => ({
...files,
[id]: file,
}));
const setContent = (input: Blob | Promise<Blob>) => {
Promise.resolve(input)
.then((blob) => {
setFiles((files) => ({
...files,
[id]: {
...files[id],
blob,
status: 'success',
},
}));
})
.catch(setFailed);
}
const setFailed = (err: any) => {
setFiles((files) => ({
...files,
[id]: {
...files[id],
status: 'failed',
error: err,
},
}));
};
return {
setContent,
setFailed,
};
};