diff --git a/src/Blazor.FileReader/FileReaderRef.cs b/src/Blazor.FileReader/FileReaderRef.cs index a1ffef8..8818723 100644 --- a/src/Blazor.FileReader/FileReaderRef.cs +++ b/src/Blazor.FileReader/FileReaderRef.cs @@ -215,32 +215,12 @@ internal class FileReaderRef : IFileReaderRef { public async Task> EnumerateFilesAsync() { - var count = await GetFileCount(); + var count = await FileReaderJsInterop.GetFileCount(ElementRef); var result = Enumerable.Range(0, Math.Max(0, count)) .Select(index => (IFileReference)new FileReference(this, index)); return result; } - // Get the count twice. Ensure that both numbers are the same. if not, keep getting until the number is stable. - // This is a workaround for the event handler firing off before the AfterDrop event. - public async Task GetFileCount() - { - var lastCount = -10; - while (true) - { - var currentCount = await FileReaderJsInterop.GetFileCount(ElementRef); - - if (lastCount == currentCount) - { - break; - } - - lastCount = currentCount; - await Task.Delay(500); - } - - return lastCount; - } public async Task RegisterDropEventsAsync(bool additive) => await RegisterDropEventsAsync(new DropEventsOptions { Additive = additive }); diff --git a/src/Blazor.FileReader/script/Clipboard.ts b/src/Blazor.FileReader/script/Clipboard.ts index 257de06..8424ed0 100644 --- a/src/Blazor.FileReader/script/Clipboard.ts +++ b/src/Blazor.FileReader/script/Clipboard.ts @@ -4,20 +4,29 @@ import { ConcatFileList } from "./ConcatFileList" function RegisterPasteEvent(this: FileReaderComponent, element: HTMLElement, registerOptions: PasteEventOptions): boolean { this.LogIfNull(element); - const pasteHandler = (ev: ClipboardEvent) => { + const pasteHandler = async (ev: ClipboardEvent) => { if (ev.target instanceof HTMLElement) { - let list = ev.clipboardData.files; - if (list.length > 0) { - ev.preventDefault(); - if (registerOptions.additive) { - const existing = this.elementDataTransfers.get(element); - if (existing !== undefined && existing.length > 0) { - list = new ConcatFileList(existing, list); + const listPromise = new Promise(async (resolve, reject) => { + try { + let list = ev.clipboardData.files; + if (list.length > 0) { + ev.preventDefault(); + if (registerOptions.additive) { + const existing = await this.elementDataTransfers.get(element); + if (existing !== undefined && existing.length > 0) { + list = new ConcatFileList(existing, list); + } + } } + + resolve(list); + } + catch (e) { + reject(e); } - } + }); - this.elementDataTransfers.set(element, list); + this.elementDataTransfers.set(element, listPromise); } }; diff --git a/src/Blazor.FileReader/script/DragnDrop.ts b/src/Blazor.FileReader/script/DragnDrop.ts index 9dc00e8..a6eeb40 100644 --- a/src/Blazor.FileReader/script/DragnDrop.ts +++ b/src/Blazor.FileReader/script/DragnDrop.ts @@ -146,19 +146,26 @@ function RegisterDropEvents(this: FileReaderComponent, element: HTMLElement, reg this.LogIfNull(element); const onAfterDropHandler = BuildDragEventHandler(registerOptions.onDropMethod, registerOptions.onDropScript, dropEvent); - const dropHandler = async (ev: DragEvent) => { + const dropHandler = (ev: DragEvent) => { ev.preventDefault(); - this.elementDataTransfers.clear(); + if (ev.target instanceof HTMLElement) { - let files = await getFilesAsync((ev.dataTransfer)); - if (registerOptions.additive) { - const existing = this.elementDataTransfers.get(element) ?? new FileList(); - if (existing.length > 0) { - files = new ConcatFileList(existing, files); + const filePromise = new Promise(async (resolve, reject) => { + try { + let files = await getFilesAsync(ev.dataTransfer); + if (registerOptions.additive) { + const existing = await this.elementDataTransfers.get(element) ?? new FileList(); + if (existing.length > 0) { + files = new ConcatFileList(existing, files); + } + } + resolve(files); + } catch (e) { + reject(e); } - } + }); - this.elementDataTransfers.set(element, files); + this.elementDataTransfers.set(element, filePromise); } onAfterDropHandler(ev, element, this); diff --git a/src/Blazor.FileReader/script/FileReaderComponent.ts b/src/Blazor.FileReader/script/FileReaderComponent.ts index 5726ca5..8740eb6 100644 --- a/src/Blazor.FileReader/script/FileReaderComponent.ts +++ b/src/Blazor.FileReader/script/FileReaderComponent.ts @@ -12,7 +12,7 @@ class FileReaderComponent { protected readonly dragElements = new Map(); protected readonly pasteElements = new Map(); - protected readonly elementDataTransfers = new Map(); + protected readonly elementDataTransfers = new Map>(); private readonly readResultByTaskId = new Map(); protected LogIfNull(element: HTMLElement) { @@ -29,29 +29,29 @@ class FileReaderComponent { public UnregisterPasteEvent = UnregisterPasteEvent; - private GetFiles(element: HTMLElement): FileList { + private async GetFiles(element: HTMLElement): Promise { let files: FileList = null; if (element instanceof HTMLInputElement) { files = (element as HTMLInputElement).files; } else { const dataTransfer = this.elementDataTransfers.get(element); if (dataTransfer) { - files = dataTransfer; + files = await dataTransfer; } } return files; } - public GetJSObjectReference(element: HTMLElement, fileIndex: number): File { + public async GetJSObjectReference(element: HTMLElement, fileIndex: number): Promise { this.LogIfNull(element); - const files = this.GetFiles(element); + const files = await this.GetFiles(element); return files.item(fileIndex); } - public GetFileCount = (element: HTMLElement): number => { + public async GetFileCount(element: HTMLElement): Promise { this.LogIfNull(element); - const files = this.GetFiles(element); + const files = await this.GetFiles(element); if (!files) { return -1; } @@ -71,9 +71,9 @@ class FileReaderComponent { }; // Called from cs. - public GetFileInfoFromElement = (element: HTMLElement, index: number): IFileInfo => { + public async GetFileInfoFromElement(element: HTMLElement, index: number): Promise { this.LogIfNull(element); - const files = this.GetFiles(element); + const files = await this.GetFiles(element); if (!files) { return null; } @@ -112,10 +112,10 @@ class FileReaderComponent { return result; } - public OpenRead = (element: HTMLElement, fileIndex: number, useWasmSharedBuffer: boolean): number => { + public async OpenRead(element: HTMLElement, fileIndex: number, useWasmSharedBuffer: boolean): Promise { this.LogIfNull(element); - const files = this.GetFiles(element); + const files = await this.GetFiles(element); if (!files) { throw 'No FileList available.'; } diff --git a/src/Blazor.FileReader/wwwroot/FileReaderComponent.js b/src/Blazor.FileReader/wwwroot/FileReaderComponent.js index efda877..e5a92e0 100644 --- a/src/Blazor.FileReader/wwwroot/FileReaderComponent.js +++ b/src/Blazor.FileReader/wwwroot/FileReaderComponent.js @@ -165,6 +165,7 @@ catch (err) { console.error(`error on ${fullPath}`); console.error(err); + throw err; } } else if (isDirectory(innerEntry)) { @@ -177,6 +178,7 @@ } catch (err2) { console.error(err2); + throw err2; } } return files; @@ -184,22 +186,12 @@ } function getEntries(reader) { return __awaiter(this, void 0, void 0, function* () { - try { - return yield new Promise((resolve, reject) => reader.readEntries(resolve, reject)); - } - catch (err) { - console.error(err); - } + return yield new Promise((resolve, reject) => reader.readEntries(resolve, reject)); }); } function getFile(fileEntry) { return __awaiter(this, void 0, void 0, function* () { - try { - return new Promise((resolve, reject) => fileEntry.file(resolve, reject)); - } - catch (err) { - console.error(err); - } + return new Promise((resolve, reject) => fileEntry.file(resolve, reject)); }); } function redefineWebkitRelativePath(file, fullPath) { @@ -219,22 +211,29 @@ function RegisterDropEvents(element, registerOptions) { this.LogIfNull(element); const onAfterDropHandler = BuildDragEventHandler(registerOptions.onDropMethod, registerOptions.onDropScript, dropEvent); - const dropHandler = (ev) => __awaiter(this, void 0, void 0, function* () { - var _a; + const dropHandler = (ev) => { ev.preventDefault(); - this.elementDataTransfers.clear(); if (ev.target instanceof HTMLElement) { - let files = yield getFilesAsync((ev.dataTransfer)); - if (registerOptions.additive) { - const existing = (_a = this.elementDataTransfers.get(element)) !== null && _a !== void 0 ? _a : new FileList(); - if (existing.length > 0) { - files = new ConcatFileList_1.ConcatFileList(existing, files); + const filePromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + var _a; + try { + let files = yield getFilesAsync(ev.dataTransfer); + if (registerOptions.additive) { + const existing = (_a = yield this.elementDataTransfers.get(element)) !== null && _a !== void 0 ? _a : new FileList(); + if (existing.length > 0) { + files = new ConcatFileList_1.ConcatFileList(existing, files); + } + } + resolve(files); } - } - this.elementDataTransfers.set(element, files); + catch (e) { + reject(e); + } + })); + this.elementDataTransfers.set(element, filePromise); } onAfterDropHandler(ev, element, this); - }); + }; const onAfterDragOverHandler = BuildDragEventHandler(registerOptions.onDragOverMethod, registerOptions.onDragOverScript, dragOverEvent); const dragOverHandler = (ev) => { ev.preventDefault(); @@ -278,15 +277,6 @@ this.UnregisterDropEvents = DragnDrop_1.UnregisterDropEvents; this.RegisterPasteEvent = Clipboard_1.RegisterPasteEvent; this.UnregisterPasteEvent = Clipboard_1.UnregisterPasteEvent; - this.GetFileCount = (element) => { - this.LogIfNull(element); - const files = this.GetFiles(element); - if (!files) { - return -1; - } - const result = files.length; - return result; - }; this.ClearValue = (element) => { this.LogIfNull(element); if (element instanceof HTMLInputElement) { @@ -297,33 +287,9 @@ } return 0; }; - this.GetFileInfoFromElement = (element, index) => { - this.LogIfNull(element); - const files = this.GetFiles(element); - if (!files) { - return null; - } - const file = files.item(index); - if (!file) { - return null; - } - return this.GetFileInfoFromFile(file); - }; this.Dispose = (fileRef) => { return delete (this.fileStreams[fileRef]); }; - this.OpenRead = (element, fileIndex, useWasmSharedBuffer) => { - this.LogIfNull(element); - const files = this.GetFiles(element); - if (!files) { - throw 'No FileList available.'; - } - const file = files.item(fileIndex); - if (!file) { - throw `No file with index ${fileIndex} available.`; - } - return this.OpenReadFile(file, useWasmSharedBuffer); - }; this.OpenReadFile = (file, useWasmSharedBuffer) => { if (useWasmSharedBuffer && !FileReaderJsInterop_2.FileReaderJsInterop.initialized) { FileReaderJsInterop_2.FileReaderJsInterop.initialize(); @@ -413,22 +379,51 @@ } } GetFiles(element) { - let files = null; - if (element instanceof HTMLInputElement) { - files = element.files; - } - else { - const dataTransfer = this.elementDataTransfers.get(element); - if (dataTransfer) { - files = dataTransfer; + return __awaiter(this, void 0, void 0, function* () { + let files = null; + if (element instanceof HTMLInputElement) { + files = element.files; } - } - return files; + else { + const dataTransfer = this.elementDataTransfers.get(element); + if (dataTransfer) { + files = yield dataTransfer; + } + } + return files; + }); } GetJSObjectReference(element, fileIndex) { - this.LogIfNull(element); - const files = this.GetFiles(element); - return files.item(fileIndex); + return __awaiter(this, void 0, void 0, function* () { + this.LogIfNull(element); + const files = yield this.GetFiles(element); + return files.item(fileIndex); + }); + } + GetFileCount(element) { + return __awaiter(this, void 0, void 0, function* () { + this.LogIfNull(element); + const files = yield this.GetFiles(element); + if (!files) { + return -1; + } + const result = files.length; + return result; + }); + } + GetFileInfoFromElement(element, index) { + return __awaiter(this, void 0, void 0, function* () { + this.LogIfNull(element); + const files = yield this.GetFiles(element); + if (!files) { + return null; + } + const file = files.item(index); + if (!file) { + return null; + } + return this.GetFileInfoFromFile(file); + }); } GetFileInfoFromFile(file) { const result = { @@ -449,6 +444,20 @@ result.nonStandardProperties = properties; return result; } + OpenRead(element, fileIndex, useWasmSharedBuffer) { + return __awaiter(this, void 0, void 0, function* () { + this.LogIfNull(element); + const files = yield this.GetFiles(element); + if (!files) { + throw 'No FileList available.'; + } + const file = files.item(fileIndex); + if (!file) { + throw `No file with index ${fileIndex} available.`; + } + return this.OpenReadFile(file, useWasmSharedBuffer); + }); + } ReadFileSliceAsync(fileRef, position, count) { return __awaiter(this, void 0, void 0, function* () { const file = this.fileStreams[fileRef]; @@ -467,21 +476,29 @@ exports.UnregisterPasteEvent = exports.RegisterPasteEvent = void 0; function RegisterPasteEvent(element, registerOptions) { this.LogIfNull(element); - const pasteHandler = (ev) => { + const pasteHandler = (ev) => __awaiter(this, void 0, void 0, function* () { if (ev.target instanceof HTMLElement) { - let list = ev.clipboardData.files; - if (list.length > 0) { - ev.preventDefault(); - if (registerOptions.additive) { - const existing = this.elementDataTransfers.get(element); - if (existing !== undefined && existing.length > 0) { - list = new ConcatFileList_2.ConcatFileList(existing, list); + const listPromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + try { + let list = ev.clipboardData.files; + if (list.length > 0) { + ev.preventDefault(); + if (registerOptions.additive) { + const existing = yield this.elementDataTransfers.get(element); + if (existing !== undefined && existing.length > 0) { + list = new ConcatFileList_2.ConcatFileList(existing, list); + } + } } + resolve(list); } - } - this.elementDataTransfers.set(element, list); + catch (e) { + reject(e); + } + })); + this.elementDataTransfers.set(element, listPromise); } - }; + }); this.pasteElements.set(element, pasteHandler); element.addEventListener("paste", pasteHandler); return true; diff --git a/src/Blazor.FileReader/wwwroot/FileReaderComponent.js.map b/src/Blazor.FileReader/wwwroot/FileReaderComponent.js.map index 33a5377..8f010f5 100644 --- a/src/Blazor.FileReader/wwwroot/FileReaderComponent.js.map +++ b/src/Blazor.FileReader/wwwroot/FileReaderComponent.js.map @@ -1 +1 @@ -{"version":3,"file":"FileReaderComponent.js","sourceRoot":"","sources":["../script/FileReaderJsInterop.ts","../script/ConcatFileList.ts","../script/FileEntryList.ts","../script/DragnDrop.ts","../script/FileReaderComponent.ts","../script/Clipboard.ts","../script/Interfaces.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"FileReaderComponent.js","sourceRoot":"","sources":["../script/FileReaderJsInterop.ts","../script/ConcatFileList.ts","../script/FileEntryList.ts","../script/DragnDrop.ts","../script/FileReaderComponent.ts","../script/Clipboard.ts","../script/Interfaces.ts"],"names":[],"mappings":"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"} \ No newline at end of file