about summary refs log tree commit diff
path: root/src/lib/media/picker.shared.ts
diff options
context:
space:
mode:
authorLogan Rosen <loganrosen@gmail.com>2023-06-06 10:38:58 -0400
committerGitHub <noreply@github.com>2023-06-06 09:38:58 -0500
commitbdcdb4e4dc9636834b54147d666e6f6024fcff7b (patch)
tree2dc0ea153581724fe8cce5e8524a32a79f677149 /src/lib/media/picker.shared.ts
parenta67eaa6ace7b8b7a2158decf1d84c613b890f614 (diff)
downloadvoidsky-bdcdb4e4dc9636834b54147d666e6f6024fcff7b.tar.zst
Use expo-image-picker on Web (#847)
Diffstat (limited to 'src/lib/media/picker.shared.ts')
-rw-r--r--src/lib/media/picker.shared.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts
new file mode 100644
index 000000000..00b09c6b8
--- /dev/null
+++ b/src/lib/media/picker.shared.ts
@@ -0,0 +1,23 @@
+import {
+  ImagePickerOptions,
+  launchImageLibraryAsync,
+  MediaTypeOptions,
+} from 'expo-image-picker'
+import {getDataUriSize} from './util'
+
+export async function openPicker(opts?: ImagePickerOptions) {
+  const response = await launchImageLibraryAsync({
+    exif: false,
+    mediaTypes: MediaTypeOptions.Images,
+    quality: 1,
+    ...opts,
+  })
+
+  return (response.assets ?? []).map(image => ({
+    mime: 'image/jpeg',
+    height: image.height,
+    width: image.width,
+    path: image.uri,
+    size: getDataUriSize(image.uri),
+  }))
+}