summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2023-12-22 23:10:26 +0200
committeromagdy7 <omar.professional8777@gmail.com>2023-12-22 23:10:26 +0200
commit776f680ca58d066e24284b009eb9a28ced03a6ea (patch)
treee3a79384a633187f23499c52a38e093a3b7ee47e /driver
parentd34ed45d110be3df1436519594cf6cfd55a55ead (diff)
downloadcarpool-776f680ca58d066e24284b009eb9a28ced03a6ea.tar.xz
carpool-776f680ca58d066e24284b009eb9a28ced03a6ea.zip
Made the Driver dashboard respond to requests at realtime
Diffstat (limited to 'driver')
-rw-r--r--driver/src/components/RideDialog.tsx5
-rw-r--r--driver/src/pages/Home.tsx13
-rw-r--r--driver/src/pages/LandingPage.tsx3
-rw-r--r--driver/src/utils/fetchRideRequests.ts2
-rw-r--r--driver/src/utils/fetchUserDetails.ts1
5 files changed, 12 insertions, 12 deletions
diff --git a/driver/src/components/RideDialog.tsx b/driver/src/components/RideDialog.tsx
index e57fc89..f543412 100644
--- a/driver/src/components/RideDialog.tsx
+++ b/driver/src/components/RideDialog.tsx
@@ -23,7 +23,7 @@ function RideDialog({ name, brand, model, color, plateNumber, phoneNumber }: any
const [orderTime, _setOrderTime] = useState<Date>(new Date())
const [pickUpLocation, setPickUpLocation] = useState<string>()
const [dropOffLocation, setDropOffLocation] = useState<string>()
- const [isRideAdded, setIsRideAdded] = useState(true)
+ const [isRideAdded, setIsRideAdded] = useState(false)
const [cost, setCost] = useState('')
@@ -113,13 +113,12 @@ function RideDialog({ name, brand, model, color, plateNumber, phoneNumber }: any
<DialogFooter>
<Button className="bg-green-500 text-black" type="submit" onClick={() => {
if (isRideAdded) {
- console.log("Hello")
toast({
title: "Cannot add another ride",
description: "You already have a ride in place",
})
} else {
- addRideOrderToFirestore
+ addRideOrderToFirestore()
toast({
description: "Ride was added successfully",
})
diff --git a/driver/src/pages/Home.tsx b/driver/src/pages/Home.tsx
index 37727e7..bd003b6 100644
--- a/driver/src/pages/Home.tsx
+++ b/driver/src/pages/Home.tsx
@@ -9,6 +9,7 @@ import { Toaster } from "@/components/ui/toaster"
import { useEffect, useState } from "react"
import { Navigate } from "react-router-dom"
import { fetchRideRequests } from "@/utils/fetchRideRequests"
+import { collection, onSnapshot } from "firebase/firestore"
interface IDriver {
uid: string,
@@ -93,12 +94,19 @@ export default function Home() {
async function fetchData() {
const data: IDriver | null | undefined = await fetchUserDetails(user?.uid);
const rideReqs = await fetchRideRequests()
- console.log("RideRequests:", rideReqs)
setDriverData(data)
setRideRequests(rideReqs)
- console.log("Length: ", rideRequests?.length)
}
fetchData()
+ // Firestore real-time listener for changes
+ const unsubscribe = onSnapshot(collection(db, "RideRequest"), () => {
+ // Call fetchData when changes occur in the specified collection
+ fetchData();
+ });
+
+ return () => {
+ unsubscribe()
+ }
}, [auth.currentUser, db]);
return (
@@ -117,7 +125,6 @@ export default function Home() {
<div className="flex gap-4 items-center">
<Button onClick={
() => {
- console.log("Loging out")
setIsLoggedIn(false)
auth.signOut()
}
diff --git a/driver/src/pages/LandingPage.tsx b/driver/src/pages/LandingPage.tsx
index ec8b364..110fe14 100644
--- a/driver/src/pages/LandingPage.tsx
+++ b/driver/src/pages/LandingPage.tsx
@@ -4,9 +4,6 @@ import { Navigate, redirect } from "react-router-dom";
import { Badge } from "@/components/ui/badge"
export default function LandingPage() {
- if (true) {
- return <Navigate to="/signup" />
- }
return (
<main key="1" className="bg-black min-h-screen px-4 py-8 md:px-16 lg:px-24">
<header className="flex justify-between items-center mb-8">
diff --git a/driver/src/utils/fetchRideRequests.ts b/driver/src/utils/fetchRideRequests.ts
index 53e6006..b9c32e0 100644
--- a/driver/src/utils/fetchRideRequests.ts
+++ b/driver/src/utils/fetchRideRequests.ts
@@ -5,7 +5,6 @@ import { fetchUserDetails } from "./fetchUserDetails";
export const fetchRideRequests = async () => {
const user = auth.currentUser;
- console.log(user)
try {
let data: any[] = []
if (user) {
@@ -14,7 +13,6 @@ export const fetchRideRequests = async () => {
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc: DocumentData) => {
data.push(doc.data())
- console.log(doc.id, " => ", doc.data());
});
const rideReqs = data?.map(async (rideReq) => {
const passengerData: any = await fetchUserDetails(rideReq.passengerID);
diff --git a/driver/src/utils/fetchUserDetails.ts b/driver/src/utils/fetchUserDetails.ts
index a2d5cb6..4577146 100644
--- a/driver/src/utils/fetchUserDetails.ts
+++ b/driver/src/utils/fetchUserDetails.ts
@@ -12,7 +12,6 @@ export const fetchUserDetails = async (uid) => {
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc: DocumentData) => {
data = doc.data()
- console.log(doc.id, " => ", doc.data());
});
return data;
} else {