|
@@ -1,4 +1,4 @@
|
|
|
-import { useState, useEffect } from 'react';
|
|
|
|
|
|
|
+import { useState, useEffect, useCallback } from 'react';
|
|
|
import { Member } from '../types/member';
|
|
import { Member } from '../types/member';
|
|
|
import { message } from 'antd';
|
|
import { message } from 'antd';
|
|
|
import { fetchMembers, addMember, updateMember, deleteMember } from '../services/memberService';
|
|
import { fetchMembers, addMember, updateMember, deleteMember } from '../services/memberService';
|
|
@@ -8,21 +8,23 @@ export const useMemberManagement = () => {
|
|
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
|
const [loading, setLoading] = useState(false);
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
|
|
|
|
- useEffect(() => {
|
|
|
|
|
- loadMembers();
|
|
|
|
|
- }, []);
|
|
|
|
|
-
|
|
|
|
|
- const loadMembers = async () => {
|
|
|
|
|
|
|
+ const loadMembers = useCallback(async () => {
|
|
|
setLoading(true);
|
|
setLoading(true);
|
|
|
try {
|
|
try {
|
|
|
const fetchedMembers = await fetchMembers();
|
|
const fetchedMembers = await fetchMembers();
|
|
|
setMembers(fetchedMembers);
|
|
setMembers(fetchedMembers);
|
|
|
|
|
+ console.log('Members loaded:', fetchedMembers);
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
|
|
+ console.error('Failed to load members:', error);
|
|
|
message.error('加载会友列表失败');
|
|
message.error('加载会友列表失败');
|
|
|
} finally {
|
|
} finally {
|
|
|
setLoading(false);
|
|
setLoading(false);
|
|
|
}
|
|
}
|
|
|
- };
|
|
|
|
|
|
|
+ }, []);
|
|
|
|
|
+
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ loadMembers();
|
|
|
|
|
+ }, [loadMembers]);
|
|
|
|
|
|
|
|
const showModal = () => {
|
|
const showModal = () => {
|
|
|
setIsModalVisible(true);
|
|
setIsModalVisible(true);
|
|
@@ -40,8 +42,10 @@ export const useMemberManagement = () => {
|
|
|
try {
|
|
try {
|
|
|
const newMember = await addMember(member);
|
|
const newMember = await addMember(member);
|
|
|
setMembers([...members, newMember]);
|
|
setMembers([...members, newMember]);
|
|
|
|
|
+ message.success('会友添加成功');
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
- throw error;
|
|
|
|
|
|
|
+ console.error('Failed to add member:', error);
|
|
|
|
|
+ message.error('添加会友失败');
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -53,6 +57,7 @@ export const useMemberManagement = () => {
|
|
|
));
|
|
));
|
|
|
message.success('会友信息更新成功');
|
|
message.success('会友信息更新成功');
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
|
|
+ console.error('Failed to update member:', error);
|
|
|
message.error('更新会友信息失败');
|
|
message.error('更新会友信息失败');
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -63,6 +68,7 @@ export const useMemberManagement = () => {
|
|
|
setMembers(members.filter(member => member.id !== memberId));
|
|
setMembers(members.filter(member => member.id !== memberId));
|
|
|
message.success('会友删除成功');
|
|
message.success('会友删除成功');
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
|
|
+ console.error('Failed to delete member:', error);
|
|
|
message.error('删除会友失败');
|
|
message.error('删除会友失败');
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|