From e97dbb11b30d0fe51b2ca1660e9f0d27a99a73e3 Mon Sep 17 00:00:00 2001
From: omagdy7 <omar.professional8777@gmail.com>
Date: Fri, 22 Dec 2023 18:59:16 +0200
Subject: Added most of the logic on the driver side

---
 driver/src/components/RideDialog.tsx | 110 +++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100644 driver/src/components/RideDialog.tsx

(limited to 'driver/src/components/RideDialog.tsx')

diff --git a/driver/src/components/RideDialog.tsx b/driver/src/components/RideDialog.tsx
new file mode 100644
index 0000000..da7767b
--- /dev/null
+++ b/driver/src/components/RideDialog.tsx
@@ -0,0 +1,110 @@
+import { addDoc, collection, doc, getDoc } from "firebase/firestore"
+import { db } from "../firebase/firebase_config"
+import { auth } from "../firebase/firebase_config"
+import { Button } from "@/components/ui/button"
+import {
+  Dialog,
+  DialogContent,
+  DialogDescription,
+  DialogFooter,
+  DialogHeader,
+  DialogTitle,
+  DialogTrigger,
+} from "@/components/ui/dialog"
+import { Input } from "@/components/ui/input"
+import { Label } from "@/components/ui/label"
+import { useState } from "react"
+
+interface RideOrder {
+  driverName: string
+  carBrand: string
+  carModel: string
+  carColor: string
+  plateNumber: string
+  status: string
+  orderTime: Date
+  pickUpLocation: string
+  dropOffLocation: string
+}
+
+
+function RideDialog({ name, brand, model, color, plateNumber }: any) {
+
+  const [status, _setStatus] = useState<string>('Pending')
+  const [orderTime, _setOrderTime] = useState<Date>(new Date())
+  const [pickUpLocation, setPickUpLocation] = useState<string>()
+  const [dropOffLocation, setDropOffLocation] = useState<string>()
+
+
+  const addRideOrderToFirestore = async () => {
+    try {
+      // Get a reference to the 'rideOrders' collection
+      const rideOrdersCollection = collection(db, 'Rides');
+
+      // Add a new document to the 'rideOrders' collection with the data from the RideOrder object
+      const newRideOrderRef = await addDoc(rideOrdersCollection, {
+        driverName: name,
+        carModel: model,
+        carBrand: brand,
+        carColor: color,
+        plateNumber: plateNumber,
+        status: status,
+        orderTime: orderTime,
+        fromLocation: pickUpLocation,
+        toLocation: dropOffLocation,
+      });
+
+      console.log('Ride order added with ID:', newRideOrderRef.id);
+      // 'newRideOrderRef.id' will give you the document ID of the added ride order
+    } catch (error) {
+      console.error('Error adding ride order:', error);
+    }
+  };
+
+  return (
+    <div>
+      <Dialog>
+        <DialogTrigger asChild>
+          <Button className="bg-green-600 text-black text-xl">Add Ride</Button>
+        </DialogTrigger>
+        <DialogContent className="sm:max-w-[425px]">
+          <DialogHeader>
+            <DialogTitle>Ride details</DialogTitle>
+            <DialogDescription>
+              Please enter details about your ride and click submit for the ride to appear to other students!
+            </DialogDescription>
+          </DialogHeader>
+          <div className="grid gap-4 py-4">
+            <div className="grid grid-cols-4 items-center gap-4">
+              <Label htmlFor="To Location" className="text-right">
+                Pickup
+              </Label>
+              <Input
+                id="To Location"
+                defaultValue=""
+                className="col-span-3"
+                onChange={(e) => setDropOffLocation(e.target.value)}
+              />
+            </div>
+            <div className="grid grid-cols-4 items-center gap-4">
+              <Label htmlFor="From location" className="text-right">
+                Drop off
+              </Label>
+              <Input
+                id="From location"
+                defaultValue=""
+                className="col-span-3"
+                onChange={(e) => setPickUpLocation(e.target.value)}
+              />
+            </div>
+          </div>
+          <DialogFooter>
+            <Button className="bg-green-500 text-black" type="submit" onClick={addRideOrderToFirestore}>Submit</Button>
+          </DialogFooter>
+        </DialogContent>
+      </Dialog>
+    </div>
+  )
+}
+
+export default RideDialog;
-- 
cgit v1.2.3

