refactor: router.replace to router.push and fix typos

This commit is contained in:
Sanidhya Kumar Verma
2024-09-04 10:19:02 +00:00
committed by GitHub
parent eb7e052d75
commit 19f0e71609
9 changed files with 97 additions and 18 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ const SignIn = () => {
if (signInAttempt.status === "complete") { if (signInAttempt.status === "complete") {
await setActive({ session: signInAttempt.createdSessionId }); await setActive({ session: signInAttempt.createdSessionId });
router.replace("/"); router.push("/");
} else { } else {
Alert.alert("Error", "Invalid email or password."); Alert.alert("Error", "Invalid email or password.");
setForm((prevForm) => ({ setForm((prevForm) => ({
+1 -1
View File
@@ -235,7 +235,7 @@ const SignUp = () => {
<CustomButton <CustomButton
title="Browse Home" title="Browse Home"
onPress={() => router.replace("/(root)/(tabs)/home")} onPress={() => router.push("/(root)/(tabs)/home")}
className="mt-5" className="mt-5"
/> />
</View> </View>
+2 -2
View File
@@ -15,7 +15,7 @@ const Welcome = () => {
return ( return (
<SafeAreaView className="flex h-full items-center justify-between bg-white"> <SafeAreaView className="flex h-full items-center justify-between bg-white">
<TouchableOpacity <TouchableOpacity
onPress={() => router.replace("/(auth)/sign-up")} onPress={() => router.push("/(auth)/sign-up")}
className="w-full flex justify-end items-end p-5" className="w-full flex justify-end items-end p-5"
> >
<Text className="text-black text-base font-JakartaBold">Skip</Text> <Text className="text-black text-base font-JakartaBold">Skip</Text>
@@ -54,7 +54,7 @@ const Welcome = () => {
<CustomButton <CustomButton
onPress={() => onPress={() =>
isLastSlide isLastSlide
? router.replace("/(auth)/sign-up") ? router.push("/(auth)/sign-up")
: swiperRef.current?.scrollBy(1) : swiperRef.current?.scrollBy(1)
} }
title={isLastSlide ? "Get Started" : "Next"} title={isLastSlide ? "Get Started" : "Next"}
+1 -1
View File
@@ -24,7 +24,7 @@ const ConfirmRide = () => {
<View className="mx-5 mt-10"> <View className="mx-5 mt-10">
<CustomButton <CustomButton
title="Select Ride" title="Select Ride"
onPress={() => router.replace("/(root)/book-ride")} onPress={() => router.push("/(root)/book-ride")}
/> />
</View> </View>
)} )}
+1 -1
View File
@@ -42,7 +42,7 @@ const FindRide = () => {
<CustomButton <CustomButton
title="Find now" title="Find now"
onPress={() => router.replace("/(root)/confirm-ride")} onPress={() => router.push("/(root)/confirm-ride")}
className="mt-5" className="mt-5"
/> />
</RideLayout> </RideLayout>
+4 -2
View File
@@ -24,7 +24,9 @@ export const DriverCard = ({
<View className="flex-1 flex flex-col items-start justify-center mx-3"> <View className="flex-1 flex flex-col items-start justify-center mx-3">
<View className="flex flex-row items-center justify-start mb-1"> <View className="flex flex-row items-center justify-start mb-1">
<Text className="text-lg font-JakartaRegular">{item.title}</Text> <Text className="text-lg font-JakartaRegular">
{item.title ?? `${item.first_name} ${item.last_name}`}
</Text>
<View className="flex flex-row items-center space-x-1 ml-2"> <View className="flex flex-row items-center space-x-1 ml-2">
<Image source={icons.star} alt="Star" className="w-3.5 h-3.5" /> <Image source={icons.star} alt="Star" className="w-3.5 h-3.5" />
@@ -45,7 +47,7 @@ export const DriverCard = ({
</Text> </Text>
<Text className="text-sm font-JakartaRegular text-general-800"> <Text className="text-sm font-JakartaRegular text-general-800">
{formatTime(item.time!)} {formatTime(parseInt(`${item.time}`))}
</Text> </Text>
<Text className="text-sm font-JakartaRegular text-general-800 mx-1"> <Text className="text-sm font-JakartaRegular text-general-800 mx-1">
+1
View File
@@ -64,6 +64,7 @@ export const GoogleTextInput = ({
language: "en", language: "en",
}} }}
renderLeftButton={() => ( renderLeftButton={() => (
// TODO: replace later with View and remove onPress
<TouchableOpacity <TouchableOpacity
onPress={() => { onPress={() => {
handlePress({ handlePress({
+85 -10
View File
@@ -1,12 +1,20 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { ActivityIndicator, Text, View } from "react-native";
import MapView, { Marker, PROVIDER_DEFAULT } from "react-native-maps"; import MapView, { Marker, PROVIDER_DEFAULT } from "react-native-maps";
import MapViewDirections from "react-native-maps-directions";
import { calculateRegion, generateMarkersFromData } from "@/lib/map";
import { useDriverStore, useLocationStore } from "@/store";
import type { MarkerData } from "@/types/type";
import { icons } from "@/constants"; import { icons } from "@/constants";
import { useFetch } from "@/lib/fetch";
import {
calculateDriverTimes,
calculateRegion,
generateMarkersFromData,
} from "@/lib/map";
import { useDriverStore, useLocationStore } from "@/store";
import type { Driver, MarkerData } from "@/types/type";
const drivers = [ // TODO: Remove mocked drivers later
const mockedDrivers = [
{ {
id: 1, id: 1,
driver_id: 1, driver_id: 1,
@@ -20,7 +28,6 @@ const drivers = [
rating: 4.8, rating: 4.8,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
title: "",
price: "45", price: "45",
time: 5, time: 5,
}, },
@@ -37,7 +44,6 @@ const drivers = [
rating: 4.6, rating: 4.6,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
title: "",
price: "45", price: "45",
time: 5, time: 5,
}, },
@@ -54,7 +60,6 @@ const drivers = [
rating: 4.7, rating: 4.7,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
title: "",
price: "45", price: "45",
time: 5, time: 5,
}, },
@@ -71,13 +76,14 @@ const drivers = [
rating: 4.9, rating: 4.9,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
title: "",
price: "45", price: "45",
time: 5, time: 5,
}, },
]; ];
export const Map = () => { export const Map = () => {
const { data: drivers, loading, error } = useFetch<Driver[]>("/(api)/driver");
const { const {
userLatitude, userLatitude,
userLongitude, userLongitude,
@@ -96,8 +102,6 @@ export const Map = () => {
useEffect(() => { useEffect(() => {
if (Array.isArray(drivers)) { if (Array.isArray(drivers)) {
setDrivers(drivers);
if (!userLatitude || !userLongitude) return; if (!userLatitude || !userLongitude) return;
const newMarkers = generateMarkersFromData({ const newMarkers = generateMarkersFromData({
@@ -111,6 +115,49 @@ export const Map = () => {
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [drivers]); }, [drivers]);
useEffect(() => {
if (markers.length > 0 && destinationLatitude && destinationLatitude) {
// TODO: Uncomment this code block
/* calculateDriverTimes({
markers,
userLatitude,
userLongitude,
destinationLatitude,
destinationLongitude,
})
.then((drivers) => {
setDrivers(drivers as MarkerData[]);
}) */
// TODO: Remove this line
setDrivers(mockedDrivers);
}
}, [
markers,
destinationLatitude,
destinationLongitude,
userLatitude,
userLongitude,
setDrivers,
]);
if (loading || !userLatitude || !userLongitude) {
return (
<View className="flex justify-between items-center w-full">
<ActivityIndicator size="small" color="#000" />
</View>
);
}
if (error) {
return (
<View className="flex justify-between items-center w-full">
<Text>Error: {error}</Text>
</View>
);
}
return ( return (
<MapView <MapView
provider={PROVIDER_DEFAULT} provider={PROVIDER_DEFAULT}
@@ -135,6 +182,34 @@ export const Map = () => {
} }
/> />
))} ))}
{destinationLatitude && destinationLongitude && (
<>
<Marker
key="destination"
coordinate={{
latitude: destinationLatitude,
longitude: destinationLongitude,
}}
title="Destination"
image={icons.pin}
/>
<MapViewDirections
origin={{
latitude: userLatitude,
longitude: userLongitude,
}}
destination={{
latitude: destinationLatitude,
longitude: destinationLongitude,
}}
apikey={process.env.EXPO_PUBLIC_GOOGLE_API_KEY!}
strokeColor="#0286FF"
strokeWidth={3}
/>
</>
)}
</MapView> </MapView>
); );
}; };
+1
View File
@@ -106,6 +106,7 @@ export const calculateDriverTimes = async ({
`https://maps.googleapis.com/maps/api/directions/json?origin=${userLatitude},${userLongitude}&destination=${destinationLatitude},${destinationLongitude}&key=${directionsAPI}`, `https://maps.googleapis.com/maps/api/directions/json?origin=${userLatitude},${userLongitude}&destination=${destinationLatitude},${destinationLongitude}&key=${directionsAPI}`,
); );
const dataToDestination = await responseToDestination.json(); const dataToDestination = await responseToDestination.json();
const timeToDestination = const timeToDestination =
dataToDestination.routes[0].legs[0].duration.value; // Time in seconds dataToDestination.routes[0].legs[0].duration.value; // Time in seconds