about summary refs log tree commit diff
path: root/src/lib/media/picker.shared.ts
diff options
context:
space:
mode:
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),
+  }))
+}