import * as React from 'react'; import { useState, useEffect } from 'react'; import { View, Text, StyleSheet, TouchableOpacity, FlatList, Switch, ActivityIndicator, Image } from 'react-native'; import * as Location from 'expo-location'; import { useFonts } from "expo-font"; import AsyncStorage from "@react-native-async-storage/async-storage"; import Fira from "../assets/Fira.ttf"; import LocIcon from "../assets/LocIcon.png"; const L_KEY = 'locs_key' export default function Main(props) { const [fontLoaded] = useFonts({ Fira, }); const [isLoading, setIsLoading] = useState(false); const [locs, _setLocs] = useState([]); const setLocs = async (nls) => { await AsyncStorage.setItem(L_KEY, JSON.stringify(nls)) _setLocs(nls) } const saveLocs = async () => { await AsyncStorage.setItem(L_KEY, JSON.stringify(locs)) } useEffect(() => { (async () => { const x = JSON.parse(await AsyncStorage.getItem(L_KEY)) if (x) _setLocs(x); const { status } = await Location.requestForegroundPermissionsAsync(); if (status !== "granted") { alert("Permission to access location was denied"); } })(); }, []); // useEffect(() => console.log(locs)) const getPosition = async () => { let loc = { c: false, l: await Location.getCurrentPositionAsync(), } setLocs([...locs, loc]) }; const [switchState, setSwitchState] = useState(false); const pins = [1, 2, 3, 4, 5, 6, 7, 8, 9]; if (isLoading) { return ( ) } return ( LOAD{'\n'}AND SAVE{'\n'}POSITION setLocs([])} style={styles.navBtn}>REMOVE{'\n'}ALL DATA { await saveLocs(); props.navigation.navigate("mapV") }} style={styles.navBtnB}>GO TO THE MAP { setLocs(locs.map(l => { l.c = a; return l })) setSwitchState(a) }} /> { console.log("item", item) return ( - Timestamp {item.l.timestamp} - Latitude {item.l.coords.latitude} - Longitude {item.l.coords.longitude} { setLocs(locs.map(l => { if (l.l.timestamp === item.l.timestamp) l.c = a return l } )) }} /> ) }} keyExtractor={p => { console.log('p', p); p.l.timestamp }} style={styles.list} /> ) } const styles = StyleSheet.create({ cont: { flex: 1, margin: 30, }, nav: { flex: 1, flexDirection: "column", flexWrap: "wrap", // backgroundColor: "red", }, navEl: { flex: 1, flexDirection: "row", // backgroundColor: "blue", }, navTxt: { fontSize: 26, textAlign: "center", fontWeight: "bold", }, navTxtSm: { fontSize: 26, fontWeight: "bold", }, navBtn: { flex: 1, }, map: { // backgroundColor: "orange", flex: 1, flexDirection: "row", }, mapSwitch: { flex: 1, height: 65, }, navBtnB: { flex: 1, }, list: { // height: 414, flex: 1, // margin: 9, paddingBottom: 170, // height: "100%", // marginBottom: -20, }, itemTxt: { fontSize: 15, fontWeight: "bold", }, })