diff --git a/src/app/context/EventLocationContext.js b/src/app/context/EventLocationContext.js index adcd984..ce1eb1c 100644 --- a/src/app/context/EventLocationContext.js +++ b/src/app/context/EventLocationContext.js @@ -11,14 +11,11 @@ const EventLocationProvider = ({ children }) => { const [eventLocation, setEventLocation] = useState(context.currentLocation); const [eventCoordinates, setEventCoordinates] = useState(context.currentCoordinates); - console.log(context.currentLocation); //Função chamada em MapFormScreen após o usuário definir a nova localização const saveNewLocation = (local, coordinates) => { setEventLocation(local); setEventCoordinates(coordinates); - // console.log("NOVO LOCAL: " + local); - // console.log("NOVa coordenada: " + coordinates.latitude); } diff --git a/src/app/screens/MapFormScreen.js b/src/app/screens/MapFormScreen.js index 9beb2f5..7dcca35 100644 --- a/src/app/screens/MapFormScreen.js +++ b/src/app/screens/MapFormScreen.js @@ -1,31 +1,36 @@ -import React, { useContext } from "react"; +import React, { useContext, useState } from "react"; import { Button, StyleSheet, View, Text } from "react-native"; import MapView, { Marker } from "react-native-maps"; import colors from "../config/colors"; import { screen_width, screen_height } from "../config/dimensions"; -import useLocation from "../hooks/useLocation"; import * as Location from 'expo-location'; import { EventLocationContext } from "../context/EventLocationContext"; +import { TouchableOpacity } from "react-native-gesture-handler"; +import { CurrentLocationContext } from "../context/CurrentLocationContext"; //Implementação posterior: É interessante adcionar um searchBox para que o usuário busque um endereço (google places autocomplete é uma api paga) const MapFormScreen = (props) => { - // const location = useLocation({ - // latitude: -23.533773, - // longitude: -46.625290, - //}); - const getAddress = async(coordenadas) => { + const context = useContext(EventLocationContext); //local do evento + const contextLocation = useContext(CurrentLocationContext) //local do usuário + const location = contextLocation.currentCoordinates; + + const [marker, setMarker] = useState(context.eventCoordinates); + + const getAddress = async (coordenadas) => { Location.setGoogleApiKey("AIzaSyD_wuuokS3SVczc8qSASrsBq0E5qIpdyMc"); - - const address = await Location.reverseGeocodeAsync(coordenadas.x); - // console.log(address); - context.saveNewLocation(address[0].street+", " + address[0].name +"\n" + address[0].district, coordenadas.x); + + const address = await Location.reverseGeocodeAsync(coordenadas); + context.saveNewLocation(address[0].street + ", " + address[0].name + "\n" + address[0].district, coordenadas); + } + + const setLocation = () => { + getAddress(marker); + props.navigation.goBack(null); } - - const context = useContext(EventLocationContext); // console.log(markers); const map_scale = 0.003; @@ -34,9 +39,6 @@ const MapFormScreen = (props) => { longitudeDelta: map_scale * (screen_width / screen_height), }; - //const local = useLocation(); - //Deixei a localizção setada em sp só para fazer os testes - return ( { ...lat_long_delta, }} region={{ - latitude: -23.533773, - longitude: -46.625290, + latitude: location.latitude, + longitude: location.longitude, ...lat_long_delta, }} > - getAddress({ x: e.nativeEvent.coordinate }) + setMarker({ x: e.nativeEvent.coordinate }.x) } > - -