import { Accordion, Button, Group, PasswordInput, Stack, Switch, TextInput, Title, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import { ModalsContextProps } from "@mantine/modals/lib/context"; import * as yup from "yup"; import userService from "../../services/user.service"; import User from "../../types/user.type"; import toast from "../../utils/toast.util"; const showUpdateUserModal = ( modals: ModalsContextProps, user: User, getUsers: () => void ) => { return modals.openModal({ title: Update {user.username}, children: , }); }; const Body = ({ user, modals, getUsers, }: { modals: ModalsContextProps; user: User; getUsers: () => void; }) => { const accountForm = useForm({ initialValues: { username: user.username, email: user.email, isAdmin: user.isAdmin, }, validate: yupResolver( yup.object().shape({ email: yup.string().email(), username: yup.string().min(3), }) ), }); const passwordForm = useForm({ initialValues: { password: "", }, validate: yupResolver( yup.object().shape({ password: yup.string().min(8), }) ), }); return (
{ userService .update(user.id, values) .then(() => { getUsers(); modals.closeAll(); }) .catch(toast.axiosError); })} >
Change password
{ userService .update(user.id, { password: values.password, }) .then(() => toast.success("Password changed successfully")) .catch(toast.axiosError); })} >
); }; export default showUpdateUserModal;