import { Button, Group, Space, Text, Title } from "@mantine/core"; import { useModals } from "@mantine/modals"; import { useEffect, useState } from "react"; import { TbPlus } from "react-icons/tb"; import ManageUserTable from "../../components/admin/ManageUserTable"; import showCreateUserModal from "../../components/admin/showCreateUserModal"; import userService from "../../services/user.service"; import User from "../../types/user.type"; import toast from "../../utils/toast.util"; const Users = () => { const [users, setUsers] = useState([]); const [isLoading, setIsLoading] = useState(true); const modals = useModals(); const getUsers = () => { setIsLoading(true); userService.list().then((users) => { setUsers(users); setIsLoading(false); }); }; const deleteUser = (user: User) => { modals.openConfirmModal({ title: `Delete ${user.username}?`, children: ( Do you really want to delete {user.username} and all his shares? ), labels: { confirm: "Delete", cancel: "Cancel" }, confirmProps: { color: "red" }, onConfirm: async () => { userService .remove(user.id) .then(() => setUsers(users.filter((v) => v.id != user.id))) .catch(toast.axiosError); }, }); }; useEffect(() => { getUsers(); }, []); return ( <> User management ); }; export default Users;