import React, { useState, useEffect, useRef } from "react"; import { Text, View, TouchableOpacity } from "react-native"; import { Camera } from "expo-camera"; import { Ionicons, FontAwesome, MaterialCommunityIcons, } from "@expo/vector-icons"; import { useNavigation } from "@react-navigation/native"; export default function ScreenCamera() { const navigation = useNavigation(); const [hasPermission, setHasPermission] = useState(null); const [type, setType] = useState(Camera.Constants.Type.back); const cameraRef = useRef(null); useEffect(() => { (async () => { const { status } = await Camera.requestPermissionsAsync(); setHasPermission(status === "granted"); })(); }, []); const handleCameraType = () => { setType( type === Camera.Constants.Type.back ? Camera.Constants.Type.front : Camera.Constants.Type.back ); }; const handleTakePicture = async () => { console.log("Taking the picture!"); if (cameraRef.current) { let photo = await cameraRef.current.takePictureAsync(); console.log("The Photo", photo); } }; if (hasPermission === null) { return ; } if (hasPermission === false) { return No access to camera; } return ( { navigation.push("MediaCache"); }} style={{ alignSelf: "flex-end", alignItems: "center", backgroundColor: "transparent", }} > ); }