import ImageModal from '../../components/join/ImageModal.js'
function ProfilePage ({navigation}){
return(
<ImageModal toggleModal={toggleModal} onToggleModal={handleToggleModal}
onCamera={handleCamera} onGallery={handleGallery} />
)
}
import React from 'react'
import { StyleSheet, View, Text, TouchableOpacity, Button } from 'react-native'
import Modal from 'react-native-modal'
function ImageModal ({toggleModal, onToggleModal, onCamera, onGallery}){
return (
<Modal isVisible={toggleModal}>
<View style={styles.content}>
<TouchableOpacity style={styles.modalText} onPress={()=>onCamera()}>
<Text>카메라</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.modalText} onPress={()=>onGallery()}>
<Text>이미지 선택</Text>
</TouchableOpacity>
<View style={styles.modalButtonView}>
<TouchableOpacity onPress={()=>onToggleModal()}>
<Text style={styles.modalButtonText}>취소</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
)
}
const handleCamera = () => {
launchCamera({
saveToPhotos: true,
}, response => {
if(response.didCancel){ // didCancel: 카메라로 사진 선택 취소
console.log(response.didCancel)
} else {
const uri = response.assets[0].uri
setImageSource(uri)
handleToggleModal()
}
})
}
const handleGallery = () => {
launchImageLibrary({}, response => {
if(response.didCancel){ // didCancel: 카메라로 사진 선택 취소
console.log(response.didCancel)
} else {
const uri = response.assets[0].uri
setImageSource(uri)
handleToggleModal()
}
})
}
그러면 위에 처럼 기본 이미지가 있던 자리에 카메라나 갤러리에서 사진을 잘 가져와진다!!
변수나 함수 이름 짓는게 어렵다,, 겹치지 않고 읽으면 어떤 일을 수행하는지 알기 쉽게 하려고 풀어서 쓰다보니 이름도 계속 길어진다..ㅜㅜ 그래도 계속 이름 짓다보면 더 어울리는 이름을 지어줄 수 있겠지..!