From 1d809571fcbfcc11c24bbae3a641316e167da411 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 27 Aug 2026 19:14:18 +0300 Subject: [PATCH] APP-2971: Fix onboarding avatar compression after Expo 57 (#11580) (cherry picked from commit 9d76e42606127b70c8d74e4e0ce75542100465d1) --- src/lib/media/uriSize.ts | 9 +++++++++ src/lib/media/uriSize.web.ts | 5 +++++ src/screens/Onboarding/StepProfile/index.tsx | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 src/lib/media/uriSize.ts create mode 100644 src/lib/media/uriSize.web.ts diff --git a/src/lib/media/uriSize.ts b/src/lib/media/uriSize.ts new file mode 100644 index 0000000000..7ac2898180 --- /dev/null +++ b/src/lib/media/uriSize.ts @@ -0,0 +1,9 @@ +import {getInfoAsync} from 'expo-file-system/legacy' + +export async function getUriSize(uri: string): Promise { + const info = await getInfoAsync(uri) + if (!info.exists) { + throw new Error('Failed to read image size') + } + return info.size +} diff --git a/src/lib/media/uriSize.web.ts b/src/lib/media/uriSize.web.ts new file mode 100644 index 0000000000..47df9e5a76 --- /dev/null +++ b/src/lib/media/uriSize.web.ts @@ -0,0 +1,5 @@ +export async function getUriSize(uri: string): Promise { + const response = await fetch(uri) + const blob = await response.blob() + return blob.size +} diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index 988edd0910..9239f337d1 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -22,7 +22,7 @@ import {IMAGE_SIZE_CONFIG_2K_1MB} from '#/lib/constants' import {usePhotoLibraryPermission} from '#/lib/hooks/usePermissions' import {compressIfNeeded} from '#/lib/media/manip' import {openCropper} from '#/lib/media/picker' -import {getDataUriSize} from '#/lib/media/util' +import {getUriSize} from '#/lib/media/uriSize' import {useRequestNotificationsPermission} from '#/lib/notifications/notifications' import {isCancelledError} from '#/lib/strings/errors' import {logger} from '#/logger' @@ -133,7 +133,7 @@ export function StepProfile() { height: rendered.height, width: rendered.width, path: result.uri, - size: getDataUriSize(result.uri), + size: await getUriSize(result.uri), }, ] } catch {