import { useState } from "react"; import { LuPencil, LuPlus, LuTrash2, LuX } from "react-icons/lu"; import { errorMessage } from "../api/client.js"; import { useCreateUser, useDeleteUser, useUpdateUser, useUsers, } from "../api/hooks.js"; export function UsersPage() { const { data: users = [], isLoading } = useUsers(); const create = useCreateUser(); const update = useUpdateUser(); const del = useDeleteUser(); const [mode, setMode] = useState(null); const [form, setForm] = useState({ username: "", password: "", role: "operator", id: null, }); const [confirmDelete, setConfirmDelete] = useState(null); function openAdd() { setMode("add"); setForm({ username: "", password: "", role: "operator", id: null }); } function openEdit(u) { setMode("edit"); setForm({ username: u.username, password: "", role: u.role, id: u.id }); } function closeForm() { setMode(null); } function onSubmit(e) { e.preventDefault(); if (mode === "add") { create.mutate( { username: form.username, password: form.password, role: form.role, }, { onSuccess: closeForm }, ); } else { const body = { id: form.id, role: form.role }; if (form.password) body.password = form.password; update.mutate(body, { onSuccess: closeForm }); } } const mutation = mode === "add" ? create : update; return (
| Username | Role | |
|---|---|---|
| {u.username} | {u.role} |