Changeset View
Changeset View
Standalone View
Standalone View
native/avatars/edit-user-avatar.react.js
Show All 26 Lines | function EditUserAvatar(props: Props): React.Node { | ||||
const styles = useStyles(unboundStyles); | const styles = useStyles(unboundStyles); | ||||
const { userID, disabled } = props; | const { userID, disabled } = props; | ||||
const editUserAvatarContext = React.useContext(EditUserAvatarContext); | const editUserAvatarContext = React.useContext(EditUserAvatarContext); | ||||
invariant(editUserAvatarContext, 'editUserAvatarContext should be set'); | invariant(editUserAvatarContext, 'editUserAvatarContext should be set'); | ||||
const { | const { | ||||
userAvatarSaveInProgress, | userAvatarSaveInProgress, | ||||
selectFromGalleryAndUpdateUserAvatar, | selectFromGalleryAndUpdateUserAvatar, | ||||
setENSUserAvatar, | setUserAvatar, | ||||
removeUserAvatar, | |||||
} = editUserAvatarContext; | } = editUserAvatarContext; | ||||
const currentUserInfo = useSelector(state => state.currentUserInfo); | const currentUserInfo = useSelector(state => state.currentUserInfo); | ||||
const ethAddress = React.useMemo( | const ethAddress = React.useMemo( | ||||
() => getETHAddressForUserInfo(currentUserInfo), | () => getETHAddressForUserInfo(currentUserInfo), | ||||
[currentUserInfo], | [currentUserInfo], | ||||
); | ); | ||||
const ensAvatarURI = useENSAvatar(ethAddress); | const ensAvatarURI = useENSAvatar(ethAddress); | ||||
const { navigate } = useNavigation(); | const { navigate } = useNavigation(); | ||||
const navigateToUserEmojiAvatarCreation = React.useCallback(() => { | const navigateToUserEmojiAvatarCreation = React.useCallback(() => { | ||||
navigate(EmojiUserAvatarCreationRouteName); | navigate(EmojiUserAvatarCreationRouteName); | ||||
}, [navigate]); | }, [navigate]); | ||||
const navigateToCamera = React.useCallback(() => { | const navigateToCamera = React.useCallback(() => { | ||||
navigate(UserAvatarCameraModalRouteName); | navigate(UserAvatarCameraModalRouteName); | ||||
}, [navigate]); | }, [navigate]); | ||||
const setENSUserAvatar = React.useCallback(() => { | |||||
setUserAvatar({ type: 'ens' }); | |||||
}, [setUserAvatar]); | |||||
const removeUserAvatar = React.useCallback(() => { | |||||
setUserAvatar({ type: 'remove' }); | |||||
}, [setUserAvatar]); | |||||
const actionSheetConfig = React.useMemo(() => { | const actionSheetConfig = React.useMemo(() => { | ||||
const configOptions = [ | const configOptions = [ | ||||
{ id: 'emoji', onPress: navigateToUserEmojiAvatarCreation }, | { id: 'emoji', onPress: navigateToUserEmojiAvatarCreation }, | ||||
{ id: 'image', onPress: selectFromGalleryAndUpdateUserAvatar }, | { id: 'image', onPress: selectFromGalleryAndUpdateUserAvatar }, | ||||
{ id: 'camera', onPress: navigateToCamera }, | { id: 'camera', onPress: navigateToCamera }, | ||||
]; | ]; | ||||
if (ensAvatarURI) { | if (ensAvatarURI) { | ||||
▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines |