Files
Users-Wrench/src/components/FamilyAcc/FamilySettings/Tabs/Relatives.jsx
T
2024-01-25 08:16:55 +01:00

69 lines
2.1 KiB
React

import React, { useEffect, useState } from 'react'
import RelativeTable from './RelativeTable'
import InviteRelative from './InviteRelative'
import usersService from '../../../../services/UsersService'
import LoadingSpinner from '../../../Spinners/LoadingSpinner'
const Relatives = () => {
const api = new usersService()
const [reloadRelList, setReloadRelList] = useState(false)
const [invitePopout, setInvitePopout] = useState(false)
const [relativeList, setRelativeList] = useState({loading: true, result_list:[], family_types:[]})
const showInviteMemberPopout = () => {
setInvitePopout(true)
}
const getRelativeList = () => {
setRelativeList(prev => ({...prev, loading: true}))
api.getFamilyRelativeList().then(response => {
let {status, data} = response
if(status != 200 || !data){
setRelativeList({loading:false, result_list:[], family_types:[]})
return
}
setRelativeList({loading:false, result_list:data?.result_list, family_types:data?.family_types})
}).catch(error => {
setRelativeList({loading:false, result_list:[], family_types:[]})
})
}
useEffect(()=>{
getRelativeList()
},[reloadRelList])
return (
<>
<div className=''>
<div className='py-4'>
<button onClick={showInviteMemberPopout} className='text-white btn-gradient text-lg tracking-wide px-5 py-2 rounded-full'>Invite</button>
<div className='my-4 border-b-2'></div>
</div>
<div className='min-h-[500px]'>
{relativeList.loading ?
<LoadingSpinner size='8' height='h-full' />
:
<RelativeTable relativeList={relativeList.result_list} />
}
</div>
</div>
{/* INVITE RELATIVE POPOUT */}
{invitePopout &&
<InviteRelative
action={()=>setInvitePopout(false)}
situation={invitePopout}
setReloadRelList={setReloadRelList}
relativeList={relativeList}
/>
}
{/* END OF INVITE RELATIVE POPOUT */}
</>
)
}
export default Relatives