diff --git a/app/missions/equipe/page.tsx b/app/missions/equipe/page.tsx
index d4dd4fa..fa77547 100644
--- a/app/missions/equipe/page.tsx
+++ b/app/missions/equipe/page.tsx
@@ -69,6 +69,10 @@ export default function EquipePage() {
password: "",
roles: [] as string[],
});
+
+ // New group dialog state
+ const [newGroupDialogOpen, setNewGroupDialogOpen] = useState(false);
+ const [newGroupName, setNewGroupName] = useState("");
// Fetch data on mount
useEffect(() => {
@@ -473,6 +477,43 @@ export default function EquipePage() {
}
};
+ const createGroup = async () => {
+ if (!newGroupName.trim()) {
+ toast({ title: "Erreur", description: "Le nom du groupe est requis", variant: "destructive" });
+ return;
+ }
+
+ setActionLoading("new-group");
+ try {
+ const response = await fetch("/api/groups", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ name: newGroupName.trim() })
+ });
+
+ if (!response.ok) {
+ const errorData = await response.json().catch(() => ({}));
+ throw new Error(errorData.message || "Failed to create group");
+ }
+
+ const newGroup = await response.json();
+ setGroups(prev => [...prev, newGroup]);
+ setNewGroupDialogOpen(false);
+ setNewGroupName("");
+ toast({ title: "Succès", description: "Groupe créé" });
+ fetchData(); // Refresh data
+ } catch (error) {
+ console.error("Error creating group:", error);
+ toast({
+ title: "Erreur",
+ description: error instanceof Error ? error.message : "Échec de la création",
+ variant: "destructive"
+ });
+ } finally {
+ setActionLoading(null);
+ }
+ };
+
return (
{/* Header */}
@@ -595,6 +636,58 @@ export default function EquipePage() {
)}
+ {activeTab === "groups" && (
+
+ )}
{/* Current Members */}
-