import { Button, Center, Container, Group, Paper, PasswordInput, Stack, Text, TextInput, Title, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import { useModals } from "@mantine/modals"; import { useRouter } from "next/router"; import * as yup from "yup"; import useUser from "../../hooks/user.hook"; import authService from "../../services/auth.service"; import userService from "../../services/user.service"; import toast from "../../utils/toast.util"; const Account = () => { const user = useUser(); const modals = useModals(); const router = useRouter(); const accountForm = useForm({ initialValues: { username: user?.username, email: user?.email, }, validate: yupResolver( yup.object().shape({ email: yup.string().email(), username: yup.string().min(3), }) ), }); const passwordForm = useForm({ initialValues: { oldPassword: "", password: "", }, validate: yupResolver( yup.object().shape({ oldPassword: yup.string().min(8), password: yup.string().min(8), }) ), }); if (!user) { router.push("/"); return; } return ( My account Account Info
userService .updateCurrentUser({ username: values.username, email: values.email, }) .then(() => toast.success("User updated successfully")) .catch(toast.axiosError) )} >
Password
authService .updatePassword(values.oldPassword, values.password) .then(() => { toast.success("Password updated successfully"); passwordForm.reset(); }) .catch(toast.axiosError) )} >
); }; export default Account;