added temporary (react state) image

This commit is contained in:
João Ferreiro
2022-12-05 16:51:18 +00:00
parent 49ad3746a5
commit 7895e084f8
2 changed files with 23 additions and 17 deletions
+9 -8
View File
@@ -1,4 +1,4 @@
import React, {useCallback} from 'react' import React, {useCallback, useState} from 'react'
import {StyleSheet, View, TouchableOpacity, Alert, Image} from 'react-native' import {StyleSheet, View, TouchableOpacity, Alert, Image} from 'react-native'
import Svg, {Circle, Text, Defs, LinearGradient, Stop} from 'react-native-svg' import Svg, {Circle, Text, Defs, LinearGradient, Stop} from 'react-native-svg'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
@@ -24,6 +24,8 @@ export function UserAvatar({
const initials = getInitials(displayName || handle) const initials = getInitials(displayName || handle)
const gradient = getGradient(handle) const gradient = getGradient(handle)
const [uploadedImage, setUploadedImage] = useState<string | null>(null)
const handleEditAvatar = useCallback(() => { const handleEditAvatar = useCallback(() => {
Alert.alert('Select upload method', '', [ Alert.alert('Select upload method', '', [
{ {
@@ -36,8 +38,7 @@ export function UserAvatar({
height: 80, height: 80,
cropperCircleOverlay: true, cropperCircleOverlay: true,
}).then(item => { }).then(item => {
// setLocalAvatarPicture(item.path) setUploadedImage(item.path)
console.log(item)
}) })
}, },
}, },
@@ -54,7 +55,7 @@ export function UserAvatar({
height: 80, height: 80,
cropperCircleOverlay: true, cropperCircleOverlay: true,
}).then(croppedItem => { }).then(croppedItem => {
// setLocalAvatarPicture(croppedItem.path) setUploadedImage(croppedItem.path)
console.log(croppedItem) console.log(croppedItem)
}) })
}) })
@@ -86,12 +87,12 @@ export function UserAvatar({
return isEditable ? ( return isEditable ? (
<TouchableOpacity onPress={handleEditAvatar}> <TouchableOpacity onPress={handleEditAvatar}>
{/* {localAvatarPicture != null ? ( {/* Added a react state temporary photo white the protocol does not support imagery */}
<Image style={styles.avatarImage} source={{uri: localAvatarPicture}} /> {uploadedImage != null ? (
<Image style={styles.avatarImage} source={{uri: uploadedImage}} />
) : ( ) : (
renderSvg(size, initials) renderSvg(size, initials)
)} */} )}
{renderSvg(size, initials)}
<View style={styles.editButtonContainer}> <View style={styles.editButtonContainer}>
<FontAwesomeIcon <FontAwesomeIcon
icon="camera" icon="camera"
+14 -9
View File
@@ -1,5 +1,5 @@
import React, {useCallback} from 'react' import React, {useCallback, useState} from 'react'
import {StyleSheet, View, TouchableOpacity, Alert, Image, Dimensions} from 'react-native' import {StyleSheet, View, TouchableOpacity, Alert, Image} from 'react-native'
import Svg, {Rect, Defs, LinearGradient, Stop} from 'react-native-svg' import Svg, {Rect, Defs, LinearGradient, Stop} from 'react-native-svg'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {getGradient} from '../../lib/asset-gen' import {getGradient} from '../../lib/asset-gen'
@@ -19,6 +19,8 @@ export function UserBanner({
}) { }) {
const gradient = getGradient(handle) const gradient = getGradient(handle)
const [uploadedImage, setUploadedImage] = useState<string | null>(null)
const handleEditBanner = useCallback(() => { const handleEditBanner = useCallback(() => {
Alert.alert('Select upload method', '', [ Alert.alert('Select upload method', '', [
{ {
@@ -30,7 +32,7 @@ export function UserBanner({
width: 1500, width: 1500,
height: 500, height: 500,
}).then(item => { }).then(item => {
// setLocalBannerPicture(item.path) setUploadedImage(item.path)
console.log(item) console.log(item)
}) })
}, },
@@ -47,7 +49,7 @@ export function UserBanner({
width: 1500, width: 1500,
height: 500, height: 500,
}).then(croppedItem => { }).then(croppedItem => {
// setLocalBannerPicture(croppedItem.path) setUploadedImage(croppedItem.path)
console.log(croppedItem) console.log(croppedItem)
}) })
}) })
@@ -75,12 +77,16 @@ export function UserBanner({
return isEditable ? ( return isEditable ? (
<TouchableOpacity onPress={handleEditBanner}> <TouchableOpacity onPress={handleEditBanner}>
{/* {localBannerPicture != null ? ( {/* Added a react state temporary photo white the protocol does not support imagery */}
<Image style={styles.bannerImage} source={{uri: localBannerPicture}} /> {uploadedImage != null ? (
<Image
style={styles.bannerImage}
resizeMode="stretch"
source={{uri: uploadedImage}}
/>
) : ( ) : (
renderSvg() renderSvg()
)} */} )}
{renderSvg()}
<View style={styles.editButtonContainer}> <View style={styles.editButtonContainer}>
<FontAwesomeIcon <FontAwesomeIcon
icon="camera" icon="camera"
@@ -110,6 +116,5 @@ const styles = StyleSheet.create({
bannerImage: { bannerImage: {
width: '100%', width: '100%',
height: 120, height: 120,
resizeMode: 'contain',
}, },
}) })