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

    -
    +