From faa5e73bb9a5a8c4b3b44eb320848b057d304bd9 Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 17:23:18 -0700 Subject: [PATCH 01/16] Setup initial button --- components/FloatingButton.tsx | 128 ++++++++++++++++++++++++++++++++++ screens/HomeMap.tsx | 45 ++++++++---- 2 files changed, 161 insertions(+), 12 deletions(-) create mode 100644 components/FloatingButton.tsx diff --git a/components/FloatingButton.tsx b/components/FloatingButton.tsx new file mode 100644 index 0000000..6d91f6e --- /dev/null +++ b/components/FloatingButton.tsx @@ -0,0 +1,128 @@ +import React, { useState, useRef } from "react"; +import { View, TouchableOpacity, Animated, Image, Easing } from "react-native"; + +interface ActionItem { + icon: React.ReactElement; + action: () => void; +} + +interface FloatingButtonProps { + icon: any; + actions: ActionItem[]; + showActions: boolean; + toggleActions: () => void; +} + +const FloatingButton: React.FC = ({ + icon, + actions, + showActions, + toggleActions, +}) => { + const spinValue = useRef(new Animated.Value(0)).current; + const radiusValue = useRef(new Animated.Value(0)).current; + const scaleValue = useRef(new Animated.Value(1)).current; + + const spinAnimation = () => { + spinValue.setValue(0); + Animated.timing(spinValue, { + toValue: 1, + duration: 200, + useNativeDriver: true, + }).start(); + + Animated.spring(scaleValue, { + toValue: showActions ? 1 : 1.1, + useNativeDriver: true, + }).start(); + + toggleActions(); + + Animated.timing(radiusValue, { + toValue: showActions ? 0 : 1, + duration: 150, + easing: showActions + ? Easing.back(1.5) + : Easing.bezier(0.25, 0.1, 0.25, 1), + useNativeDriver: true, + }).start(); + }; + + const actionButtons = actions.map((actionItem, index) => { + const angles = [270, 225, 180]; + const angle = angles[index]; + const radian = (angle * Math.PI) / 180; + const radius = 90; + + const x = Math.cos(radian) * radius; + const y = Math.sin(radian) * radius; + + const animatedStyle = { + transform: [ + { + translateX: radiusValue.interpolate({ + inputRange: [0, 1], + outputRange: [0, x], + }), + }, + { + translateY: radiusValue.interpolate({ + inputRange: [0, 1], + outputRange: [0, y], + }), + }, + ], + opacity: radiusValue.interpolate({ + inputRange: [0, 0.7, 1], + outputRange: [0, 0.2, 1], + }), + }; + + return ( + + + {actionItem.icon} + + + ); + }); + + return ( + + + + + + + {actionButtons} + + ); +}; + +export default FloatingButton; diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index fcd9c27..2bc024f 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -18,7 +18,12 @@ import { FoodVendor } from "../models/FoodVendor"; import { BuildingContext } from "../contexts/BuildingContext"; import { useContext } from "react"; import MenuSearch from "../services/MenuSearch"; -import { MagnifyingGlass, ArrowUpRight } from "phosphor-react-native"; +import { + ArrowUpRight, + Plus, + MagnifyingGlass, + Info, +} from "phosphor-react-native"; import { SearchBar } from "../components/SearchBar"; import { MenuItem, MenuItemTag } from "../models/Menu"; import CustomMarker from "../components/CustomMarker"; @@ -32,6 +37,7 @@ import { StackNavigationProp } from "@react-navigation/stack"; import { StackParamList } from "../navigation/HomeNavigation"; import { UserPopup } from "../components/UserPopup"; import { mapStyles } from "../services/mapStyles"; +import FloatingButton from "../components/FloatingButton"; const UVicRegion: Coordinates = { latitude: 48.463440294565316, @@ -73,6 +79,7 @@ const HomeMap: React.FC = () => { const [isLoginModalVisible, setIsLoginModalVisible] = useState(false); const [selectedItem, setSelectedItem] = useState(null); + const [showActions, setShowActions] = useState(false); const searchInputRef = useRef(null); const _mapView = React.createRef(); @@ -91,6 +98,10 @@ const HomeMap: React.FC = () => { } }); + const toggleActions = () => { + setShowActions(!showActions); + }; + const handleLogout = () => { authManager .signOut() @@ -356,18 +367,28 @@ const HomeMap: React.FC = () => { ) )} - setPopupVisible(true)} - > - + , + action: () => console.log("Add button pressed"), + }, + { + icon: , + action: () => console.log("Search button pressed"), + }, + { + icon: , + action: () => console.log("Info button pressed"), + }, + ]} /> - + + Date: Wed, 3 Apr 2024 17:46:50 -0700 Subject: [PATCH 02/16] Adjust animation --- components/FloatingButton.tsx | 75 +++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 25 deletions(-) diff --git a/components/FloatingButton.tsx b/components/FloatingButton.tsx index 6d91f6e..7a578ff 100644 --- a/components/FloatingButton.tsx +++ b/components/FloatingButton.tsx @@ -19,33 +19,52 @@ const FloatingButton: React.FC = ({ showActions, toggleActions, }) => { - const spinValue = useRef(new Animated.Value(0)).current; - const radiusValue = useRef(new Animated.Value(0)).current; const scaleValue = useRef(new Animated.Value(1)).current; + const actionAnimations = actions.map( + () => useRef(new Animated.Value(0)).current + ); - const spinAnimation = () => { - spinValue.setValue(0); - Animated.timing(spinValue, { - toValue: 1, - duration: 200, - useNativeDriver: true, - }).start(); + const toggleActionAnimations = () => { + const baseDelay = 40; + const duration = 150; - Animated.spring(scaleValue, { - toValue: showActions ? 1 : 1.1, - useNativeDriver: true, - }).start(); + actionAnimations.forEach((anim, index) => { + const delay = showActions + ? (actions.length - 1 - index) * baseDelay + : index * baseDelay; - toggleActions(); + Animated.timing(anim, { + toValue: showActions ? 0 : 1, + duration: duration, + easing: showActions + ? Easing.bezier(0.64, 0.06, 0.38, 0.95) + : Easing.bezier(0.09, 0.79, 0.24, 0.88), + delay: delay, + useNativeDriver: true, + }).start(); + }); + }; + + const toggleMainAnimation = () => { + Animated.sequence([ + Animated.timing(scaleValue, { + toValue: 1.1, + easing: Easing.bezier(0.64, 0.06, 0.38, 0.95), + duration: 75, + useNativeDriver: true, + }), + Animated.timing(scaleValue, { + toValue: 1, + duration: 75, + useNativeDriver: true, + }), + ]).start(); + }; - Animated.timing(radiusValue, { - toValue: showActions ? 0 : 1, - duration: 150, - easing: showActions - ? Easing.back(1.5) - : Easing.bezier(0.25, 0.1, 0.25, 1), - useNativeDriver: true, - }).start(); + const spinAnimation = () => { + toggleMainAnimation(); + toggleActions(); + toggleActionAnimations(); }; const actionButtons = actions.map((actionItem, index) => { @@ -60,19 +79,25 @@ const FloatingButton: React.FC = ({ const animatedStyle = { transform: [ { - translateX: radiusValue.interpolate({ + translateX: actionAnimations[index].interpolate({ inputRange: [0, 1], outputRange: [0, x], }), }, { - translateY: radiusValue.interpolate({ + translateY: actionAnimations[index].interpolate({ inputRange: [0, 1], outputRange: [0, y], }), }, + // { + // scale: actionAnimations[index].interpolate({ + // inputRange: [0, 1], + // outputRange: [0, 1], + // }), + // }, ], - opacity: radiusValue.interpolate({ + opacity: actionAnimations[index].interpolate({ inputRange: [0, 0.7, 1], outputRange: [0, 0.2, 1], }), From b7103d8e362df04f188f2d07b5c8bc253ba4e777 Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 18:08:09 -0700 Subject: [PATCH 03/16] Adjust sizing --- components/FloatingButton.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/components/FloatingButton.tsx b/components/FloatingButton.tsx index 7a578ff..f3e34d7 100644 --- a/components/FloatingButton.tsx +++ b/components/FloatingButton.tsx @@ -1,4 +1,4 @@ -import React, { useState, useRef } from "react"; +import React, { useRef } from "react"; import { View, TouchableOpacity, Animated, Image, Easing } from "react-native"; interface ActionItem { @@ -61,7 +61,7 @@ const FloatingButton: React.FC = ({ ]).start(); }; - const spinAnimation = () => { + const toggleAnimation = () => { toggleMainAnimation(); toggleActions(); toggleActionAnimations(); @@ -71,7 +71,7 @@ const FloatingButton: React.FC = ({ const angles = [270, 225, 180]; const angle = angles[index]; const radian = (angle * Math.PI) / 180; - const radius = 90; + const radius = 110; const x = Math.cos(radian) * radius; const y = Math.sin(radian) * radius; @@ -117,7 +117,7 @@ const FloatingButton: React.FC = ({ > {actionItem.icon} @@ -129,7 +129,7 @@ const FloatingButton: React.FC = ({ = ({ ], }} > - + {actionButtons} From 54a7c97021a0018afc93a40d0120fa26d0dc47c9 Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 18:27:50 -0700 Subject: [PATCH 04/16] Change sizing --- components/FloatingButton.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/FloatingButton.tsx b/components/FloatingButton.tsx index f3e34d7..309da7d 100644 --- a/components/FloatingButton.tsx +++ b/components/FloatingButton.tsx @@ -117,7 +117,7 @@ const FloatingButton: React.FC = ({ > {actionItem.icon} @@ -133,7 +133,7 @@ const FloatingButton: React.FC = ({ style={{ zIndex: 15 }} > = ({ ], }} > - + {actionButtons} From 08e166bd78e62ffe72f8fc6d4349c355eae3320d Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 18:45:09 -0700 Subject: [PATCH 05/16] Add new asset --- assets/bg.png | Bin 0 -> 169807 bytes hooks/loadAssets.tsx | 1 + 2 files changed, 1 insertion(+) create mode 100644 assets/bg.png diff --git a/assets/bg.png b/assets/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e97f30f421a6d9b3d35b57121972763709756d09 GIT binary patch literal 169807 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 z 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�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

q3@)L*w@M% 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 z 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 { require("../assets/logo.png"), require("../assets/full-logo.png"), require("../assets/splash-login.png"), + require("../assets/bg.png"), ]), ]); }; From cb0d650858e3d8c6092ccc5ecc597c9e17e6fbf9 Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 18:45:27 -0700 Subject: [PATCH 06/16] Add new page for menu photo upload --- navigation/HomeNavigation.tsx | 9 +++- screens/HomeMap.tsx | 17 +++++-- screens/Upload.tsx | 88 +++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 screens/Upload.tsx diff --git a/navigation/HomeNavigation.tsx b/navigation/HomeNavigation.tsx index 45f768b..b867d98 100644 --- a/navigation/HomeNavigation.tsx +++ b/navigation/HomeNavigation.tsx @@ -2,10 +2,12 @@ import React, { useState } from "react"; import { createStackNavigator } from "@react-navigation/stack"; import HomeMap from "../screens/HomeMap"; import Login from "../screens/Login"; +import Upload from "../screens/Upload"; export type StackParamList = { HomeMap: undefined; Login: undefined; + Upload: undefined; }; const Stack = createStackNavigator(); @@ -21,7 +23,7 @@ const HomeNavigation: React.FC = () => { return ( @@ -35,6 +37,11 @@ const HomeNavigation: React.FC = () => { component={LoginScreenWrapper} options={{ headerShown: false }} /> + ); }; diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index 2bc024f..8b1ab78 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -23,6 +23,9 @@ import { Plus, MagnifyingGlass, Info, + UserCirclePlus, + UserCircle, + Camera, } from "phosphor-react-native"; import { SearchBar } from "../components/SearchBar"; import { MenuItem, MenuItemTag } from "../models/Menu"; @@ -374,15 +377,19 @@ const HomeMap: React.FC = () => { icon={require("../assets/logo.png")} actions={[ { - icon: , - action: () => console.log("Add button pressed"), + icon: , + action: () => navigation.navigate("Upload"), }, { - icon: , - action: () => console.log("Search button pressed"), + icon: userEmail ? ( + + ) : ( + + ), + action: () => navigation.navigate("Login"), }, { - icon: , + icon: , action: () => console.log("Info button pressed"), }, ]} diff --git a/screens/Upload.tsx b/screens/Upload.tsx new file mode 100644 index 0000000..19e4edc --- /dev/null +++ b/screens/Upload.tsx @@ -0,0 +1,88 @@ +import React, { useState } from "react"; +import { + Text, + View, + TextInput, + ScrollView, + TouchableOpacity, + ActivityIndicator, +} from "react-native"; +import BackgroundImage from "../components/BackgroundImage"; +import { X } from "phosphor-react-native"; +import { useNavigation } from "@react-navigation/native"; +import { StackNavigationProp } from "@react-navigation/stack"; +import { StackParamList } from "../navigation/HomeNavigation"; + +type HomeMapNavigationProp = StackNavigationProp; + +const Upload: React.FC = () => { + const [vendor, setVendor] = useState(""); + const [vendorFocused, setVendorFocused] = useState(false); + const [photo, setPhoto] = useState(""); + const [loading, setLoading] = useState(false); + + const navigation = useNavigation(); + + return ( + + { + navigation.goBack(); + }} + > + + + + + + + setVendor(text)} + className={`w-5/6 h-12 border-2 bg-white rounded-lg px-4 ${ + vendorFocused && vendor !== "" + ? "border-blue" + : "border-neutral-400" + }`} + style={{ + fontSize: 16, + color: "#154058", + fontWeight: "bold", + }} + onBlur={() => { + setVendorFocused(false); + }} + onFocus={() => { + setVendorFocused(true); + }} + /> + + {!loading ? ( + Take Photo + ) : ( + + )} + + + + ); +}; + +export default Upload; From f1295bbd6c38281df4ece5f814031d3dd2ace27e Mon Sep 17 00:00:00 2001 From: lbare Date: Wed, 3 Apr 2024 19:15:35 -0700 Subject: [PATCH 07/16] Camera working - VERY rough styling --- app.json | 14 +++-- package.json | 1 + screens/Upload.tsx | 137 +++++++++++++++++++++++++++++++++------------ yarn.lock | 7 +++ 4 files changed, 120 insertions(+), 39 deletions(-) diff --git a/app.json b/app.json index 5c901c5..313255f 100644 --- a/app.json +++ b/app.json @@ -12,9 +12,7 @@ "resizeMode": "contain", "backgroundColor": "#eeeeee" }, - "assetBundlePatterns": [ - "**/*" - ], + "assetBundlePatterns": ["**/*"], "ios": { "supportsTablet": true, "bundleIdentifier": "app.uhub.seng480A.uvic", @@ -32,7 +30,7 @@ "config": { "googleMaps": { "apiKey": "AIzaSyBJWMWCK9PvYKUaIdIHJ7ybsXFpQlxl8Nc" - } + } }, "package": "app.uhub.seng480A.uvic" }, @@ -54,6 +52,14 @@ "useFrameworks": "static" } } + ], + [ + "expo-camera", + { + "cameraPermission": "Allow $(PRODUCT_NAME) to access your camera", + "microphonePermission": "Allow $(PRODUCT_NAME) to access your microphone", + "recordAudioAndroid": true + } ] ] } diff --git a/package.json b/package.json index e0a1a0c..9017b66 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "expo": "~50.0.14", "expo-asset": "^9.0.2", "expo-build-properties": "^0.11.1", + "expo-camera": "^14.1.1", "expo-status-bar": "~1.11.1", "firebase": "^10.8.0", "fuse.js": "^7.0.0", diff --git a/screens/Upload.tsx b/screens/Upload.tsx index 19e4edc..981ed39 100644 --- a/screens/Upload.tsx +++ b/screens/Upload.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useRef, useEffect } from "react"; import { Text, View, @@ -6,7 +6,9 @@ import { ScrollView, TouchableOpacity, ActivityIndicator, + Image, } from "react-native"; +import { Camera, CameraType } from "expo-camera"; import BackgroundImage from "../components/BackgroundImage"; import { X } from "phosphor-react-native"; import { useNavigation } from "@react-navigation/native"; @@ -18,11 +20,56 @@ type HomeMapNavigationProp = StackNavigationProp; const Upload: React.FC = () => { const [vendor, setVendor] = useState(""); const [vendorFocused, setVendorFocused] = useState(false); - const [photo, setPhoto] = useState(""); + const [photo, setPhoto] = useState(null); const [loading, setLoading] = useState(false); + const cameraRef = useRef(null); + const [cameraOpen, setCameraOpen] = useState(false); + const [permission, requestPermission] = Camera.useCameraPermissions(); const navigation = useNavigation(); + useEffect(() => { + console.log(photo); + }, [photo]); + + useEffect(() => { + if (cameraOpen) setCameraOpen(false); + }, [photo]); + + async function takePhoto() { + if (cameraRef.current) { + const options = { quality: 0.1, base64: true }; + const data = await cameraRef.current.takePictureAsync(options); + setPhoto(data.uri); + } + } + + const handleTakePhoto = async () => { + setLoading(true); + await takePhoto(); + setLoading(false); + }; + + if (cameraOpen && permission && permission.granted) { + return ( + + + + Take Photo + + + + ); + } + return ( { - - setVendor(text)} - className={`w-5/6 h-12 border-2 bg-white rounded-lg px-4 ${ - vendorFocused && vendor !== "" - ? "border-blue" - : "border-neutral-400" - }`} - style={{ - fontSize: 16, - color: "#154058", - fontWeight: "bold", - }} - onBlur={() => { - setVendorFocused(false); - }} - onFocus={() => { - setVendorFocused(true); - }} - /> - - {!loading ? ( + + + setVendor(text)} + className={`w-5/6 h-12 border-2 bg-white rounded-lg px-4 ${ + vendorFocused && vendor !== "" + ? "border-blue" + : "border-neutral-400" + }`} + style={{ + fontSize: 16, + color: "#154058", + fontWeight: "bold", + }} + onBlur={() => { + setVendorFocused(false); + }} + onFocus={() => { + setVendorFocused(true); + }} + /> + { + requestPermission(); + setCameraOpen(true); + }} + disabled={!!photo} + > Take Photo - ) : ( - - )} - + + { + setCameraOpen(true); + setPhoto(null); + }} + className="w-full rounded-full justify-center items-center mb-4" + style={{ + height: 300, + }} + > + {photo && ( + + )} + + ); diff --git a/yarn.lock b/yarn.lock index 10bb450..740fdfc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4506,6 +4506,13 @@ expo-build-properties@^0.11.1: ajv "^8.11.0" semver "^7.5.3" +expo-camera@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.1.1.tgz#f500c37dc112090bd5d2f30917087f7faf59318b" + integrity sha512-ANxQYy2P9qXxRoLWs7Gs3y7NM7OpYr7Q1H6kmQwJxHjjuJSc2qhwhY10I138d0fzB0h0p8NF1ezqIrqWct5AvQ== + dependencies: + invariant "^2.2.4" + expo-constants@~15.4.0: version "15.4.5" resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.5.tgz#81756a4c4e1c020f840a419cd86a124a6d1fb35b" From fda1f73cffdd8c47915f242bf93c3a92686a87fb Mon Sep 17 00:00:00 2001 From: rahulniraula2 Date: Thu, 4 Apr 2024 08:40:41 -0700 Subject: [PATCH 08/16] adding image submittion backend --- .../firebase-user-image-submittion.tsx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 services/Firebase/firebase-user-image-submittion.tsx diff --git a/services/Firebase/firebase-user-image-submittion.tsx b/services/Firebase/firebase-user-image-submittion.tsx new file mode 100644 index 0000000..6d05a72 --- /dev/null +++ b/services/Firebase/firebase-user-image-submittion.tsx @@ -0,0 +1,38 @@ +// First, ensure your Firebase config is set up correctly for the modular version + +import { ref, uploadBytes } from "firebase/storage"; +import { db, storage } from "../firebase"; +import { collection, doc, setDoc } from "firebase/firestore"; + +class FirebaseUserImageService { + private generateUID(): string { + return Math.random().toString(36).substring(2); + } + + async uploadImageAsync(vendorName: string, uri: string) { + // Generate UID + const uid = this.generateUID(); + + const imageName = `user_submittions/${uid}.jpg`; // Creating a unique name for the image + const storageRef = ref(storage, imageName); + + // Upload the file and metadata + const colRef = collection(db, "UserSubmissions"); + const docRef = doc(colRef, uid); + + await setDoc(docRef, { + vendor: vendorName, + image: imageName, + date: new Date(), + }); + + const response = await fetch(uri); + const blob = await response.blob(); + + return await uploadBytes(storageRef, blob).then(async (_) => { + return true; + }); + } +} + +export default FirebaseUserImageService; From 72ba3574fa0b748d0b7a030ac9e9b0880585fb24 Mon Sep 17 00:00:00 2001 From: rahulniraula2 Date: Thu, 4 Apr 2024 08:50:18 -0700 Subject: [PATCH 09/16] forgot to commit a file --- services/firebase.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/firebase.js b/services/firebase.js index 9790079..c0b5fad 100644 --- a/services/firebase.js +++ b/services/firebase.js @@ -1,5 +1,6 @@ import { getApps, initializeApp, getApp } from "firebase/app"; import { getFirestore } from "@firebase/firestore"; +import { getStorage } from "@firebase/storage"; import { initializeAuth, getReactNativePersistence } from "firebase/auth"; import ReactNativeAsyncStorage from "@react-native-async-storage/async-storage"; @@ -24,5 +25,6 @@ const auth = initializeAuth(app, { persistence: getReactNativePersistence(ReactNativeAsyncStorage), }); const db = getFirestore(app); +const storage = getStorage(app); -export { auth, db }; +export { auth, db, storage }; From d500a3dcdf8a1c1dccc38292a24d044610f1eabe Mon Sep 17 00:00:00 2001 From: lbare Date: Thu, 4 Apr 2024 17:50:29 -0700 Subject: [PATCH 10/16] Upload working well (to my knowledge) --- package.json | 1 + screens/HomeMap.tsx | 2 - screens/Upload.tsx | 397 ++++++++++++++++++++++++++++++++------------ yarn.lock | 5 + 4 files changed, 294 insertions(+), 111 deletions(-) diff --git a/package.json b/package.json index 9017b66..78cc635 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "react": "18.2.0", "react-dom": "^18.2.0", "react-native": "0.73.6", + "react-native-dropdown-picker": "^5.4.6", "react-native-gesture-handler": "~2.14.0", "react-native-maps": "1.10.0", "react-native-safe-area-context": "4.8.2", diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index 1b1667f..a460aed 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -10,7 +10,6 @@ import { Alert, } from "react-native"; import MapView, { Details, PROVIDER_GOOGLE, Polygon } from "react-native-maps"; -import { FontAwesome5 } from "@expo/vector-icons"; import Login from "./Login"; import FirebaseAuthManager from "../services/Firebase/firebase-auth"; import Coordinates from "../models/Coordinates"; @@ -21,7 +20,6 @@ import { useContext } from "react"; import MenuSearch from "../services/MenuSearch"; import { ArrowUpRight, - Plus, MagnifyingGlass, Info, UserCirclePlus, diff --git a/screens/Upload.tsx b/screens/Upload.tsx index 981ed39..f03fb37 100644 --- a/screens/Upload.tsx +++ b/screens/Upload.tsx @@ -1,154 +1,333 @@ -import React, { useState, useRef, useEffect } from "react"; +import React, { useState, useRef, useEffect, useContext } from "react"; import { Text, View, - TextInput, - ScrollView, TouchableOpacity, ActivityIndicator, Image, } from "react-native"; -import { Camera, CameraType } from "expo-camera"; -import BackgroundImage from "../components/BackgroundImage"; -import { X } from "phosphor-react-native"; +import { Camera, CameraType, FlashMode } from "expo-camera"; +import { + X, + Camera as CameraIcon, + Lightning, + LightningA, + LightningSlash, + ArrowFatRight, + ArrowClockwise, + CaretDown, + CaretUp, + Check, +} from "phosphor-react-native"; import { useNavigation } from "@react-navigation/native"; import { StackNavigationProp } from "@react-navigation/stack"; import { StackParamList } from "../navigation/HomeNavigation"; +import FirebaseUserImageService from "../services/Firebase/firebase-user-image-submittion"; +import DropDownPicker from "react-native-dropdown-picker"; +import { FoodVendor } from "../models/FoodVendor"; +import { BuildingContext } from "../contexts/BuildingContext"; +import { Building } from "../models/Building"; type HomeMapNavigationProp = StackNavigationProp; -const Upload: React.FC = () => { - const [vendor, setVendor] = useState(""); - const [vendorFocused, setVendorFocused] = useState(false); +interface UploadProps { + vendor?: FoodVendor; +} + +type DropDownDataType = { + label: string; + value: string; +}; + +const Upload: React.FC = ({ vendor }) => { const [photo, setPhoto] = useState(null); const [loading, setLoading] = useState(false); const cameraRef = useRef(null); - const [cameraOpen, setCameraOpen] = useState(false); const [permission, requestPermission] = Camera.useCameraPermissions(); + const [flashMode, setFlashMode] = useState(FlashMode.off); + const [modalVisible, setModalVisible] = useState(false); + const [pickerOpen, setPickerOpen] = useState(false); + const [vendors, setVendors] = useState([]); + const [selectedVendor, setSelectedVendor] = useState(""); const navigation = useNavigation(); + const firebaseService = new FirebaseUserImageService(); + const [buildings, setBuildings] = useState( + useContext(BuildingContext) + ); useEffect(() => { - console.log(photo); - }, [photo]); + const newVendors = buildings.reduce((acc, building) => { + const buildingVendors = building.vendors.map((vendor) => ({ + label: vendor.name, + value: vendor.name, + })); + return [...acc, ...buildingVendors]; + }, [] as DropDownDataType[]); - useEffect(() => { - if (cameraOpen) setCameraOpen(false); - }, [photo]); + const sortedVendors = newVendors.sort((a, b) => { + const nameA = a.label.replace(/^The\s/, "").toUpperCase(); + const nameB = b.label.replace(/^The\s/, "").toUpperCase(); + return nameA < nameB ? -1 : nameA > nameB ? 1 : 0; + }); + + setVendors(sortedVendors); + }, [buildings]); async function takePhoto() { if (cameraRef.current) { - const options = { quality: 0.1, base64: true }; + const options = { quality: 0.5, base64: true, exif: false }; const data = await cameraRef.current.takePictureAsync(options); setPhoto(data.uri); } } const handleTakePhoto = async () => { - setLoading(true); await takePhoto(); - setLoading(false); }; - if (cameraOpen && permission && permission.granted) { - return ( - - - - Take Photo - - - - ); - } + const handleSubmit = async () => { + if (photo && selectedVendor) { + setLoading(true); + try { + await firebaseService.uploadImageAsync(selectedVendor, photo); + setPhoto(null); + setLoading(false); + } catch (error) { + console.error(error); + setLoading(false); + } finally { + navigation.navigate("HomeMap"); + } + } + }; + + const toggleFlashMode = () => { + if (flashMode === FlashMode.off) { + setFlashMode(FlashMode.on); + } else if (flashMode === FlashMode.on) { + setFlashMode(FlashMode.auto); + } else { + setFlashMode(FlashMode.off); + } + }; return ( - - { - navigation.goBack(); - }} - > - - - - - - - - setVendor(text)} - className={`w-5/6 h-12 border-2 bg-white rounded-lg px-4 ${ - vendorFocused && vendor !== "" - ? "border-blue" - : "border-neutral-400" - }`} - style={{ - fontSize: 16, - color: "#154058", - fontWeight: "bold", - }} - onBlur={() => { - setVendorFocused(false); - }} - onFocus={() => { - setVendorFocused(true); - }} - /> + + {!photo ? ( + <> + {cameraRef && ( + + )} + + { + navigation.goBack(); + }} + > + + + + + + ( + + )} + ArrowUpIconComponent={() => ( + + )} + TickIconComponent={() => ( + + )} + /> + + + + {flashMode === FlashMode.off ? ( + + ) : flashMode === FlashMode.auto ? ( + + ) : ( + + )} + + + { - requestPermission(); - setCameraOpen(true); - }} - disabled={!!photo} + className="absolute bottom-10 w-24 h-24 rounded-full justify-center items-center mb-4 bg-white shadow-lg" + onPress={handleTakePhoto} > - Take Photo + - { - setCameraOpen(true); - setPhoto(null); - }} - className="w-full rounded-full justify-center items-center mb-4" - style={{ - height: 300, - }} + + ) : ( + + - {photo && ( - + ( + + )} + ArrowUpIconComponent={() => ( + + )} + TickIconComponent={() => ( + + )} /> - )} - + + + + setPhoto(null)} + > + + + { + if (selectedVendor !== "") { + setModalVisible(true); + } else { + setPickerOpen(true); + } + }} + > + + + + + {modalVisible && ( + + {!loading ? ( + <> + + Are you sure you want to submit? + + + { + setModalVisible(false); + setPhoto(null); + }} + > + + Retake + + + + + Submit + + + + + ) : ( + + + + )} + + )} - - + )} + ); }; diff --git a/yarn.lock b/yarn.lock index 740fdfc..79d5204 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7472,6 +7472,11 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-native-dropdown-picker@^5.4.6: + version "5.4.6" + resolved "https://registry.yarnpkg.com/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz#3736fc468de4a295e4df8d1f65ed2eadaf9b445f" + integrity sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA== + react-native-gesture-handler@~2.14.0: version "2.14.1" resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz#930640231024b7921435ab476aa501dd4a6b2e01" From 282921b2191226813142f72549239049a6638564 Mon Sep 17 00:00:00 2001 From: lbare Date: Thu, 4 Apr 2024 17:56:06 -0700 Subject: [PATCH 11/16] Navigate to homescreen if camera permission is denied --- screens/Upload.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/screens/Upload.tsx b/screens/Upload.tsx index f03fb37..6b0b4ff 100644 --- a/screens/Upload.tsx +++ b/screens/Upload.tsx @@ -56,6 +56,14 @@ const Upload: React.FC = ({ vendor }) => { useContext(BuildingContext) ); + useEffect(() => { + if (!permission?.granted) { + setTimeout(() => { + navigation.navigate("HomeMap"); + }, 1000); + } + }, [permission]); + useEffect(() => { const newVendors = buildings.reduce((acc, building) => { const buildingVendors = building.vendors.map((vendor) => ({ From 0560b676222fcc42bba79288283ebe925cc06bee Mon Sep 17 00:00:00 2001 From: lbare Date: Thu, 4 Apr 2024 18:20:54 -0700 Subject: [PATCH 12/16] enable navigation to camera from vendor modal --- components/Modal.tsx | 21 +++++++++++++++------ navigation/HomeNavigation.tsx | 4 +++- screens/Upload.tsx | 28 +++++++++++++++++----------- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/components/Modal.tsx b/components/Modal.tsx index e8fb037..e90e77a 100644 --- a/components/Modal.tsx +++ b/components/Modal.tsx @@ -19,6 +19,8 @@ import { CaretRight, MagnifyingGlass, Heart, + Camera, + X, } from "phosphor-react-native"; import { Building } from "../models/Building"; import { @@ -564,12 +566,19 @@ const CustomModal: React.FC = ({ hideModal(true); }} > - + + + + + { + setModalVisible(false); + navigation.navigate("Upload", { vendor: vendor.name }); + }} + > + diff --git a/navigation/HomeNavigation.tsx b/navigation/HomeNavigation.tsx index b867d98..319c1eb 100644 --- a/navigation/HomeNavigation.tsx +++ b/navigation/HomeNavigation.tsx @@ -7,7 +7,9 @@ import Upload from "../screens/Upload"; export type StackParamList = { HomeMap: undefined; Login: undefined; - Upload: undefined; + Upload: { + vendor: string; + }; }; const Stack = createStackNavigator(); diff --git a/screens/Upload.tsx b/screens/Upload.tsx index 6b0b4ff..1409625 100644 --- a/screens/Upload.tsx +++ b/screens/Upload.tsx @@ -19,7 +19,7 @@ import { CaretUp, Check, } from "phosphor-react-native"; -import { useNavigation } from "@react-navigation/native"; +import { useNavigation, RouteProp } from "@react-navigation/native"; import { StackNavigationProp } from "@react-navigation/stack"; import { StackParamList } from "../navigation/HomeNavigation"; import FirebaseUserImageService from "../services/Firebase/firebase-user-image-submittion"; @@ -29,9 +29,12 @@ import { BuildingContext } from "../contexts/BuildingContext"; import { Building } from "../models/Building"; type HomeMapNavigationProp = StackNavigationProp; +type UploadScreenNavigationProp = StackNavigationProp; +type UploadScreenRouteProp = RouteProp; interface UploadProps { - vendor?: FoodVendor; + navigation: UploadScreenNavigationProp; + route: UploadScreenRouteProp; } type DropDownDataType = { @@ -39,7 +42,7 @@ type DropDownDataType = { value: string; }; -const Upload: React.FC = ({ vendor }) => { +const Upload: React.FC = ({ navigation, route }) => { const [photo, setPhoto] = useState(null); const [loading, setLoading] = useState(false); const cameraRef = useRef(null); @@ -48,21 +51,24 @@ const Upload: React.FC = ({ vendor }) => { const [modalVisible, setModalVisible] = useState(false); const [pickerOpen, setPickerOpen] = useState(false); const [vendors, setVendors] = useState([]); - const [selectedVendor, setSelectedVendor] = useState(""); + const [selectedVendor, setSelectedVendor] = useState( + route.params?.vendor + ); - const navigation = useNavigation(); const firebaseService = new FirebaseUserImageService(); const [buildings, setBuildings] = useState( useContext(BuildingContext) ); useEffect(() => { - if (!permission?.granted) { - setTimeout(() => { - navigation.navigate("HomeMap"); - }, 1000); - } - }, [permission]); + const handlePermission = async () => { + if (!permission?.granted) { + await requestPermission(); + } + }; + + handlePermission(); + }, []); useEffect(() => { const newVendors = buildings.reduce((acc, building) => { From 851ac90d62f677beac2b17e43714b13d0017f099 Mon Sep 17 00:00:00 2001 From: lbare Date: Thu, 4 Apr 2024 18:21:23 -0700 Subject: [PATCH 13/16] Try to make markers easier to press --- screens/HomeMap.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index a460aed..66c5cb9 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -347,7 +347,7 @@ const HomeMap: React.FC = () => { name={vendor.name} coordinate={vendor.location} isSelected={vendor.name === selectedVendor?.name} - zIndex={1000} + zIndex={10} image={require("../assets/marker.png")} onPressCustom={() => { console.log("Marker Pressed: ", index); @@ -406,7 +406,9 @@ const HomeMap: React.FC = () => { actions={[ { icon: , - action: () => navigation.navigate("Upload"), + action: () => { + navigation.navigate("Upload", { vendor: "" }); + }, }, { icon: userEmail ? ( From 1d52019f44e69f4653f4417d18ba690793ab866b Mon Sep 17 00:00:00 2001 From: Levi <47727379+lbare@users.noreply.github.com> Date: Thu, 4 Apr 2024 19:04:10 -0700 Subject: [PATCH 14/16] Adjust zIndex --- components/CustomMarker.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/CustomMarker.tsx b/components/CustomMarker.tsx index 5de0e25..499ccde 100644 --- a/components/CustomMarker.tsx +++ b/components/CustomMarker.tsx @@ -1,6 +1,5 @@ import { View, Image, Text, ImageSourcePropType } from "react-native"; import Coordinates from "../models/Coordinates"; -import { FoodVendor } from "../models/FoodVendor"; import { Callout, Marker } from "react-native-maps"; import React from "react"; interface CustomMarkerProps { @@ -26,11 +25,12 @@ const CustomMarker: React.FC = ({ onPressCustom()} flat={false} stopPropagation={true} key={keyp} - zIndex={isSelected ? 1 : 0} + onPress={() => onPressCustom()} + zIndex={isSelected ? 200 : 100} + tappable={true} > Date: Thu, 4 Apr 2024 19:05:53 -0700 Subject: [PATCH 15/16] Remove indoor level picker --- screens/HomeMap.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index 66c5cb9..f828e6e 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -10,6 +10,7 @@ import { Alert, } from "react-native"; import MapView, { Details, PROVIDER_GOOGLE, Polygon } from "react-native-maps"; +import { FontAwesome5 } from "@expo/vector-icons"; import Login from "./Login"; import FirebaseAuthManager from "../services/Firebase/firebase-auth"; import Coordinates from "../models/Coordinates"; @@ -20,6 +21,7 @@ import { useContext } from "react"; import MenuSearch from "../services/MenuSearch"; import { ArrowUpRight, + Plus, MagnifyingGlass, Info, UserCirclePlus, @@ -336,6 +338,7 @@ const HomeMap: React.FC = () => { onRegionChange={onZoomChange} onRegionChangeComplete={onZoomChangeComplete} customMapStyle={mapStyles} + showsIndoorLevelPicker={false} > {zoomLevel > 14 && buildings && @@ -347,7 +350,7 @@ const HomeMap: React.FC = () => { name={vendor.name} coordinate={vendor.location} isSelected={vendor.name === selectedVendor?.name} - zIndex={10} + zIndex={1000} image={require("../assets/marker.png")} onPressCustom={() => { console.log("Marker Pressed: ", index); @@ -385,7 +388,7 @@ const HomeMap: React.FC = () => { zoomToBuilding(building.name)} coordinates={building.coordinates.map((coord) => ({ latitude: coord.latitude, From c835f329e41e891da997b5e5d1a8e29fc0b3f773 Mon Sep 17 00:00:00 2001 From: rahulniraula2 Date: Thu, 4 Apr 2024 19:17:45 -0700 Subject: [PATCH 16/16] if logged in prompt user pop out for signout option --- screens/HomeMap.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/screens/HomeMap.tsx b/screens/HomeMap.tsx index f828e6e..7ec1225 100644 --- a/screens/HomeMap.tsx +++ b/screens/HomeMap.tsx @@ -419,7 +419,9 @@ const HomeMap: React.FC = () => { ) : ( ), - action: () => navigation.navigate("Login"), + action: userEmail + ? () => setLoginPopupVisible(true) + : () => navigation.navigate("Login"), }, { icon: ,