diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/media/manip.ts | 2 | ||||
-rw-r--r-- | src/lib/media/manip.web.ts | 2 | ||||
-rw-r--r-- | src/lib/media/picker.shared.ts | 10 | ||||
-rw-r--r-- | src/lib/media/picker.web.tsx | 29 |
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.', + ) } |