import React, { useCallback, useEffect, useMemo, useState } from "react"; import InputCom from "../Helpers/Inputs/InputCom"; import Layout from "../Partials/Layout"; import FamilyTable from "./FamilyTable"; import SiteService from "../../services/SiteService"; import ModalCom from "../Helpers/ModalCom"; export default function FamilyAcc() { const [selectTab, setValue] = useState("today"); const [selectedAge, setSelectedAge] = useState(undefined); const [familyList, setFamilyList] = useState([]); const [loader, setLoader] = useState(false); const [popUp, setPopUp] = useState(false); const [listReload, setListReload] = useState(false); const [msgErr, setMsgErr] = useState(""); const [formData, setFormData] = useState({ first_name: "", last_name: "", }); const apiCall = useMemo(() => new SiteService(), []); // This is to make sure it's called once and used everywhere let memberId = localStorage.getItem("member_id"); let uid = localStorage.getItem("uid"); let sessionId = localStorage.getItem("session_token"); const popUpHandler = () => { setPopUp((prev) => !prev); }; // tab handler const filterHandler = (value) => { setValue(value); }; // For the age drop down let startAge = 5; let endAge = 16; // creates an array of age values ranging from 16 to 70 const ageRange = Array.from( { length: endAge - startAge + 1 }, (_, index) => startAge + index ); // age handler const handleAgeSelect = (event) => { setSelectedAge(parseInt(event.target.value)); }; // Input handler const handleInputChange = (event) => { const { name, value } = event?.target; setFormData({ ...formData, [name]: value }); }; // Add member const addMember = async () => { const { first_name, last_name } = formData; setLoader(true); try { if (first_name !== "" && last_name !== "") { let reqData = { member_id: memberId, uid: uid, session_id: sessionId, firstname: first_name, lastname: last_name, age: selectedAge, }; let res = await apiCall.addFamily(reqData); const { data } = res; if (data?.internal_return > 0 && data?.status == "OK") { setLoader(false); setListReload((prev) => !prev); popUpHandler() } else { setLoader(false); setMsgErr("Sorry, something went wrong"); } } else { setLoader(false); setMsgErr("Please fill in the fields"); } } catch (error) { setLoader(false); setMsgErr("An error occurred"); throw new Error(error); } finally { setTimeout(() => { setMsgErr(null); }, Number(process.env.REACT_APP_LOGIN_ERROR_TIMEOUT)); setFormData({ first_name: "", last_name: "", }); setSelectedAge("") } }; // member listing const memberList = useCallback(async () => { setLoader(true); try { let reqData = { member_id: memberId, uid: uid, session_id: sessionId, limit: 20, offset: 0, action: 22010, }; let res = await apiCall.familyListings(reqData); const { data } = res; if (data?.internal_return >= 0 && data?.status == "OK") { let { result_list } = data; setFamilyList(result_list); setLoader(false); } else return; } catch (error) { setLoader(false); throw new Error(error); } }, [apiCall, memberId, sessionId, uid]); useEffect(() => { memberList(); }, [listReload, memberList]); return ( {/**/}
{/* heading */}

Family Accounts

filterHandler("today")} className="relative" >
{popUp && ( )}
); } const FamilyForm = ({ value: { first_name, last_name }, ageValue, inputHandler, ageHandler, ageRange, msgErr, loader, onClick, popUpHandler, }) => { return (

Add Members

{/* Age dropdown */}
{msgErr && (
{msgErr}
)}
); }; const CloseIcon = () => ( );