'use client'; import { updateUserPassword } from '@/services/user/user'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardHeader, CardTitle } from '@workspace/ui/components/card'; import { Form, FormControl, FormField, FormItem, FormMessage } from '@workspace/ui/components/form'; import { Input } from '@workspace/ui/components/input'; import { useTranslations } from 'next-intl'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; import { z } from 'zod'; export default function ChangePassword() { const t = useTranslations('profile.accountSettings'); const FormSchema = z .object({ password: z.string(), repeat_password: z.string(), }) .superRefine(({ password, repeat_password }, ctx) => { if (password !== repeat_password) { ctx.addIssue({ code: z.ZodIssueCode.custom, message: t('passwordMismatch'), path: ['repeat_password'], }); } }); const form = useForm>({ resolver: zodResolver(FormSchema), }); async function onSubmit(data: z.infer) { await updateUserPassword({ password: data.password, } as API.UpdateUserPasswordRequest); toast.success(t('updateSuccess')); form.setValue('password', ''); form.setValue('repeat_password', ''); } return ( {t('accountSettings')}
{t('loginPassword')}
( )} /> ( )} />
); }