React JS | Store form data in localStorage
Register.jsx
import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
export default function Register() {
const [user, setUser] = useState({
name: "",
email: "",
password: ""
});
const navigate = useNavigate();
const handleSubmit = (e) => {
e.preventDefault();
const formData = {
name: user.name,
email: user.email,
password: user.password
};
localStorage.setItem("userData", JSON.stringify(formData));
navigate("/login");
}
return (
<>
<section className='container w-25'>
<div className="card my-5">
<div className="card-header">
<h5 className='text-center my-3'>Register</h5>
</div>
<div className="card-body">
<form onSubmit={handleSubmit}>
<div className="row">
<div className="col-md-12 mt-3">
<div className="mb-3">
<label className='form-label'>Name</label>
<input
type="text"
className='form-control'
onChange={(e) => setUser({ ...user, name: e.target.value })}
/>
</div>
</div>
<div className="col-md-12 mt-3">
<div className="mb-3">
<label className='form-label'>Email</label>
<input
type="email"
className='form-control'
onChange={(e) => setUser({ ...user, email: e.target.value })}
/>
</div>
</div>
<div className="col-md-12 mt-3">
<div className="mb-3">
<label className='form-label'>Password</label>
<input
type="password"
className='form-control'
onChange={(e) => setUser({ ...user, password: e.target.value })}
/>
</div>
</div>
</div>
<hr />
<div className='text-center my-3'>
<button type='submit' className='btn btn-primary'>Register</button>
</div>
<div className='text-center'>
Already have an account?
<span>
<Link to="/login">Login</Link>
</span>
</div>
</form>
</div>
</div>
</section>
</>
)
}
Login.jsx
import React, { useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
export default function Login() {
const [user, setUser] = useState({
email: "",
password: ""
});
const navigate = useNavigate();
const handleSubmit = (e) => {
e.preventDefault();
const storedUserData = JSON.parse(localStorage.getItem("userData"));
if (storedUserData && storedUserData.email === user.email && storedUserData.password === user.password) {
navigate("/dashboard");
window.location.reload();
} else {
alert("Invalid email or password");
}
};
return (
<>
<section className='container w-25'>
<div className="card my-5">
<div className="card-header">
<h5 className='text-center my-3'>Login</h5>
</div>
<div className="card-body">
<form onSubmit={handleSubmit}>
<div className="row">
<div className="col-md-12 mt-3">
<div className="mb-3">
<label className='form-label'>Email</label>
<input
type="email"
className='form-control'
onChange={(e) => setUser({ ...user, email: e.target.value })}
value={user.email}
/>
</div>
</div>
<div className="col-md-12 mt-3">
<div className="mb-3">
<label className='form-label'>Password</label>
<input
type="password"
className='form-control'
onChange={(e) => setUser({ ...user, password: e.target.value })}
value={user.password}
/>
</div>
</div>
</div>
<hr />
<div className='text-center my-3'>
<button type='submit' className='btn btn-primary'>Login</button>
</div>
<div className='text-center'>
Don't have an account?
<span>
<Link to="/register">Register</Link>
</span>
</div>
</form>
</div>
</div>
</section>
</>
);
}
Comments
Post a Comment