summaryrefslogtreecommitdiff
path: root/driver/src/components/RideDialog.tsx
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2023-12-22 20:32:40 +0200
committeromagdy7 <omar.professional8777@gmail.com>2023-12-22 20:32:40 +0200
commit2548273d89e55efc24a2df101b621b06a6a83313 (patch)
treef53432affb67df53357fb0633e5073ebe642aef3 /driver/src/components/RideDialog.tsx
parente97dbb11b30d0fe51b2ca1660e9f0d27a99a73e3 (diff)
downloadcarpool-2548273d89e55efc24a2df101b621b06a6a83313.tar.xz
carpool-2548273d89e55efc24a2df101b621b06a6a83313.zip
Added rendering passenger requests
Diffstat (limited to 'driver/src/components/RideDialog.tsx')
-rw-r--r--driver/src/components/RideDialog.tsx48
1 files changed, 43 insertions, 5 deletions
diff --git a/driver/src/components/RideDialog.tsx b/driver/src/components/RideDialog.tsx
index da7767b..ff3aa98 100644
--- a/driver/src/components/RideDialog.tsx
+++ b/driver/src/components/RideDialog.tsx
@@ -1,6 +1,5 @@
-import { addDoc, collection, doc, getDoc } from "firebase/firestore"
+import { addDoc, collection } from "firebase/firestore"
import { db } from "../firebase/firebase_config"
-import { auth } from "../firebase/firebase_config"
import { Button } from "@/components/ui/button"
import {
Dialog,
@@ -14,6 +13,8 @@ import {
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import { useState } from "react"
+import { useToast } from "./ui/use-toast"
+import { ToastAction } from "./ui/toast"
interface RideOrder {
driverName: string
@@ -28,15 +29,21 @@ interface RideOrder {
}
-function RideDialog({ name, brand, model, color, plateNumber }: any) {
+function RideDialog({ name, brand, model, color, plateNumber, phoneNumber }: any) {
+ const { toast } = useToast()
- const [status, _setStatus] = useState<string>('Pending')
+ const [status, _setStatus] = useState<string>('Unreserved')
const [orderTime, _setOrderTime] = useState<Date>(new Date())
const [pickUpLocation, setPickUpLocation] = useState<string>()
const [dropOffLocation, setDropOffLocation] = useState<string>()
+ const [isRideAdded, setIsRideAdded] = useState(true)
+ const [cost, setCost] = useState('')
const addRideOrderToFirestore = async () => {
+ if (isRideAdded) {
+ return;
+ }
try {
// Get a reference to the 'rideOrders' collection
const rideOrdersCollection = collection(db, 'Rides');
@@ -44,16 +51,19 @@ function RideDialog({ name, brand, model, color, plateNumber }: any) {
// Add a new document to the 'rideOrders' collection with the data from the RideOrder object
const newRideOrderRef = await addDoc(rideOrdersCollection, {
driverName: name,
+ phoneNumber: phoneNumber,
carModel: model,
carBrand: brand,
carColor: color,
plateNumber: plateNumber,
+ cost: parseInt(cost),
status: status,
orderTime: orderTime,
fromLocation: pickUpLocation,
toLocation: dropOffLocation,
});
+ setIsRideAdded(true)
console.log('Ride order added with ID:', newRideOrderRef.id);
// 'newRideOrderRef.id' will give you the document ID of the added ride order
} catch (error) {
@@ -61,6 +71,10 @@ function RideDialog({ name, brand, model, color, plateNumber }: any) {
}
};
+ const cancelRide = () => {
+ setIsRideAdded(false)
+ }
+
return (
<div>
<Dialog>
@@ -97,9 +111,33 @@ function RideDialog({ name, brand, model, color, plateNumber }: any) {
onChange={(e) => setPickUpLocation(e.target.value)}
/>
</div>
+ <div className="grid grid-cols-4 items-center gap-4">
+ <Label htmlFor="From location" className="text-right">
+ Cost
+ </Label>
+ <Input
+ id="From location"
+ defaultValue=""
+ className="col-span-3"
+ onChange={(e) => setCost(e.target.value)}
+ />
+ </div>
</div>
<DialogFooter>
- <Button className="bg-green-500 text-black" type="submit" onClick={addRideOrderToFirestore}>Submit</Button>
+ <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
+ toast({
+ description: "Ride was added successfully",
+ })
+ }
+ }}>Submit</Button>
</DialogFooter>
</DialogContent>
</Dialog>