"use client"; import React, { useState, useEffect } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; import { Input } from "../ui/input"; import { Button } from "../ui/button"; import { Textarea } from "../ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; import { Checkbox } from "../ui/checkbox"; import { Card, CardContent } from "../ui/card"; import { Badge } from "../ui/badge"; import { X, Search, UserPlus, Users } from "lucide-react"; // Mock user data - in a real app, this would come from an API const mockUsers = [ { id: '1', username: 'user1', firstName: 'John', lastName: 'Doe', email: 'john@example.com' }, { id: '2', username: 'user2', firstName: 'Jane', lastName: 'Smith', email: 'jane@example.com' }, { id: '3', username: 'user3', firstName: 'Alice', lastName: 'Johnson', email: 'alice@example.com' }, { id: '4', username: 'user4', firstName: 'Bob', lastName: 'Brown', email: 'bob@example.com' }, { id: '5', username: 'user5', firstName: 'Eva', lastName: 'Martinez', email: 'eva@example.com' }, ]; // Mock group data const mockGroups = [ { id: '1', name: 'Group A', path: '/group-a', membersCount: 3 }, { id: '2', name: 'Group B', path: '/group-b', membersCount: 5 }, { id: '3', name: 'Group C', path: '/group-c', membersCount: 2 }, ]; export function MissionsAdminPanel() { const [selectedServices, setSelectedServices] = useState([]); const [selectedProfils, setSelectedProfils] = useState([]); const [searchTerm, setSearchTerm] = useState(""); const [selectedTab, setSelectedTab] = useState<'users' | 'groups'>('users'); const [gardienDuTemps, setGardienDuTemps] = useState(null); const [gardienDeLaParole, setGardienDeLaParole] = useState(null); const [gardienDeLaMemoire, setGardienDeLaMemoire] = useState(null); // Filtered users based on search term const filteredUsers = mockUsers.filter(user => user.username.toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase()) || user.firstName.toLowerCase().includes(searchTerm.toLowerCase()) || user.lastName.toLowerCase().includes(searchTerm.toLowerCase()) ); // Filtered groups based on search term const filteredGroups = mockGroups.filter(group => group.name.toLowerCase().includes(searchTerm.toLowerCase()) ); // Function to check if a user is already selected for a role const isUserAssigned = (userId: string) => { return gardienDuTemps === userId || gardienDeLaParole === userId || gardienDeLaMemoire === userId; }; // Function to get role name by user id const getUserRole = (userId: string) => { if (gardienDuTemps === userId) return "Gardien du Temps"; if (gardienDeLaParole === userId) return "Gardien de la Parole"; if (gardienDeLaMemoire === userId) return "Gardien de la Mémoire"; return null; }; // Function to assign a user to a role const assignUserRole = (userId: string, role: 'temps' | 'parole' | 'memoire') => { if (role === 'temps') { setGardienDuTemps(userId); } else if (role === 'parole') { setGardienDeLaParole(userId); } else if (role === 'memoire') { setGardienDeLaMemoire(userId); } }; // Function to remove a user from a role const removeUserRole = (role: 'temps' | 'parole' | 'memoire') => { if (role === 'temps') { setGardienDuTemps(null); } else if (role === 'parole') { setGardienDeLaParole(null); } else if (role === 'memoire') { setGardienDeLaMemoire(null); } }; return (
General Details Attachments Skills Membres
Paragraphe