diff --git a/src/lib/media/util.ts b/src/lib/media/util.ts index 36b342204a..b8364a6bbc 100644 --- a/src/lib/media/util.ts +++ b/src/lib/media/util.ts @@ -8,6 +8,10 @@ export function getDataUriSize(uri: string): number { return Math.round((uri.length * 3) / 4) } +export function isAcceptedImageMimeType(type: string): boolean { + return ['image/jpeg', 'image/png', 'image/webp'].includes(type) +} + export function isUriImage(uri: string): boolean { return /\.(jpg|jpeg|png|webp).*$/.test(uri) } diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 18bed5372a..ed0e8b9a49 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -17,7 +17,7 @@ import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {POST_IMG_MAX} from '#/lib/constants' import {downloadAndResize} from '#/lib/media/manip' -import {isUriImage} from '#/lib/media/util' +import {isAcceptedImageMimeType, isUriImage} from '#/lib/media/util' import {getMentionAt, insertMentionAt} from '#/lib/strings/mention-manip' import {useTheme} from '#/lib/ThemeContext' import {isAndroid, isNative} from '#/platform/detection' @@ -127,13 +127,10 @@ export function TextInput({ async (evt: NativeSyntheticEvent) => { const files = evt.nativeEvent.items - console.log(files) + const file = files.find(f => isAcceptedImageMimeType(f.type)) - const uris = files.filter(f => f.type === 'image').map(f => f.data) - const uri = uris.find(isUriImage) - - if (uri) { - onPhotoPasted(uri) + if (file) { + onPhotoPasted(file.data) } }, [onPhotoPasted],