From 10dae9193c2fe6d8cbdeecdb593c8034e31b1ae9 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 23 Oct 2023 12:17:32 +0100 Subject: [PATCH] added family update component --- src/components/FamilyAcc/FamilyManageTabs.jsx | 2 +- src/components/FamilyAcc/FamilyTable.jsx | 4 +- .../FamilyAcc/Tabs/FamilyProfile.jsx | 201 +++++++++++++++++- src/services/UsersService.js | 3 +- 4 files changed, 203 insertions(+), 7 deletions(-) diff --git a/src/components/FamilyAcc/FamilyManageTabs.jsx b/src/components/FamilyAcc/FamilyManageTabs.jsx index e9e5832..63884ed 100644 --- a/src/components/FamilyAcc/FamilyManageTabs.jsx +++ b/src/components/FamilyAcc/FamilyManageTabs.jsx @@ -165,7 +165,7 @@ export default function FamilyManageTabs({ handlePrint={useHandlePrint} /> ), - Profile: , + Profile: , }; // Default tab component diff --git a/src/components/FamilyAcc/FamilyTable.jsx b/src/components/FamilyAcc/FamilyTable.jsx index b908a73..836e023 100644 --- a/src/components/FamilyAcc/FamilyTable.jsx +++ b/src/components/FamilyAcc/FamilyTable.jsx @@ -139,8 +139,8 @@ export default function FamilyTable({ - {currentFamilyList?.map((familyMember) => { - return ; + {currentFamilyList?.map((familyMember, index) => { + return ; })} diff --git a/src/components/FamilyAcc/Tabs/FamilyProfile.jsx b/src/components/FamilyAcc/Tabs/FamilyProfile.jsx index 79e318b..2f928b7 100644 --- a/src/components/FamilyAcc/Tabs/FamilyProfile.jsx +++ b/src/components/FamilyAcc/Tabs/FamilyProfile.jsx @@ -1,11 +1,206 @@ -export default function FamilyProfile({ className }) { +import { useState } from "react"; +import InputCom from "../../Helpers/Inputs/InputCom"; +import LoadingSpinner from "../../Spinners/LoadingSpinner"; +import usersService from "../../../services/UsersService"; +import { useNavigate } from "react-router-dom"; + +export default function FamilyProfile({familyData, className }) { + const navigate = useNavigate() + const api = new usersService() + + let [requestStatus, setRequestStatus] = useState({loading:false, status:false, message: ''}) + + let [updateDetails, setUpdateDetails] = useState({ + family_uid: familyData.uid, + firstname: familyData.firstname, + lastname: familyData.lastname, + year: familyData.year, + month: familyData.month, + action: 22020 + }) + + const handleChange = ({target:{name, value}})=>{ + setUpdateDetails(prev => ({...prev, [name]:value})) + } + + const updateFamily = () => { + setRequestStatus({loading:true, status:false, message: ''}) + let {firstname, lastname, year, month} = updateDetails + if(!firstname || !lastname || !year || !month) { + setRequestStatus({loading:false, status:false, message: 'Please fill all fields'}) + return setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message: ''}) + }, 5000) + } + + api.getFamilyUpdate(updateDetails).then(res=>{ + if(res.data.internal_return < 0){ + return setRequestStatus({loading:false, status:false, message: 'Failed, try again!'}) + } + setRequestStatus({loading:false, status:true, message: 'Family account updated'}) + setTimeout(()=>{ + navigate('/acc-family', {replace:true}) + }, 5000) + }).catch(error => { + setRequestStatus({loading:false, status:false, message: 'Unable to update, try again!'}) + }).finally(()=>{ + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message: ''}) + }, 5000) + }) + } + return (
-

Profile

+
+ + +
+ {/* Age dropdown */} +
+ +
+ +
+ {requestStatus.message && ( +
+ {requestStatus.message} +
+ )} +
+ {requestStatus.loading ? + <> +
+ + + : + + } +
+
); } + + + + +function YearMonthDropdowns({ + selectedYear, + selectedMonth, + handleChange +}) { + // Get the current year + const currentYear = new Date().getFullYear(); + + // Generate an array of years from the current year to (currentYear - 19) + const years = Array.from({ length: 17 }, (_, index) => currentYear - index); + + // Array of month names + // const months = [ + // "January", + // "February", + // "March", + // "April", + // "May", + // "June", + // "July", + // "August", + // "September", + // "October", + // "November", + // "December", + // ]; + + const months = [ + {id:'1', name:"January"}, + {id:'2', name:"February"}, + {id:'3', name:"March"}, + {id:'4', name:"April"}, + {id:'5', name:"May"}, + {id:'6', name:"June"}, + {id:'7', name:"July"}, + {id:'8', name:"August"}, + {id:'9', name:"September"}, + {id:'10', name:"October"}, + {id:'11', name:"November"}, + {id:'12', name:"December"}, + ]; + + return ( +
+ + + +
+ ); +} + diff --git a/src/services/UsersService.js b/src/services/UsersService.js index 1cf3f75..e1670fd 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -578,13 +578,14 @@ class usersService { return this.postAuxEnd("/familyadd", postData); } - getFamilyUpdate() { + getFamilyUpdate(reqdata) { var postData = { uuid: localStorage.getItem("uid"), member_id: localStorage.getItem("member_id"), sessionid: localStorage.getItem("session_token"), page: 0, limit: 100, + ...reqdata }; return this.postAuxEnd("/familyupdate", postData); }