refactor: improve team management, OKRs, and session components
This commit is contained in:
@@ -21,7 +21,12 @@ interface AddMemberModalProps {
|
||||
onSuccess: () => void;
|
||||
}
|
||||
|
||||
export function AddMemberModal({ teamId, existingMemberIds, onClose, onSuccess }: AddMemberModalProps) {
|
||||
export function AddMemberModal({
|
||||
teamId,
|
||||
existingMemberIds,
|
||||
onClose,
|
||||
onSuccess,
|
||||
}: AddMemberModalProps) {
|
||||
const [users, setUsers] = useState<User[]>([]);
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
const [selectedUserId, setSelectedUserId] = useState<string | null>(null);
|
||||
@@ -71,7 +76,7 @@ export function AddMemberModal({ teamId, existingMemberIds, onClose, onSuccess }
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.json();
|
||||
alert(error.error || 'Erreur lors de l\'ajout du membre');
|
||||
alert(error.error || "Erreur lors de l'ajout du membre");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -79,7 +84,7 @@ export function AddMemberModal({ teamId, existingMemberIds, onClose, onSuccess }
|
||||
onClose();
|
||||
} catch (error) {
|
||||
console.error('Error adding member:', error);
|
||||
alert('Erreur lors de l\'ajout du membre');
|
||||
alert("Erreur lors de l'ajout du membre");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
@@ -157,4 +162,3 @@ export function AddMemberModal({ teamId, existingMemberIds, onClose, onSuccess }
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ export function MembersList({ members, teamId, isAdmin, onMemberUpdate }: Member
|
||||
};
|
||||
|
||||
const handleRemoveMember = async (userId: string) => {
|
||||
if (!confirm('Êtes-vous sûr de vouloir retirer ce membre de l\'équipe ?')) {
|
||||
if (!confirm("Êtes-vous sûr de vouloir retirer ce membre de l'équipe ?")) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -172,4 +172,3 @@ export function MembersList({ members, teamId, isAdmin, onMemberUpdate }: Member
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,9 @@ export function TeamCard({ team }: TeamCardProps) {
|
||||
<span className="text-2xl">👥</span>
|
||||
<CardTitle>{team.name}</CardTitle>
|
||||
</div>
|
||||
{team.description && <CardDescription className="mt-2">{team.description}</CardDescription>}
|
||||
{team.description && (
|
||||
<CardDescription className="mt-2">{team.description}</CardDescription>
|
||||
)}
|
||||
</div>
|
||||
{isAdmin && (
|
||||
<Badge
|
||||
@@ -49,11 +51,15 @@ export function TeamCard({ team }: TeamCardProps) {
|
||||
d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"
|
||||
/>
|
||||
</svg>
|
||||
<span>{memberCount} membre{memberCount !== 1 ? 's' : ''}</span>
|
||||
<span>
|
||||
{memberCount} membre{memberCount !== 1 ? 's' : ''}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-1.5">
|
||||
<span className="text-lg">🎯</span>
|
||||
<span>{okrCount} OKR{okrCount !== 1 ? 's' : ''}</span>
|
||||
<span>
|
||||
{okrCount} OKR{okrCount !== 1 ? 's' : ''}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
@@ -61,4 +67,3 @@ export function TeamCard({ team }: TeamCardProps) {
|
||||
</Link>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,12 @@ export function TeamDetailClient({ members, teamId, isAdmin }: TeamDetailClientP
|
||||
router.refresh();
|
||||
};
|
||||
|
||||
return <MembersList members={members} teamId={teamId} isAdmin={isAdmin} onMemberUpdate={handleMemberUpdate} />;
|
||||
return (
|
||||
<MembersList
|
||||
members={members}
|
||||
teamId={teamId}
|
||||
isAdmin={isAdmin}
|
||||
onMemberUpdate={handleMemberUpdate}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user