Added camera screen + dependencies.

This commit is contained in:
Patrick Fic
2020-08-13 13:07:11 -07:00
parent 4d50906b48
commit 3ea3cd9fce
6 changed files with 116 additions and 3 deletions

View File

@@ -0,0 +1,87 @@
import React, { useState, useEffect } from "react";
import { Text, View, TouchableOpacity } from "react-native";
import { Camera } from "expo-camera";
export default function ScreenCamera() {
const [hasPermission, setHasPermission] = useState(null);
const [type, setType] = useState(Camera.Constants.Type.back);
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === "granted");
})();
}, []);
if (hasPermission === null) {
return <View />;
}
if (hasPermission === false) {
return <Text>No access to camera</Text>;
}
return (
<View style={{ flex: 1 }}>
<Camera style={{ flex: 1 }} type={type}>
<View
style={{
flex: 1,
backgroundColor: "transparent",
flexDirection: "row",
}}
>
<TouchableOpacity
style={{
flex: 0.1,
alignSelf: "flex-end",
alignItems: "center",
}}
onPress={() => {
setType(
type === Camera.Constants.Type.back
? Camera.Constants.Type.front
: Camera.Constants.Type.back
);
}}
>
<Text style={{ fontSize: 18, marginBottom: 10, color: "white" }}>
Flip
</Text>
</TouchableOpacity>
<TouchableOpacity
style={{ alignSelf: "center" }}
onPress={async () => {
if (cameraRef) {
let photo = await cameraRef.takePictureAsync();
console.log("photo", photo);
}
}}
>
<View
style={{
borderWidth: 2,
borderRadius: "50%",
borderColor: "white",
height: 50,
width: 50,
display: "flex",
justifyContent: "center",
alignItems: "center",
}}
>
<View
style={{
borderWidth: 2,
borderRadius: "50%",
borderColor: "white",
height: 40,
width: 40,
backgroundColor: "white",
}}
></View>
</View>
</TouchableOpacity>
</View>
</Camera>
</View>
);
}