diff --git a/src/screens/Onboarding/StepProfile/SelectImageButton.tsx b/src/screens/Onboarding/StepProfile/SelectImageButton.tsx
index d70f095a45..e76b966f97 100644
--- a/src/screens/Onboarding/StepProfile/SelectImageButton.tsx
+++ b/src/screens/Onboarding/StepProfile/SelectImageButton.tsx
@@ -1,5 +1,5 @@
import React from 'react'
-import {Pressable, StyleSheet} from 'react-native'
+import {LayoutAnimation, Pressable, StyleSheet} from 'react-native'
import {Camera_Stroke2_Corner0_Rounded as Camera} from '#/components/icons/Camera'
import {useSetAvatar} from '#/screens/Onboarding/StepProfile/index'
import {useTheme} from '#/alf'
@@ -22,33 +22,25 @@ export function SelectImageButton() {
const items = await openPicker({
aspect: [1, 1],
})
- const item = items[0]
- if (!item) return
+ let image = items[0]
+ if (!image) return
// TODO we need an alf modal for the cropper
- if (isWeb) {
- const compressedImage = await compressIfNeeded(item)
-
- setAvatar(prev => ({
- ...prev,
- image: compressedImage,
- }))
- return
+ if (!isWeb) {
+ image = await openCropper({
+ mediaType: 'photo',
+ cropperCircleOverlay: true,
+ height: image.height,
+ width: image.width,
+ path: image.path,
+ })
}
+ image = await compressIfNeeded(image)
- const croppedImage = await openCropper({
- mediaType: 'photo',
- cropperCircleOverlay: true,
- height: item.height,
- width: item.width,
- path: item.path,
- })
-
- const compressedImage = await compressIfNeeded(croppedImage)
-
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
setAvatar(prev => ({
...prev,
- image: compressedImage,
+ image,
}))
}, [requestPhotoAccessIfNeeded, setAvatar])
diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx
index 97b5c62a11..377c9db33f 100644
--- a/src/screens/Onboarding/StepProfile/index.tsx
+++ b/src/screens/Onboarding/StepProfile/index.tsx
@@ -2,6 +2,7 @@ import React from 'react'
import {
FlatList,
FlatListProps,
+ LayoutAnimation,
ListRenderItemInfo,
Pressable,
StyleSheet,
@@ -110,8 +111,12 @@ export function StepProfile() {
-
-
+ {!avatar.image && (
+ <>
+
+
+ >
+ )}
@@ -143,6 +148,7 @@ function AvatarCircle() {
const Icon = avatar.placeholder.component
const onPressRemoveAvatar = React.useCallback(() => {
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
setAvatar(prev => ({
...prev,
image: undefined,