init projet
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
// src/pages/Users/Users.jsx
|
||||
// Page Utilisateurs : gestion des utilisateurs (simulation)
|
||||
import { useState } from 'react';
|
||||
import { Plus, Edit, Trash2 } from 'lucide-react';
|
||||
import DataTable from '../../components/common/DataTable';
|
||||
import Button from '../../components/common/Button';
|
||||
import styles from './Users.module.css';
|
||||
|
||||
/* Données simulées pour les utilisateurs */
|
||||
const mockUsers = [
|
||||
{ id: 1, nom: 'Alice Dupont', email: 'alice@xefi.fr', role: 'Admin', actif: true },
|
||||
{ id: 2, nom: 'Bob Martin', email: 'bob@xefi.fr', role: 'Utilisateur', actif: true },
|
||||
{ id: 3, nom: 'Charlie Durand', email: 'charlie@xefi.fr', role: 'Utilisateur', actif: false }
|
||||
];
|
||||
|
||||
export default function Users() {
|
||||
const [users, setUsers] = useState(mockUsers);
|
||||
|
||||
function handleAdd() {
|
||||
console.log('Ajouter utilisateur');
|
||||
}
|
||||
|
||||
function handleEdit(user) {
|
||||
console.log('Modifier utilisateur', user);
|
||||
}
|
||||
|
||||
function handleDelete(user) {
|
||||
setUsers(prev => prev.map(u => u.id === user.id ? { ...u, actif: false } : u));
|
||||
}
|
||||
|
||||
const columns = [
|
||||
{ key: 'nom', label: 'Nom' },
|
||||
{ key: 'email', label: 'Email' },
|
||||
{ key: 'role', label: 'Rôle' },
|
||||
{
|
||||
key: 'actif',
|
||||
label: 'Statut',
|
||||
render: (val) => val ? 'Actif' : 'Inactif'
|
||||
},
|
||||
{
|
||||
key: 'actions',
|
||||
label: 'Actions',
|
||||
render: (val, row) => (
|
||||
<div className={styles.actions}>
|
||||
<button className={styles.actionBtn} onClick={() => handleEdit(row)}>
|
||||
<Edit size={14} />
|
||||
Modifier
|
||||
</button>
|
||||
<button className={styles.actionBtn} onClick={() => handleDelete(row)}>
|
||||
<Trash2 size={14} />
|
||||
Désactiver
|
||||
</button>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<div className={styles.page}>
|
||||
<div className={styles.header}>
|
||||
<h1 className={styles.title}>Utilisateurs</h1>
|
||||
<Button variant="primary" onClick={handleAdd}>
|
||||
<Plus size={14} />
|
||||
Ajouter
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<DataTable
|
||||
columns={columns}
|
||||
data={users}
|
||||
pageSize={50}
|
||||
emptyMessage="Aucun utilisateur trouvé."
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user