import { Accordion, Button, Group, PasswordInput, Stack, Switch, TextInput, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import { ModalsContextProps } from "@mantine/modals/lib/context"; import { FormattedMessage } from "react-intl"; import * as yup from "yup"; import useTranslate, { translateOutsideContext, } from "../../../hooks/useTranslate.hook"; 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, ) => { const t = translateOutsideContext(); return modals.openModal({ title: t("admin.users.edit.update.title", { username: user.username }), children: , }); }; const Body = ({ user, modals, getUsers, }: { modals: ModalsContextProps; user: User; getUsers: () => void; }) => { const t = useTranslate(); const accountForm = useForm({ initialValues: { username: user.username, email: user.email, isAdmin: user.isAdmin, }, validate: yupResolver( yup.object().shape({ email: yup.string().email(t("common.error.invalid-email")), username: yup .string() .min(3, t("common.error.too-short", { length: 3 })), }), ), }); const passwordForm = useForm({ initialValues: { password: "", }, validate: yupResolver( yup.object().shape({ password: yup .string() .min(8, t("common.error.too-short", { length: 8 })), }), ), }); return (
{ userService .update(user.id, values) .then(() => { getUsers(); modals.closeAll(); }) .catch(toast.axiosError); })} >
{ userService .update(user.id, { password: values.password, }) .then(() => toast.success( t("admin.users.edit.update.notify.password.success"), ), ) .catch(toast.axiosError); })} >
); }; export default showUpdateUserModal;