import React, { useState } from "react"; import Sidebar from "./sidebar.jsx"; const styles = { mainContent: { flexGrow: 1, padding: "20px", }, header: { marginBottom: "20px", }, userManagement: { marginTop: "20px", }, userForm: { display: "grid", gridTemplateColumns: "1fr 1fr auto", gap: "10px", marginBottom: "20px", }, input: { padding: "10px", border: "1px solid #ccc", borderRadius: "5px", }, button: { padding: "10px", backgroundColor: "#28a745", color: "white", border: "none", borderRadius: "5px", cursor: "pointer", }, userTable: { width: "100%", borderCollapse: "collapse", }, thTd: { padding: "10px", border: "1px solid #ccc", textAlign: "left", }, th: { backgroundColor: "#f4f4f4", }, }; function User() { // États pour la gestion des utilisateurs, des logs, des champs du formulaire et des ajustements de points const [users, setUsers] = useState([]); const [logs, setLogs] = useState([]); const [username, setUsername] = useState(""); const [email, setEmail] = useState(""); const [pointsInput, setPointsInput] = useState({}); // Ajout d'un utilisateur const handleAddUser = (e) => { e.preventDefault(); const newUser = { id: Date.now(), username, email, accessLevel: "User", // Niveau d'accès par défaut points: 0, }; setUsers([...users, newUser]); logAction(username, "User added"); setUsername(""); setEmail(""); }; // Suppression d'un utilisateur (fonction présente dans script.js) const handleDeleteUser = (userId) => { const user = users.find((u) => u.id === userId); if (user) { logAction(user.username, "User deleted"); } setUsers(users.filter((u) => u.id !== userId)); }; // Changement du niveau d'accès via le menu déroulant (fonction issue de script.js) const handleChangeAccessLevel = (userId, newLevel) => { setUsers( users.map((user) => { if (user.id === userId) { const oldLevel = user.accessLevel; user.accessLevel = newLevel; logAction( user.username, `Access level changed from ${oldLevel} to ${newLevel}` ); } return user; }) ); }; // Ajustement des points d'un utilisateur (fonction issue de script.js) const handleAdjustPoints = (userId) => { const pointsToAdd = parseInt(pointsInput[userId]) || 0; setUsers( users.map((user) => { if (user.id === userId) { user.points += pointsToAdd; logAction(user.username, `Points adjusted by ${pointsToAdd}`); } return user; }) ); // Réinitialiser la valeur de l'input pour cet utilisateur setPointsInput({ ...pointsInput, [userId]: "" }); }; // Fonction de journalisation des actions (définie dans script.js) const logAction = (username, action) => { const timestamp = new Date().toLocaleString(); setLogs([...logs, { id: Date.now(), username, action, timestamp }]); }; return (

User Management

Manage users from this panel.

{/* Formulaire d'ajout d'utilisateur */}
setUsername(e.target.value)} required /> setEmail(e.target.value)} required />
{/* Tableau des utilisateurs */} {users.map((user) => ( ))}
Username Email Access Level Points Actions
{user.username} {user.email} {/* Menu déroulant pour changer le niveau d'accès */} {user.points} {/* Input et bouton pour ajuster les points */} setPointsInput({ ...pointsInput, [user.id]: e.target.value, }) } /> {/* Bouton de suppression */}
{/* Tableau des logs */}

Login History and Action Logs

{logs.map((log) => ( ))}
Username Action Timestamp
{log.username} {log.action} {log.timestamp}
); } export default User;