From 1451c1aff7c722491c1298b2247a0f078afaaec4 Mon Sep 17 00:00:00 2001
From: Pramod Mahajan
Date: Thu, 3 Apr 2025 17:51:59 +0530
Subject: [PATCH] added login and forgot form validation and changed server
response format
---
src/components/Project/ProjectNav.jsx | 2 +-
src/hooks/masterHook/useMaster.js | 1 +
src/hooks/useMasterRole.js | 8 +-
src/hooks/useProfile.js | 4 +-
src/hooks/useProjects.js | 8 +-
src/pages/Activities/TaskPlannng.jsx | 14 +---
.../authentication/ForgotPasswordPage.jsx | 52 ++++++++-----
src/pages/authentication/LoginPage.jsx | 78 +++++++++++--------
src/pages/project/ProjectDetails.jsx | 10 +--
src/pages/project/ProjectList.jsx | 6 +-
src/slices/localVariablesSlice.jsx | 2 +-
src/utils/constants.jsx | 2 +
12 files changed, 102 insertions(+), 85 deletions(-)
diff --git a/src/components/Project/ProjectNav.jsx b/src/components/Project/ProjectNav.jsx
index 35054b2e..25b55a4b 100644
--- a/src/components/Project/ProjectNav.jsx
+++ b/src/components/Project/ProjectNav.jsx
@@ -35,7 +35,7 @@ const ProjectNav = ( {onPillClick, activePill} ) =>
Teams
-
+
{
break;
case "Job Role":
response = await MasterRespository.getJobRole();
+ response = response.data
break;
case "Module":
response = [{description: null,module:"Module 1",featurePermission: null,id: "08dd4761-363c-49ed-8851-3d2489a3e98d"},{description: null,module:"Module 2",featurePermission: null,id: "08dy9761-363c-49ed-8851-3d2489a3e98d"},{description: null,module:"Module 3",featurePermission: null,id: "08dy7761-263c-49ed-8851-3d2489a3e98d"}];
diff --git a/src/hooks/useMasterRole.js b/src/hooks/useMasterRole.js
index 7311784d..d0d6cd47 100644
--- a/src/hooks/useMasterRole.js
+++ b/src/hooks/useMasterRole.js
@@ -16,9 +16,9 @@ export const useMasterRole =()=>{
if (!features_cache) {
MasterRespository.getRoles()
.then((response) => {
- setMasterRole(response);
+ setMasterRole(response.data);
- cacheData("masterRole", response);
+ cacheData("masterRole", response.data);
setLoading(false)
})
.catch((error) => {
@@ -55,9 +55,9 @@ export const useFeatures =()=> {
if (!features_cache) {
MasterRespository.getFeatures()
.then((response) => {
- setMasterFeatures(response);
+ setMasterFeatures(response.data);
- cacheData("features", response);
+ cacheData("features", response.data);
setLoading(false)
})
.catch((error) => {
diff --git a/src/hooks/useProfile.js b/src/hooks/useProfile.js
index 1c663e0d..9c6a75a8 100644
--- a/src/hooks/useProfile.js
+++ b/src/hooks/useProfile.js
@@ -18,8 +18,8 @@ export const useProfile = () =>
{
setLoading( true )
let response = await AuthRepository.profile();
- setProfile( response )
- cacheProfileData( response )
+ setProfile( response.data )
+ cacheProfileData( response.data )
setLoading( false );
} catch ( error )
diff --git a/src/hooks/useProjects.js b/src/hooks/useProjects.js
index 6207ff31..6c687bfa 100644
--- a/src/hooks/useProjects.js
+++ b/src/hooks/useProjects.js
@@ -19,9 +19,9 @@ export const useProjects =()=>{
setLoading(true)
ProjectRepository.getProjectList()
.then((response) => {
- setProjects(response);
+ setProjects(response.data);
- cacheData("projectslist", response);
+ cacheData("projectslist", response.data);
setLoading(false);
})
.catch((error) => {
@@ -94,8 +94,8 @@ export const useProjectDetails =(projectId)=>{
ProjectRepository.getProjectByprojectId(projectId)
.then( ( response ) =>
{
- setProject_Details(response);
- cacheData( `projectinfo-${ projectId }`, response );
+ setProject_Details(response.data);
+ cacheData( `projectinfo-${ projectId }`, response.data );
setLoading(false)
})
.catch((error) => {
diff --git a/src/pages/Activities/TaskPlannng.jsx b/src/pages/Activities/TaskPlannng.jsx
index 824095b2..d076c130 100644
--- a/src/pages/Activities/TaskPlannng.jsx
+++ b/src/pages/Activities/TaskPlannng.jsx
@@ -25,22 +25,12 @@ const TaskPlannng = () => {
if (!activities_cache) {
ActivityeRepository.getActivities()
.then((response) => {
- setActivities(response);
- cacheData("activitiesMaster", response);
+ setActivities(response.data);
+ cacheData("activitiesMaster", response.data);
})
.catch((error) => {
setError("Failed to fetch data.");
});
- // api
- // .get("/api/task/activities")
- // .then((data) => {
- // setActivities(data);
- // dispatch(cacheApiResponse({ key: "activitiesMaster", data: data }));
- // })
- // .catch((error) => {
- // console.error(error);
- // setError("Failed to fetch data.");
- // });
} else {
setActivities(activities_cache);
}
diff --git a/src/pages/authentication/ForgotPasswordPage.jsx b/src/pages/authentication/ForgotPasswordPage.jsx
index d0ffdcef..a0793358 100644
--- a/src/pages/authentication/ForgotPasswordPage.jsx
+++ b/src/pages/authentication/ForgotPasswordPage.jsx
@@ -4,45 +4,52 @@ import { AuthWrapper } from "./AuthWrapper"
import "./page-auth.css";
import AuthRepository from "../../repositories/AuthRepository";
import showToast from "../../services/toastService";
+import { useForm } from "react-hook-form";
+import { zodResolver } from "@hookform/resolvers/zod";
+import {z} from "zod";
+const forgotPassSceham = z.object( {
+ email: z.string().email(),
+} )
+
const ForgotPasswordPage = () => {
- const [ email, setEmail ] = useState( "" );
+
const[loding,setLoading] = useState(false)
- const handleChange = (e) => {
- setEmail(e.target.value);
- };
+ const {register,
+ handleSubmit,
+ formState: { errors },
+ reset,
+ getValues } = useForm( {
+ resolver: zodResolver( forgotPassSceham ),
+ defaultValues: {
+ email:""
+ }
+ })
- const handleSubmit = async ( e ) =>
+ const onSubmit = async (data) =>
{
- setLoading(true)
- e.preventDefault();
try
{
- const response = await AuthRepository.forgotPassword({email})
+ const response = await AuthRepository.forgotPassword(data)
if ( response.data && response.success )
- {
showToast( response.message, "success" )
- } else
- {
- showToast( response.message, "warning" )
- }
setLoading( false )
setEmail("")
- } catch ( error )
+ } catch ( err )
{
- showToast( "User Not Found", "error" )
+ showToast( err.response.data, "error" )
setLoading(false)
}
- };
+ }
return (
Forgot Password? 🔒
Enter your email and we'll send you instructions to reset your password
-
-