diff --git a/native/avatars/avatar-hooks.js b/native/avatars/avatar-hooks.js --- a/native/avatars/avatar-hooks.js +++ b/native/avatars/avatar-hooks.js @@ -90,49 +90,45 @@ return processSelectedMedia; } -function useSelectFromGallery(): () => Promise { - const selectFromGallery = React.useCallback(async () => { - try { - const { assets, canceled } = await ImagePicker.launchImageLibraryAsync({ - mediaTypes: ImagePicker.MediaTypeOptions.Images, - allowsEditing: true, - allowsMultipleSelection: false, - quality: 1, - }); - - if (canceled || assets.length === 0) { - return; - } +async function selectFromGallery(): Promise { + try { + const { assets, canceled } = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ImagePicker.MediaTypeOptions.Images, + allowsEditing: true, + allowsMultipleSelection: false, + quality: 1, + }); - const asset = assets.pop(); - const { width, height, assetId: mediaNativeID } = asset; - const assetFilename = - asset.fileName || filenameFromPathOrURI(asset.uri) || ''; - const uri = getCompatibleMediaURI( - asset.uri, - extensionFromFilename(assetFilename), - ); - - const currentTime = Date.now(); - const selection: MediaLibrarySelection = { - step: 'photo_library', - dimensions: { height, width }, - uri, - filename: assetFilename, - mediaNativeID, - selectTime: currentTime, - sendTime: currentTime, - retries: 0, - }; - - return selection; - } catch (e) { - console.log(e); - return undefined; + if (canceled || assets.length === 0) { + return; } - }, []); - return selectFromGallery; + const asset = assets.pop(); + const { width, height, assetId: mediaNativeID } = asset; + const assetFilename = + asset.fileName || filenameFromPathOrURI(asset.uri) || ''; + const uri = getCompatibleMediaURI( + asset.uri, + extensionFromFilename(assetFilename), + ); + + const currentTime = Date.now(); + const selection: MediaLibrarySelection = { + step: 'photo_library', + dimensions: { height, width }, + uri, + filename: assetFilename, + mediaNativeID, + selectTime: currentTime, + sendTime: currentTime, + retries: 0, + }; + + return selection; + } catch (e) { + console.log(e); + return undefined; + } } function useUploadSelectedMedia( @@ -206,8 +202,6 @@ const dispatchActionPromise = useDispatchActionPromise(); const updateUserAvatarCall = useServerCall(updateUserAvatar); - const selectFromGallery = useSelectFromGallery(); - const [processingOrUploadInProgress, setProcessingOrUploadInProgress] = React.useState(false); @@ -251,12 +245,7 @@ } })(), ); - }, [ - dispatchActionPromise, - selectFromGallery, - updateUserAvatarCall, - uploadSelectedMedia, - ]); + }, [dispatchActionPromise, updateUserAvatarCall, uploadSelectedMedia]); return React.useMemo( () => [selectFromGalleryAndUpdateUserAvatar, inProgress], @@ -274,8 +263,6 @@ const dispatchActionPromise = useDispatchActionPromise(); const changeThreadSettingsCall = useServerCall(changeThreadSettings); - const selectFromGallery = useSelectFromGallery(); - const [processingOrUploadInProgress, setProcessingOrUploadInProgress] = React.useState(false); @@ -330,7 +317,6 @@ }, [ changeThreadSettingsCall, dispatchActionPromise, - selectFromGallery, threadID, uploadSelectedMedia, ]);