import { useState, useCallback, useEffect } from 'react'; import { Member } from '../types/member'; import { fetchMembers as fetchMembersApi, addMember as addMemberApi, updateMember as updateMemberApi, deleteMember as deleteMemberApi } from '../services/memberService'; export const useMemberManagement = () => { const [members, setMembers] = useState([]); const [loading, setLoading] = useState(false); const fetchMembers = useCallback(async () => { setLoading(true); try { const fetchedMembers = await fetchMembersApi(); setMembers(fetchedMembers); console.log('Fetched members:', fetchedMembers); } catch (error) { console.error('Failed to load members:', error); } finally { setLoading(false); } }, []); useEffect(() => { fetchMembers(); }, [fetchMembers]); const addMember = async (member: Omit) => { try { await addMemberApi(member); await fetchMembers(); } catch (error) { console.error('Failed to add member:', error); throw error; } }; const editMember = async (updatedMember: Member) => { try { await updateMemberApi(updatedMember); await fetchMembers(); } catch (error) { console.error('Failed to update member:', error); throw error; } }; const deleteMember = async (memberId: string) => { try { await deleteMemberApi(memberId); await fetchMembers(); } catch (error) { console.error('Failed to delete member:', error); throw error; } }; return { members, loading, fetchMembers, addMember, editMember, deleteMember, }; };