From e97dbb11b30d0fe51b2ca1660e9f0d27a99a73e3 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Fri, 22 Dec 2023 18:59:16 +0200 Subject: Added most of the logic on the driver side --- driver/src/pages/SignUp.tsx | 184 +++++++++++++++++++++++++++++++++----------- 1 file changed, 138 insertions(+), 46 deletions(-) (limited to 'driver/src/pages/SignUp.tsx') diff --git a/driver/src/pages/SignUp.tsx b/driver/src/pages/SignUp.tsx index 3ee09dc..b73d810 100644 --- a/driver/src/pages/SignUp.tsx +++ b/driver/src/pages/SignUp.tsx @@ -1,11 +1,24 @@ +import { Label } from "@/components/ui/label" +import { Input } from "@/components/ui/input" +import { Button } from "@/components/ui/button" import { useState, useEffect } from 'react'; -import { auth } from '../firebase/firebase_config'; +import { auth, db } from '../firebase/firebase_config'; import { createUserWithEmailAndPassword } from 'firebase/auth'; - +import { Navigate, redirect } from "react-router-dom"; +import { addDoc, collection } from "firebase/firestore"; const SignUp = () => { - const [email, setEmail] = useState(''); - const [password, setPassword] = useState(''); + + const [isSignedUp, setIsSignedUp] = useState(false) + + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [name, setName] = useState('') + const [phoneNumber, setPhoneNumber] = useState('') + const [carBrand, setCarBrand] = useState('') + const [carModel, setCarModel] = useState('') + const [carColor, setCarColor] = useState('') + const [plateNumber, setPlateNumber] = useState('') useEffect(() => { const unsubscribe = auth.onAuthStateChanged((user) => { @@ -28,7 +41,20 @@ const SignUp = () => { try { // The onAuthStateChanged listener will handle the signed-in user state. const userCredential = await createUserWithEmailAndPassword(auth, email, password); + const usersCollection = collection(db, 'users'); + const userUid = userCredential.user.uid; // Get the user's UID + console.log(userUid, name, phoneNumber, carBrand, carModel, carColor, plateNumber) + addDoc(usersCollection, { + uid: userUid, + name: name, + phoneNumber: phoneNumber, + carBrand: carBrand, + carModel: carModel, + carColor: carColor, + plateNumber: plateNumber, + }) console.log('User signed up:', userCredential.user); + setIsSignedUp(true) } catch (error) { // TODO: Handle error messages or display them to the user. console.error('Error signing up:', error); @@ -36,48 +62,114 @@ const SignUp = () => { }; return ( -
-
-

Sign Up

-
-
- - setEmail(e.target.value)} - /> -
-
- - setPassword(e.target.value)} - /> -
-
- -
-
-
-
+ isSignedUp ? + () : + (
+
+

Sign Up

+
+
+ + setEmail(e.target.value)} + /> +
+
+ + setPassword(e.target.value)} + /> +
+
+ + setName(e.target.value)} + /> +
+
+ + setPhoneNumber(e.target.value)} + /> +
+
+ + setCarBrand(e.target.value)} + /> +
+
+ + setCarModel(e.target.value)} + /> +
+
+ + setCarColor(e.target.value)} + /> +
+
+ + setPlateNumber(e.target.value)} + /> +
+
+ +
+
+
+
) ); }; -- cgit v1.2.3