Browse Source

Fix Browser not wrapping file handles into StorageItem object

pull/11506/head
Max Katz 3 years ago
parent
commit
2ac8849fb0
  1. 3
      src/Browser/Avalonia.Browser/Interop/StorageHelper.cs
  2. 5
      src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

3
src/Browser/Avalonia.Browser/Interop/StorageHelper.cs

@ -39,6 +39,9 @@ internal static partial class StorageHelper
[JSImport("StorageItem.openRead", AvaloniaModule.StorageModuleName)]
public static partial Task<JSObject> OpenRead(JSObject item);
[JSImport("StorageItem.createFromHandle", AvaloniaModule.StorageModuleName)]
public static partial JSObject? StorageItemFromHandle(JSObject handle);
[JSImport("StorageItem.getItemsIterator", AvaloniaModule.StorageModuleName)]
[return: JSMarshalAs<JSType.Object>]

5
src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

@ -319,13 +319,14 @@ internal class JSStorageFolder : JSStorageItem, IStorageBookmarkFolder
}
var kind = storageItem.GetPropertyAsString("kind");
var item = StorageHelper.StorageItemFromHandle(storageItem)!;
switch (kind)
{
case "directory":
yield return new JSStorageFolder(storageItem);
yield return new JSStorageFolder(item);
break;
case "file":
yield return new JSStorageFile(storageItem);
yield return new JSStorageFile(item);
break;
}
}

Loading…
Cancel
Save