diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx
index 4e4a1013..87f90b53 100644
--- a/src/pages/Login.tsx
+++ b/src/pages/Login.tsx
@@ -1,119 +1,134 @@
-import axios from 'axios';
-import { useState, useContext, useEffect } from 'react';
-import { useNavigate, Link } from 'react-router-dom';
-import { AuthContext } from '../context/auth';
-import {
- Box,
- Typography,
- TextField,
- Button,
- CircularProgress,
-} from '@mui/material';
+import axios from "axios";
+import { useState, useContext, useEffect, FormEvent } from "react";
+import { useNavigate, Link } from "react-router-dom";
+import { AuthContext } from "../context/auth";
+import { Box, Typography, TextField, Button, CircularProgress, Grid } from "@mui/material";
import { useGlobalInfoStore } from "../context/globalInfo";
import { apiUrl } from "../apiConfig";
const Login = () => {
- const [form, setForm] = useState({
- email: '',
- password: '',
- });
- const [loading, setLoading] = useState(false);
- const { notify } = useGlobalInfoStore();
- const { email, password } = form;
+ const [form, setForm] = useState({
+ email: "",
+ password: "",
+ });
+ const [loading, setLoading] = useState(false);
+ const { notify } = useGlobalInfoStore();
+ const { email, password } = form;
- const { state, dispatch } = useContext(AuthContext);
- const { user } = state;
+ const { state, dispatch } = useContext(AuthContext);
+ const { user } = state;
- const navigate = useNavigate();
+ const navigate = useNavigate();
- useEffect(() => {
- if (user) {
- navigate('/');
- }
- }, [user, navigate]);
+ useEffect(() => {
+ if (user) {
+ navigate("/");
+ }
+ }, [user, navigate]);
- const handleChange = (e: any) => {
- const { name, value } = e.target;
- setForm({ ...form, [name]: value });
- };
+ const handleChange = (e: any) => {
+ const { name, value } = e.target;
+ setForm({ ...form, [name]: value });
+ };
- const submitForm = async (e: any) => {
- e.preventDefault();
- setLoading(true);
- try {
- const { data } = await axios.post(`${apiUrl}/auth/login`, { email, password });
- dispatch({ type: 'LOGIN', payload: data });
- notify('success', 'Welcome to Maxun!');
- window.localStorage.setItem('user', JSON.stringify(data));
- navigate('/');
- } catch (err: any) {
- notify('error', err.response.data || 'Login Failed. Please try again.');
- setLoading(false);
- }
- };
+ const submitForm = async (e: any) => {
+ e.preventDefault();
+ setLoading(true);
+ try {
+ const { data } = await axios.post(`${apiUrl}/auth/login`, {
+ email,
+ password,
+ });
+ dispatch({ type: "LOGIN", payload: data });
+ notify("success", "Welcome to Maxun!");
+ window.localStorage.setItem("user", JSON.stringify(data));
+ navigate("/");
+ } catch (err) {
+ notify("error", "Login Failed. Please try again.");
+ setLoading(false);
+ }
+ };
- return (
+ return (
+
+
-
- Welcome Back!
-
-
-
-
-
-
-
-
- Don’t have an account?{' '}
-
- Register
-
-
-
+
+
+ Welcome Back!
+
+
+
+
+
+ Don’t have an account?{" "}
+
+ Register
+
+
- );
+
+
+ );
};
export default Login;
diff --git a/src/pages/Register.tsx b/src/pages/Register.tsx
index 8c92fe7b..b2a3eebf 100644
--- a/src/pages/Register.tsx
+++ b/src/pages/Register.tsx
@@ -1,117 +1,132 @@
-import { useState, useContext, useEffect } from 'react';
-import { useNavigate, Link } from 'react-router-dom';
-import axios from 'axios';
-import { AuthContext } from '../context/auth';
-import { TextField, Button, CircularProgress, Typography, Box, Container } from '@mui/material';
+import axios from "axios";
+import { useState, useContext, useEffect } from "react";
+import { useNavigate, Link } from "react-router-dom";
+import { AuthContext } from "../context/auth";
+import { Box, Typography, TextField, Button, CircularProgress } from "@mui/material";
import { useGlobalInfoStore } from "../context/globalInfo";
import { apiUrl } from "../apiConfig";
const Register = () => {
- const [form, setForm] = useState({
- email: '',
- password: '',
- });
- const [loading, setLoading] = useState(false);
- const { notify } = useGlobalInfoStore();
- const { email, password } = form;
+ const [form, setForm] = useState({
+ email: "",
+ password: "",
+ });
+ const [loading, setLoading] = useState(false);
+ const { notify } = useGlobalInfoStore();
+ const { email, password } = form;
- const { state, dispatch } = useContext(AuthContext);
- const { user } = state;
- const navigate = useNavigate();
+ const { state, dispatch } = useContext(AuthContext);
+ const { user } = state;
- useEffect(() => {
- if (user !== null) navigate('/');
- }, [user, navigate]);
+ const navigate = useNavigate();
- const handleChange = (e: any) => {
- const { name, value } = e.target;
- setForm({ ...form, [name]: value });
- };
+ useEffect(() => {
+ if (user) {
+ navigate("/");
+ }
+ }, [user, navigate]);
- const submitForm = async (e: any) => {
- e.preventDefault();
- setLoading(true);
- try {
- const { data } = await axios.post(`${apiUrl}/auth/register`, {
- email,
- password,
- });
- dispatch({
- type: 'LOGIN',
- payload: data,
- });
- notify('success', 'Welcome to Maxun!');
- window.localStorage.setItem('user', JSON.stringify(data));
- navigate('/');
- } catch (err: any) {
- notify('error', err.response.data || 'Registration Failed. Please try again.');
- } finally {
- setLoading(false);
- }
- };
+ const handleChange = (e: any) => {
+ const { name, value } = e.target;
+ setForm({ ...form, [name]: value });
+ };
- return (
- {
+ e.preventDefault();
+ setLoading(true);
+ try {
+ const { data } = await axios.post(`${apiUrl}/auth/register`, {
+ email,
+ password,
+ });
+ dispatch({ type: "LOGIN", payload: data });
+ notify("success", "Registration Successful!");
+ window.localStorage.setItem("user", JSON.stringify(data));
+ navigate("/");
+ } catch (error:any) {
+ notify("error", error.response.data || "Registration Failed. Please try again.");
+ setLoading(false);
+ }
+ };
+
+ return (
+
+
+
+
+ Create an Account
+
+
+
+
- );
+ {loading ? (
+ <>
+
+ Loading
+ >
+ ) : (
+ "Register"
+ )}
+
+
+ Already have an account?{" "}
+
+ Login
+
+
+
+
+ );
};
export default Register;