about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2025-05-06 22:50:28 +0300
committerGitHub <noreply@github.com>2025-05-06 22:50:28 +0300
commit4c8fd006f6a994783a43e4744a3167db7aefc159 (patch)
tree0b8350774438cbbc2b8c6e77b844ce6b677381d3 /src/lib
parent3f7dc9a8e5c9225ef20ce996543a1c3cfa991eb7 (diff)
downloadvoidsky-4c8fd006f6a994783a43e4744a3167db7aefc159.tar.zst
New Edit Profile dialog on web, use new Edit Image dialog everywhere (#8220)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/media/manip.ts2
-rw-r--r--src/lib/media/manip.web.ts2
-rw-r--r--src/lib/media/picker.shared.ts10
-rw-r--r--src/lib/media/picker.web.tsx29
4 files changed, 12 insertions, 31 deletions
diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts
index ff5b71ace..4578406e0 100644
--- a/src/lib/media/manip.ts
+++ b/src/lib/media/manip.ts
@@ -24,7 +24,7 @@ import {type Dimensions} from './types'
 
 export async function compressIfNeeded(
   img: PickerImage,
-  maxSize: number = 1000000,
+  maxSize: number = POST_IMG_MAX.size,
 ): Promise<PickerImage> {
   if (img.size < maxSize) {
     return img
diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts
index ffcf0c533..f23b955d6 100644
--- a/src/lib/media/manip.web.ts
+++ b/src/lib/media/manip.web.ts
@@ -1,3 +1,5 @@
+/// <reference lib="dom" />
+
 import {type PickerImage} from './picker.shared'
 import {type Dimensions} from './types'
 import {blobToDataUri, getDataUriSize} from './util'
diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts
index 21e680832..8fd76f414 100644
--- a/src/lib/media/picker.shared.ts
+++ b/src/lib/media/picker.shared.ts
@@ -1,25 +1,21 @@
 import {
   type ImagePickerOptions,
   launchImageLibraryAsync,
-  MediaTypeOptions,
 } from 'expo-image-picker'
 import {t} from '@lingui/macro'
 
+import {type ImageMeta} from '#/state/gallery'
 import * as Toast from '#/view/com/util/Toast'
 import {getDataUriSize} from './util'
 
-export type PickerImage = {
-  mime: string
-  height: number
-  width: number
-  path: string
+export type PickerImage = ImageMeta & {
   size: number
 }
 
 export async function openPicker(opts?: ImagePickerOptions) {
   const response = await launchImageLibraryAsync({
     exif: false,
-    mediaTypes: MediaTypeOptions.Images,
+    mediaTypes: ['images'],
     quality: 1,
     ...opts,
     legacy: true,
diff --git a/src/lib/media/picker.web.tsx b/src/lib/media/picker.web.tsx
index b7d0d6f06..c1e4e4ab7 100644
--- a/src/lib/media/picker.web.tsx
+++ b/src/lib/media/picker.web.tsx
@@ -1,35 +1,18 @@
-/// <reference lib="dom" />
-
 import {type OpenCropperOptions} from 'expo-image-crop-tool'
 
-import {unstable__openModal} from '#/state/modals'
 import {type PickerImage} from './picker.shared'
 import {type CameraOpts} from './types'
 
-export {openPicker, type PickerImage as RNImage} from './picker.shared'
+export {openPicker} from './picker.shared'
 
 export async function openCamera(_opts: CameraOpts): Promise<PickerImage> {
-  // const mediaType = opts.mediaType || 'photo' TODO
-  throw new Error('TODO')
+  throw new Error('openCamera is not supported on web')
 }
 
 export async function openCropper(
-  opts: OpenCropperOptions,
+  _opts: OpenCropperOptions,
 ): Promise<PickerImage> {
-  // TODO handle more opts
-  return new Promise((resolve, reject) => {
-    unstable__openModal({
-      name: 'crop-image',
-      uri: opts.imageUri,
-      aspect: opts.aspectRatio,
-      circular: opts.shape === 'circle',
-      onSelect: (img?: PickerImage) => {
-        if (img) {
-          resolve(img)
-        } else {
-          reject(new Error('Canceled'))
-        }
-      },
-    })
-  })
+  throw new Error(
+    'openCropper is not supported on web. Use EditImageDialog instead.',
+  )
 }