callback > promise

This commit is contained in:
Tom Moor
2018-01-30 22:49:48 -08:00
parent 85a27593e8
commit 48793a4cef
3 changed files with 41 additions and 44 deletions

View File

@ -54,20 +54,17 @@ class DropToImport extends Component {
}
for (const file of files) {
importFile(
{
const doc = await importFile({
documents: this.props.documents,
file,
documentId,
collectionId,
},
doc => {
});
if (redirect) {
this.props.history.push(doc.url);
}
}
);
}
} catch (err) {
// TODO: show error alert.
} finally {

View File

@ -40,19 +40,15 @@ class CollectionMenu extends Component {
this.file.click();
};
onFilePicked = (ev: SyntheticEvent) => {
onFilePicked = async (ev: SyntheticEvent) => {
const files = getDataTransferFiles(ev);
importFile(
{
const document = await importFile({
file: files[0],
documents: this.props.documents,
collectionId: this.props.collection.id,
},
document => {
});
this.props.history.push(document.url);
}
);
};
onEdit = (ev: SyntheticEvent) => {

View File

@ -9,10 +9,13 @@ type Options = {
documentId?: string,
};
const importFile = async (
{ documents, file, documentId, collectionId }: Options,
callback: Document => *
) => {
const importFile = async ({
documents,
file,
documentId,
collectionId,
}: Options): Promise<Document> => {
return new Promise(resolve => {
const reader = new FileReader();
reader.onload = async ev => {
@ -28,9 +31,10 @@ const importFile = async (
let document = new Document(data);
document = await document.save();
documents.add(document);
callback(document);
resolve(document);
};
reader.readAsText(file);
});
};
export default importFile;