From e998cb829e7151ec56752212bdf126a0679e40c8 Mon Sep 17 00:00:00 2001 From: Juthatip McDevitt Date: Tue, 30 Jul 2024 21:35:26 -0500 Subject: [PATCH] updated app component --- .../UserLocationContext.jsx | 0 ev_station/app/index.js | 2 +- ev_station/app/misc/GlobalApi.js | 25 +++++++++ ev_station/app/screen/HomeScreen.jsx | 40 +++++++++++++-- .../app/screen/googleList/EVListView.jsx | 41 +++++++++++++++ ev_station/app/screen/googleList/ItemList.jsx | 28 ++++++++++ .../app/screen/mapView/MapViewScreen.jsx | 21 +++++--- ev_station/app/screen/mapView/MarkerList.jsx | 19 +++++++ .../assets/images/ev_images/charging.png | Bin 0 -> 21663 bytes ev_station/package-lock.json | 48 ++++++++++++++++++ ev_station/package.json | 1 + 11 files changed, 212 insertions(+), 13 deletions(-) rename ev_station/app/{Context => context}/UserLocationContext.jsx (100%) create mode 100644 ev_station/app/misc/GlobalApi.js create mode 100644 ev_station/app/screen/googleList/EVListView.jsx create mode 100644 ev_station/app/screen/googleList/ItemList.jsx create mode 100644 ev_station/app/screen/mapView/MarkerList.jsx create mode 100644 ev_station/assets/images/ev_images/charging.png diff --git a/ev_station/app/Context/UserLocationContext.jsx b/ev_station/app/context/UserLocationContext.jsx similarity index 100% rename from ev_station/app/Context/UserLocationContext.jsx rename to ev_station/app/context/UserLocationContext.jsx diff --git a/ev_station/app/index.js b/ev_station/app/index.js index 88ecdd3..7111394 100644 --- a/ev_station/app/index.js +++ b/ev_station/app/index.js @@ -7,7 +7,7 @@ import * as Location from 'expo-location'; import { NavigationContainer } from "@react-navigation/native"; import HomeNavigator from "./Navigation/HomeNavigator"; import { useEffect, useState } from "react"; -import { UserLocationContext } from "../app/Context/UserLocationContext"; +import { UserLocationContext } from "./context/UserLocationContext"; const tokenCache = { diff --git a/ev_station/app/misc/GlobalApi.js b/ev_station/app/misc/GlobalApi.js new file mode 100644 index 0000000..a4261cf --- /dev/null +++ b/ev_station/app/misc/GlobalApi.js @@ -0,0 +1,25 @@ +import axios from 'axios' + +const BASE_URL = 'https://places.googleapis.com/v1/places:searchNearby'; +const API_KEY = process.env.EXPO_PUBLIC_GOOGLE_PLACE_API_KEY; + +const config = { + headers:{ + 'Content-Type': 'application/json', + 'X-Goog-Api-Key': API_KEY, + 'X-Goog-FieldMask': [ + 'places.displayName', + 'places.formattedAddress', + 'places.location', + 'places.evChargeOptions', + 'places.photos' + ] + } +} + +const NewNearByPlace = (data) => axios.post(BASE_URL, data, config).catch(function (error) { + console.log(error.toJSON()); + }); +; + +export default{NewNearByPlace, API_KEY} \ No newline at end of file diff --git a/ev_station/app/screen/HomeScreen.jsx b/ev_station/app/screen/HomeScreen.jsx index 63af050..104808c 100644 --- a/ev_station/app/screen/HomeScreen.jsx +++ b/ev_station/app/screen/HomeScreen.jsx @@ -1,11 +1,41 @@ import { Image, Pressable, StyleSheet, Text, View } from 'react-native'; -import React from 'react'; +import React, { useContext, useEffect, useState } from 'react'; import MapViewScreen from "../screen/mapView/MapViewScreen"; - import HomeHeader from './HomeHeader'; import HomeSearch from './HomeSearch'; +import { UserLocationContext } from '../context/UserLocationContext'; +import GlobalApi from '../misc/GlobalApi'; +import EVListView from '../screen/googleList/EVListView'; const HomeScreen = () => { + const {location, setLocation} = useContext(UserLocationContext); + const [placeList, setPlaceList] = useState([]); + + useEffect(() => { + location && GetNearByPlace(); + },[location]) + + const GetNearByPlace = () => { + + const data = { + "includedTypes": ["electric_vehicle_charging_station"], + "maxResultCount": 10, + "locationRestriction": { + "circle": { + "center": { + "latitude": location?.latitude, + "longitude": location?.longitude + }, + "radius": 5000.0 + } + } + } + + GlobalApi.NewNearByPlace(data).then(res => { + console.log(JSON.stringify(res.data)); + setPlaceList(res.data?.places); + }) + } return ( @@ -13,8 +43,10 @@ const HomeScreen = () => { console.log(location)}/> - - + {placeList && } + + {placeList && } + ) } diff --git a/ev_station/app/screen/googleList/EVListView.jsx b/ev_station/app/screen/googleList/EVListView.jsx new file mode 100644 index 0000000..4f4aa37 --- /dev/null +++ b/ev_station/app/screen/googleList/EVListView.jsx @@ -0,0 +1,41 @@ +import { Dimensions, FlatList, StyleSheet, Text, View } from 'react-native' +import React, { useEffect, useRef } from 'react' +import ItemList from './ItemList' + +const EVListView = ({placeList}) => { + const flatListRef = useRef(null); + + useEffect(() => { + //scrollToIndex(); + }, []) + + const scrollToIndex = (index) => { + flatListRef.current?.scrollToIndex({animated: true, index}) + } + + const getItemLayout = (_,index) => ({ + length: Dimensions.get('window').width, + offset: Dimensions.get('window').width*index, + index + }); + + return ( + + ( + + + + )} + /> + + ) +} + +export default EVListView + +const styles = StyleSheet.create({}) \ No newline at end of file diff --git a/ev_station/app/screen/googleList/ItemList.jsx b/ev_station/app/screen/googleList/ItemList.jsx new file mode 100644 index 0000000..70b85c2 --- /dev/null +++ b/ev_station/app/screen/googleList/ItemList.jsx @@ -0,0 +1,28 @@ +import { Dimensions, Image, Pressable, StyleSheet, Text, View } from 'react-native' +import React from 'react' +import GlobalApi from '@/app/misc/GlobalApi' + +const ItemList = ({place}) => { + const placePhoto_Base_Url = 'https://places.googleapis.com/v1/' + + return ( + + + + + {place.displayName.text} + Total chargers: {place?.evChargeOptions?.connectorCount} + {place?.formattedAddress} + + + Start + + + + ) +} + +export default ItemList + +const styles = StyleSheet.create({}) \ No newline at end of file diff --git a/ev_station/app/screen/mapView/MapViewScreen.jsx b/ev_station/app/screen/mapView/MapViewScreen.jsx index 2fadad1..c6f1b7c 100644 --- a/ev_station/app/screen/mapView/MapViewScreen.jsx +++ b/ev_station/app/screen/mapView/MapViewScreen.jsx @@ -1,10 +1,11 @@ import { Image, StyleSheet, Text, View } from 'react-native'; import React, { useContext } from 'react'; import MapView, { Marker, PROVIDER_DEFAULT} from 'react-native-maps'; -import { UserLocationContext } from '@/app/Context/UserLocationContext'; +import { UserLocationContext } from '@/app/context/UserLocationContext'; +import MarkerList from '../mapView/MarkerList'; -const MapViewScreen = () => { +const MapViewScreen = ({placeList}) => { const {location, setLocation} = useContext(UserLocationContext) @@ -12,17 +13,21 @@ const {location, setLocation} = useContext(UserLocationContext) - - - + {location? + + : null} + + {placeList && placeList.map((item, index) => ( + + ))} + ) diff --git a/ev_station/app/screen/mapView/MarkerList.jsx b/ev_station/app/screen/mapView/MarkerList.jsx new file mode 100644 index 0000000..1c7b19b --- /dev/null +++ b/ev_station/app/screen/mapView/MarkerList.jsx @@ -0,0 +1,19 @@ +import { Image, StyleSheet, Text, View } from 'react-native' +import React from 'react' +import { Marker } from 'react-native-maps' + +const MarkerList = ({index, place}) => { + return place && ( + {}} + coordinate={{ + latitude: place.location?.latitude, + longitude: place.location?.longitude + }}> + + + ) +} + +export default MarkerList + +const styles = StyleSheet.create({}) \ No newline at end of file diff --git a/ev_station/assets/images/ev_images/charging.png b/ev_station/assets/images/ev_images/charging.png new file mode 100644 index 0000000000000000000000000000000000000000..293277c4ce33967730093cb5a55c171445f654b8 GIT binary patch literal 21663 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 tGPkESZ|}d?{W#QIX@&iNe%^1;L4m1>eN= 6" + } + }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", @@ -10210,6 +10234,25 @@ "node": ">=0.4.0" } }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/fontfaceobserver": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", @@ -15778,6 +15821,11 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", diff --git a/ev_station/package.json b/ev_station/package.json index 182c0e5..3934316 100644 --- a/ev_station/package.json +++ b/ev_station/package.json @@ -18,6 +18,7 @@ "@clerk/clerk-expo": "^2.0.0", "@expo/vector-icons": "^14.0.2", "@react-navigation/native": "^6.1.18", + "axios": "^1.7.2", "expo": "~51.0.22", "expo-constants": "~16.0.2", "expo-font": "~12.0.9",