页面登录优化,team优化

This commit is contained in:
liamzi
2024-12-25 17:25:10 +08:00
parent 5eb069c63f
commit 4cbec25b53
18 changed files with 535 additions and 4816 deletions

View File

@@ -1,71 +1,58 @@
import { useState, useCallback } from 'react';
import { message } from 'antd';
import { teamMembershipService } from '@/services/supabase/teamMembership';
import { supabaseService } from '@/hooks/supabaseService';
export const useTeamMemberships = (teamId) => {
const [memberships, setMemberships] = useState([]);
export const useTeamMembership = (teamId) => {
const [loading, setLoading] = useState(false);
const [memberships, setMemberships] = useState([]);
const fetchMemberships = useCallback(async () => {
const loadMemberships = useCallback(async () => {
if (!teamId) return;
setLoading(true);
try {
setLoading(true);
const data = await teamMembershipService.getMemberships(teamId);
setMemberships(data);
const result = await supabaseService.get('team_memberships', {
select: '*',
relations: {
user: 'id, email, name'
},
match: { teamId }
});
setMemberships(result.data || []);
} catch (error) {
message.error('Failed to fetch team memberships');
console.error(error);
console.error('获取成员列表失败:', error);
} finally {
setLoading(false);
}
}, [teamId]);
const createMembership = async (values) => {
try {
const newMembership = await teamMembershipService.createMembership({
...values,
teamId,
});
setMemberships(prev => [...prev, newMembership]);
message.success('Member added successfully');
return newMembership;
} catch (error) {
message.error('Failed to add member');
throw error;
}
const addMembership = async (values) => {
const result = await supabaseService.insert('team_memberships', {
...values,
teamId
});
await loadMemberships();
return result[0];
};
const updateMembership = async (id, values) => {
try {
const updatedMembership = await teamMembershipService.updateMembership(id, values);
setMemberships(prev => prev.map(membership =>
membership.id === id ? updatedMembership : membership
));
message.success('Member updated successfully');
return updatedMembership;
} catch (error) {
message.error('Failed to update member');
throw error;
}
const result = await supabaseService.update('team_memberships',
{ id },
values
);
await loadMemberships();
return result[0];
};
const deleteMembership = async (id) => {
try {
await teamMembershipService.deleteMembership(id);
setMemberships(prev => prev.filter(membership => membership.id !== id));
message.success('Member removed successfully');
} catch (error) {
message.error('Failed to remove member');
throw error;
}
await supabaseService.delete('team_memberships', { id });
await loadMemberships();
};
return {
memberships,
loading,
fetchMemberships,
createMembership,
memberships,
loadMemberships,
addMembership,
updateMembership,
deleteMembership,
};