|
|
@@ -1,69 +1,59 @@
|
|
|
-import { useState, useEffect, useCallback } from 'react';
|
|
|
+import { useState, useCallback } from 'react';
|
|
|
import { Member } from '../types/member';
|
|
|
-import { message } from 'antd';
|
|
|
-import { fetchMembers, addMember, updateMember, deleteMember } from '../services/memberService';
|
|
|
+import { fetchMembers as fetchMembersApi, addMember as addMemberApi, updateMember as updateMemberApi, deleteMember as deleteMemberApi } from '../services/memberService';
|
|
|
|
|
|
export const useMemberManagement = () => {
|
|
|
const [members, setMembers] = useState<Member[]>([]);
|
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
|
|
- const loadMembers = useCallback(async () => {
|
|
|
+ const fetchMembers = useCallback(async () => {
|
|
|
setLoading(true);
|
|
|
try {
|
|
|
- const fetchedMembers = await fetchMembers();
|
|
|
+ const fetchedMembers = await fetchMembersApi();
|
|
|
setMembers(fetchedMembers);
|
|
|
} catch (error) {
|
|
|
console.error('Failed to load members:', error);
|
|
|
- message.error('加载会友列表失败');
|
|
|
} finally {
|
|
|
setLoading(false);
|
|
|
}
|
|
|
}, []);
|
|
|
|
|
|
- useEffect(() => {
|
|
|
- loadMembers();
|
|
|
- }, [loadMembers]);
|
|
|
-
|
|
|
- const handleAddMember = async (member: Omit<Member, 'id'>) => {
|
|
|
+ const addMember = async (member: Omit<Member, 'id'>) => {
|
|
|
try {
|
|
|
- const newMember = await addMember(member);
|
|
|
- setMembers([...members, newMember]);
|
|
|
- message.success('会友添加成功');
|
|
|
+ await addMemberApi(member);
|
|
|
+ await fetchMembers(); // 重新获取会友列表
|
|
|
} catch (error) {
|
|
|
console.error('Failed to add member:', error);
|
|
|
- message.error('添加会友失败');
|
|
|
+ throw error;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const handleEditMember = async (updatedMember: Member) => {
|
|
|
+ const editMember = async (updatedMember: Member) => {
|
|
|
try {
|
|
|
- await updateMember(updatedMember);
|
|
|
- setMembers(members.map(member =>
|
|
|
- member.id === updatedMember.id ? updatedMember : member
|
|
|
- ));
|
|
|
- message.success('会友信息更新成功');
|
|
|
+ await updateMemberApi(updatedMember);
|
|
|
+ await fetchMembers(); // 重新获取会友列表
|
|
|
} catch (error) {
|
|
|
console.error('Failed to update member:', error);
|
|
|
- message.error('更新会友信息失败');
|
|
|
+ throw error;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const handleDeleteMember = async (memberId: string) => {
|
|
|
+ const deleteMember = async (memberId: string) => {
|
|
|
try {
|
|
|
- await deleteMember(memberId);
|
|
|
- setMembers(members.filter(member => member.id !== memberId));
|
|
|
- message.success('会友删除成功');
|
|
|
+ await deleteMemberApi(memberId);
|
|
|
+ await fetchMembers(); // 重新获取会友列表
|
|
|
} catch (error) {
|
|
|
console.error('Failed to delete member:', error);
|
|
|
- message.error('删除会友失败');
|
|
|
+ throw error;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
return {
|
|
|
members,
|
|
|
loading,
|
|
|
- addMember: handleAddMember,
|
|
|
- editMember: handleEditMember,
|
|
|
- deleteMember: handleDeleteMember,
|
|
|
+ fetchMembers,
|
|
|
+ addMember,
|
|
|
+ editMember,
|
|
|
+ deleteMember,
|
|
|
};
|
|
|
};
|