import RideDialog from "@/components/RideDialog"
import { Avatar } from "@/components/ui/avatar"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
import { CardTitle, CardHeader, CardContent, Card } from "@/components/ui/card"
import { auth, db } from "@/firebase/firebase_config"
import { fetchUserDetails } from "@/utils/fetchUserDetails"
import { Toaster } from "@/components/ui/toaster"
import { useEffect, useState } from "react"
import { Navigate } from "react-router-dom"
import { fetchRideRequests } from "@/utils/fetchRideRequests"
interface IDriver {
uid: string,
name: string,
phoneNumber: string,
plateNumber: string,
carBrand: string,
carModel: string,
carColor: string,
}
interface IPassengerRequest {
passengerName: string,
phoneNumber: string,
status: string,
pickUp: string,
dropOff: string,
}
interface ITrip {
pickUp: string,
dropOff: string,
}
function PassengerRequestCard({ passengerName, pickUp, dropOff, status, phoneNumber }: IPassengerRequest) {
return (
Passenger: {passengerName}
Phone number: {phoneNumber}
Status: {status}
Pickup: {pickUp}
Dropoff: {dropOff}
)
}
export default function Home() {
const [driverData, setDriverData] = useState()
const [rideRequests, setRideRequests] = useState([])
const [currentTrip, setCurrentTrip] = useState()
useEffect(() => {
const user = auth.currentUser;
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()
}, [auth.currentUser, db]);
return (
!auth.currentUser ? :
(
Driver Dashboard
{driverData?.name}
Active Driver
Vehicle Details
-
Brand: {driverData?.carBrand}
-
Model: {driverData?.carModel}
-
License Plate: {driverData?.plateNumber}
Current Trip
Pickup: {currentTrip?.pickUp}
Dropoff: {currentTrip?.dropOff}
Passenger Requests
{rideRequests?.map((rideReq) => {
return (
< PassengerRequestCard
passengerName={rideReq?.name}
pickUp={rideReq?.pickUp}
dropOff={rideReq?.dropOff}
phoneNumber={rideReq?.phoneNumber}
status={rideReq?.status}
/>
)
})}
)
)
}