From 7b379914e44583b9b097ed286b669ad244b176a1 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Thu, 21 Dec 2023 01:26:51 +0200 Subject: Added Firestore support for both the driver app and the rider mobile app --- driver/src/App.tsx | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 169 insertions(+), 4 deletions(-) (limited to 'driver/src/App.tsx') diff --git a/driver/src/App.tsx b/driver/src/App.tsx index 4970091..233b96d 100644 --- a/driver/src/App.tsx +++ b/driver/src/App.tsx @@ -1,11 +1,176 @@ -import Login from "./pages/Login" -import SignUp from "./pages/SignUp" +import { addDoc, collection } from "firebase/firestore" +import { db } 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 + carModel: string + carColor: string + plateNumber: string + status: string + orderTime: Date + fromLocation: string + toLocation: string +} + function App() { + + const [driverName, setDriverName] = useState() + const [carModel, setCarModel] = useState() + const [carColor, setCarColor] = useState() + const [plateNumber, setPlateNumber] = useState() + const [status, _setStatus] = useState('Pending') + const [orderTime, _setOrderTime] = useState(new Date()) + const [fromLocation, setFromLocation] = useState() + const [toLocation, setToLocation] = useState() + + const [_rideOrder, _setRideOrder] = useState({ + driverName: "Mahmoud", + carModel: "Toyota Corolla", + carColor: "Red", + plateNumber: "ABC-123", + status: "Pending", + orderTime: new Date("2023-12-20"), + fromLocation: "Abdu-Basha", + toLocation: "5th Settlement", + }) + + 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: driverName, + carModel: carModel, + carColor: carColor, + plateNumber: plateNumber, + status: status, + orderTime: orderTime, + fromLocation: fromLocation, + toLocation: toLocation, + }); + + 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 ( - // - +
+ + + + + + + Ride details + + Please enter details about your ride and click submit for the ride to appear to other students! + + +
+
+ + setDriverName(e.target.value)} + /> +
+
+ + setCarModel(e.target.value)} + /> +
+
+ + setToLocation(e.target.value)} + /> +
+
+ + setFromLocation(e.target.value)} + /> +
+
+ + setCarColor(e.target.value)} + /> +
+
+ + setPlateNumber(e.target.value)} + /> +
+
+ + + +
+
+
) } +// interface RideOrder { +// driverName: string +// carModel: string +// carColor: string +// plateNumber: string +// status: string +// orderTime: Date +// fromLocation: string +// toLocation: string +// } + export default App -- cgit v1.2.3