about summary refs log tree commit diff
path: root/patches
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-12-14 02:25:32 +0000
committerGitHub <noreply@github.com>2024-12-14 02:25:32 +0000
commitc5e60ba006bdb81107007a45b4d36072200e123f (patch)
tree6a230c5759ae926a18c870df11eee18a3865440e /patches
parent55222c5b0e57b3c7223fc13778e4cba67579da69 (diff)
downloadvoidsky-c5e60ba006bdb81107007a45b4d36072200e123f.tar.zst
Fix posting images on web (#7105)
* Fix uploadBlob to handle blob: URI

* Patch expo-image-manipulator to support "compress" argument

* Narrow down the fix
Diffstat (limited to 'patches')
-rw-r--r--patches/expo-image-manipulator+13.0.5.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/expo-image-manipulator+13.0.5.patch b/patches/expo-image-manipulator+13.0.5.patch
new file mode 100644
index 000000000..4ff1cc970
--- /dev/null
+++ b/patches/expo-image-manipulator+13.0.5.patch
@@ -0,0 +1,48 @@
+diff --git a/node_modules/expo-image-manipulator/src/ImageManipulator.ts b/node_modules/expo-image-manipulator/src/ImageManipulator.ts
+index a80d9c8..babbb3b 100644
+--- a/node_modules/expo-image-manipulator/src/ImageManipulator.ts
++++ b/node_modules/expo-image-manipulator/src/ImageManipulator.ts
+@@ -43,7 +43,7 @@ export async function manipulateAsync(
+       context.extent(action.extent);
+     }
+   }
+-  const image = await context.renderAsync();
++  const image = await context.renderAsync(saveOptions.compress);
+   const result = await image.saveAsync({ format, ...rest });
+ 
+   // These shared objects will not be used anymore, so free up some memory.
+diff --git a/node_modules/expo-image-manipulator/src/ImageManipulatorContext.ts b/node_modules/expo-image-manipulator/src/ImageManipulatorContext.ts
+index 120d8d3..f8aa49c 100644
+--- a/node_modules/expo-image-manipulator/src/ImageManipulatorContext.ts
++++ b/node_modules/expo-image-manipulator/src/ImageManipulatorContext.ts
+@@ -52,7 +52,7 @@ export declare class ImageManipulatorContext extends SharedObject {
+   /**
+    * Awaits for all manipulation tasks to finish and resolves with a reference to the resulted native image.
+    */
+-  renderAsync(): Promise<ImageRef>;
++  renderAsync(compress?: number): Promise<ImageRef>;
+ }
+ 
+ export default ExpoImageManipulator.Context as typeof ImageManipulatorContext;
+diff --git a/node_modules/expo-image-manipulator/src/web/ImageManipulatorContext.web.ts b/node_modules/expo-image-manipulator/src/web/ImageManipulatorContext.web.ts
+index 428848c..363a57a 100644
+--- a/node_modules/expo-image-manipulator/src/web/ImageManipulatorContext.web.ts
++++ b/node_modules/expo-image-manipulator/src/web/ImageManipulatorContext.web.ts
+@@ -41,7 +41,7 @@ export default class ImageManipulatorContext extends SharedObject {
+     return this;
+   }
+ 
+-  async renderAsync(): Promise<ImageManipulatorImageRef> {
++  async renderAsync(compress?: number): Promise<ImageManipulatorImageRef> {
+     const canvas = await this.currentTask;
+ 
+     return new Promise((resolve) => {
+@@ -49,7 +49,7 @@ export default class ImageManipulatorContext extends SharedObject {
+         const url = blob ? URL.createObjectURL(blob) : canvas.toDataURL();
+ 
+         resolve(new ImageManipulatorImageRef(url, canvas.width, canvas.height));
+-      });
++      }, typeof compress === 'number' ? 'image/jpeg' : undefined, compress);
+     });
+   }
+