import { Eye, EyeOff } from "lucide-react"; import { useState } from "react"; import toast from "react-hot-toast"; import { z } from "zod/v4"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "~/components/custom_ui/form"; import { Button } from "~/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "~/components/ui/dialog"; import Input from "~/components/ui/input"; import { Label } from "~/components/ui/label"; import { Separator } from "~/components/ui/separator"; import { useMildPassword } from "~/hooks/usePassword"; import { generatePassword } from "~/lib/basicPwGenerator"; import { cn } from "~/lib/utils"; import { useZodForm } from "~/lib/zodForm"; import { useTranslation } from "~/providers/I18nProvider"; import type { UsersId } from "~/schemas/public/Users"; import { api } from "~/utils/api"; export const OverridePasswordForm = ({ id }: { id: UsersId }) => { const { isVisible, getStrengthColor, passwordRefine, getStrengthTxt, strengthScore, toggleVisibility, maxStrength, } = useMildPassword(); const OverridePasswordFormSchema = z .object({ password: z.string(), }) .superRefine(({ password }, refinementContext) => { passwordRefine({ password, path: "password", refinementContext, }); }); type OverridePasswordFormValues = z.infer; const { locale, t } = useTranslation(); z.config(z.locales[locale]()); const form = useZodForm(OverridePasswordFormSchema, { defaultValues: { password: "", }, }); const { mutate } = api.auth.PasswordOverride.useMutation({ onError: (error) => { toast.error(error.message); }, onSuccess: () => { toast.success(t.overridePw.pwAggiornata); form.reset(); }, }); async function onSubmit(fields: OverridePasswordFormValues) { mutate({ id: id, password: fields.password, }); form.reset(); await form.trigger("password"); } const [resetToken, setResetToken] = useState(""); const { mutate: resetToken_mutate } = api.auth.genPswResetToken.useMutation({ onSuccess: (data) => { setResetToken(data); }, }); return (
Strumento Reset Password Edit

Reset Token

Link

(
{t.auth.signup.password} {" "}
{ field.onChange(e); await form.trigger("password"); }} placeholder="Password" type={isVisible ? "text" : "password"} />
)} /> ); };