import { StyleSheet, TextInput, View, Image } from "react-native"; import { useState } from "react"; import Button from "@components/Button"; import { colors } from "@components/style"; import * as ImagePicker from "expo-image-picker"; import { Picker } from "@react-native-picker/picker"; export default function BeerAdd() { const [b_name, setBName] = useState(""); const [b_degree, setBDegree] = useState(""); const [b_packaging, setBPackaging] = useState(""); const [b_brand, setBBrand] = useState(""); const [image, setImage] = useState(null); const [selectPackaging, setSelectedPackaging] = useState(); ImagePicker.getCameraPermissionsAsync(); //check if the user has granted permission to access the camera const pickImage = async () => { const permissionResult = await ImagePicker.requestMediaLibraryPermissionsAsync(); if (permissionResult.granted === false) { alert("You've refused to allow this appp to access your photos!"); return; } // No permissions request is necessary for launching the image library const result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.Images, allowsEditing: true, aspect: [3, 4], // quality: 1, }); // Explore the result console.log(result); if (!result.canceled) { setImage(result.assets[0].uri); } }; const openCamera = async () => { // Ask the user for the permission to access the camera const permissionResult = await ImagePicker.requestCameraPermissionsAsync(); if (permissionResult.granted === false) { alert("You've refused to allow this app to access your camera!"); return; } const result = await ImagePicker.launchCameraAsync(); // Explore the result console.log(result); if (!result.canceled) { setImage(result.assets[0].uri); } }; async function addBeer() { // TODO: after the request - redirect to /beer/{new_beer_id}?; plus some modal about successful state const req = await fetch(`${process.env.EXPO_PUBLIC_API_URL}/beer/add`, { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ brand: b_brand, name: b_name, degree: b_degree, packaging: b_packaging, photos: null, }), }); const res = await req.json(); if (res.code == 201 && res.data._id) { window.location.href = `/beer/${res.data._id}`; } else { alert( "Beer was not added successfully. Please check your data and try again.", ); } } return ( setBName(text)} placeholderTextColor="#aaaaaa" /> setBBrand(text)} placeholderTextColor="#aaaaaa" /> setBDegree(text)} placeholderTextColor="#aaaaaa" /> setBPackaging(text)} placeholderTextColor="#aaaaaa" /> setSelectedPackaging(itemValue) } >