Add activity code S56
parent
d4d2ded45c
commit
d69f0aeaba
@ -0,0 +1,97 @@
|
||||
import React, { useState } from "react";
|
||||
import { Form, Button } from "react-bootstrap";
|
||||
|
||||
const Login = () => {
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [isValid, setIsValid] = useState(false);
|
||||
|
||||
const checkFormValidity = () => {
|
||||
// Simple validation for demonstration purposes
|
||||
const isValid = email !== "" && password !== "";
|
||||
setIsValid(isValid);
|
||||
};
|
||||
|
||||
const handleInputChange = (e) => {
|
||||
const { name, value } = e.target;
|
||||
// Update state based on the input field name
|
||||
switch (name) {
|
||||
case "email":
|
||||
setEmail(value);
|
||||
break;
|
||||
case "password":
|
||||
setPassword(value);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
const handleSubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
try {
|
||||
const response = await fetch("http://localhost:4000/users/login", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
email,
|
||||
password,
|
||||
}),
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
alert("Thank you for logging in");
|
||||
console.log("Login success")
|
||||
// Handle successful login, e.g., redirect to another page
|
||||
} else {
|
||||
alert("Unsucessful login");
|
||||
// Handle invalid credentials, e.g., show an error message
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error during login:", error);
|
||||
// Handle other errors, e.g., network issues
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Form onSubmit={handleSubmit}>
|
||||
<h1 className="my-5 text-center">Login</h1>
|
||||
<Form.Group>
|
||||
<Form.Label>Email Address:</Form.Label>
|
||||
<Form.Control
|
||||
type="email"
|
||||
placeholder="Enter Email"
|
||||
required
|
||||
name="email"
|
||||
value={email}
|
||||
onChange={(e) => {
|
||||
handleInputChange(e);
|
||||
checkFormValidity();
|
||||
}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Password:</Form.Label>
|
||||
<Form.Control
|
||||
type="password"
|
||||
placeholder="Enter Password"
|
||||
required
|
||||
name="password"
|
||||
value={password}
|
||||
onChange={(e) => {
|
||||
handleInputChange(e);
|
||||
checkFormValidity();
|
||||
}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Button variant="success" type="submit" disabled={!isValid}>
|
||||
Login
|
||||
</Button>
|
||||
</Form>
|
||||
);
|
||||
};
|
||||
|
||||
export default Login;
|
@ -0,0 +1,151 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { Form, Button } from 'react-bootstrap';
|
||||
|
||||
export default function Register() {
|
||||
|
||||
// State hooks to store the values of the input fields
|
||||
const [ firstName, setFirstName ] = useState("");
|
||||
const [ lastName, setLastName ] = useState("");
|
||||
const [ email, setEmail ] = useState("");
|
||||
const [ mobileNo, setMobileNo ] = useState("");
|
||||
const [ password, setPassword] = useState("");
|
||||
const [ confirmPassword, setConfirmPassword ] = useState("");
|
||||
// State to determine whether the submit button is enabled or not
|
||||
const [ isActive, setIsActive ] = useState(false);
|
||||
|
||||
console.log(firstName);
|
||||
console.log(lastName);
|
||||
console.log(email);
|
||||
console.log(mobileNo);
|
||||
console.log(password);
|
||||
console.log(confirmPassword);
|
||||
|
||||
|
||||
function registerUser(e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
fetch("http://localhost:4000/users/register", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
email: email,
|
||||
mobileNo: mobileNo,
|
||||
password: password
|
||||
})
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log(data)
|
||||
|
||||
if (data) {
|
||||
setFirstName("");
|
||||
setLastName("");
|
||||
setEmail("");
|
||||
setMobileNo("");
|
||||
setPassword("");
|
||||
setConfirmPassword("");
|
||||
|
||||
alert("Thank you for registering!")
|
||||
|
||||
} else {
|
||||
|
||||
alert("Please try again later.")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if((firstName !== "" && lastName !== "" && email !== "" && mobileNo !== "" && password !== "" && confirmPassword !== "") && (password === confirmPassword) && (mobileNo.length === 11)) {
|
||||
|
||||
setIsActive(true)
|
||||
} else {
|
||||
setIsActive(false)
|
||||
}
|
||||
// dependencies
|
||||
}, [firstName, lastName, email, mobileNo, password, confirmPassword])
|
||||
|
||||
return (
|
||||
|
||||
<Form onSubmit={(e) => registerUser(e)}>
|
||||
<h1 className="my-5 text-center">Register</h1>
|
||||
<Form.Group>
|
||||
<Form.Label>First Name:</Form.Label>
|
||||
<Form.Control
|
||||
type="text"
|
||||
placeholder="Enter First Name"
|
||||
required
|
||||
value={firstName}
|
||||
onChange={e => {setFirstName(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Last Name:</Form.Label>
|
||||
<Form.Control
|
||||
type="text"
|
||||
placeholder="Enter Last Name"
|
||||
required
|
||||
value={lastName}
|
||||
onChange={e => {setLastName(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Email:</Form.Label>
|
||||
<Form.Control
|
||||
type="email"
|
||||
placeholder="Enter Email"
|
||||
required
|
||||
value={email}
|
||||
onChange={e => {setEmail(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Mobile No:</Form.Label>
|
||||
<Form.Control
|
||||
type="number"
|
||||
placeholder="Enter 11 Digit No."
|
||||
required
|
||||
value={mobileNo}
|
||||
onChange={e => {setMobileNo(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Password:</Form.Label>
|
||||
<Form.Control
|
||||
type="password"
|
||||
placeholder="Enter Password"
|
||||
required
|
||||
value={password}
|
||||
onChange={e => {setPassword(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>Confirm Password:</Form.Label>
|
||||
<Form.Control
|
||||
type="password"
|
||||
placeholder="Confirm Password"
|
||||
required
|
||||
value={confirmPassword}
|
||||
onChange={e => {setConfirmPassword(e.target.value)}}
|
||||
/>
|
||||
</Form.Group>
|
||||
|
||||
{/*conditionally renders the submit button based on the isActive state*/}
|
||||
{
|
||||
isActive
|
||||
?
|
||||
<Button variant="primary" type="submit" id="submitBtn">Submit</Button>
|
||||
:
|
||||
<Button variant="danger" type="submit" id="submitBtn" disabled>Submit</Button>
|
||||
}
|
||||
|
||||
|
||||
</Form>
|
||||
)
|
||||
|
||||
}
|
Loading…
Reference in New Issue