aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/Import & Export/DirectoryImportBox.tsx
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-09 11:21:00 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-09 11:21:00 -0400
commit0c987a119fc6baa344cd6a8d229556c02af64898 (patch)
treef9980dfd999ab34d80bdce7118039f3d4c09025c /src/client/util/Import & Export/DirectoryImportBox.tsx
parent8c28206b7c61402bf76f9b7e747b31ae44d5090b (diff)
updates
Diffstat (limited to 'src/client/util/Import & Export/DirectoryImportBox.tsx')
-rw-r--r--src/client/util/Import & Export/DirectoryImportBox.tsx48
1 files changed, 26 insertions, 22 deletions
diff --git a/src/client/util/Import & Export/DirectoryImportBox.tsx b/src/client/util/Import & Export/DirectoryImportBox.tsx
index ab2801ee3..7693a388f 100644
--- a/src/client/util/Import & Export/DirectoryImportBox.tsx
+++ b/src/client/util/Import & Export/DirectoryImportBox.tsx
@@ -18,8 +18,14 @@ import { Id } from "../../../new_fields/FieldSymbols";
import { List } from "../../../new_fields/List";
import { Cast, BoolCast, NumCast } from "../../../new_fields/Types";
import { listSpec } from "../../../new_fields/Schema";
+import { GooglePhotosClientUtils } from "../../apis/google_docs/GooglePhotosClientUtils";
const unsupported = ["text/html", "text/plain"];
+interface FileResponse {
+ name: string;
+ path: string;
+ type: string;
+}
@observer
export default class DirectoryImportBox extends React.Component<FieldViewProps> {
@@ -87,34 +93,32 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
let sizes = [];
let modifiedDates = [];
+ let formData = new FormData();
for (let uploaded_file of validated) {
- let formData = new FormData();
- formData.append('file', uploaded_file);
- let dropFileName = uploaded_file ? uploaded_file.name : "-empty-";
- let type = uploaded_file.type;
-
+ formData.append(Utils.GenerateGuid(), uploaded_file);
sizes.push(uploaded_file.size);
modifiedDates.push(uploaded_file.lastModified);
-
runInAction(() => this.remaining++);
-
- let prom = fetch(Utils.prepend(RouteStore.upload), {
- method: 'POST',
- body: formData
- }).then(async (res: Response) => {
- let names = await res.json();
- console.log(names);
- await Promise.all(names.map((file: any) => {
- let docPromise = Docs.Get.DocumentFromType(type, Utils.prepend(file), { nativeWidth: 300, width: 300, title: dropFileName });
- docPromise.then(doc => {
- doc && docs.push(doc) && runInAction(() => this.remaining--);
- });
- }));
- });
- promises.push(prom);
}
- await Promise.all(promises);
+ const parameters = { method: 'POST', body: formData };
+ const uploads: FileResponse[] = await (await fetch(Utils.prepend(RouteStore.upload), parameters)).json();
+
+ await Promise.all(uploads.map(async upload => {
+ const type = upload.type;
+ const path = Utils.prepend(upload.path);
+ const options = {
+ nativeWidth: 300,
+ width: 300,
+ title: upload.name
+ };
+ const document = await Docs.Get.DocumentFromType(type, path, options);
+ document && docs.push(document) && runInAction(() => this.remaining--);
+ console.log(`(${this.quota - this.remaining}/${this.quota}) ${upload.name}`);
+ }));
+
+ await GooglePhotosClientUtils.UploadImageDocuments(docs, { title: directory });
+ console.log("Finished upload!");
for (let i = 0; i < docs.length; i++) {
let doc = docs[i];