import { z } from "zod"; import { useZodForm } from "~/lib/zodForm"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "~/components/custom_ui/form"; import Input from "~/components/custom_ui/input"; import { Button, buttonVariants } from "~/components/ui/button"; import toast from "react-hot-toast"; import { customErrorMapWrapper } from "~/hooks/locale"; import { api } from "~/utils/api"; import { useTranslation } from "~/providers/I18nProvider"; import type { UsersId } from "~/schemas/public/Users"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "~/components/ui/dialog"; import { Separator } from "~/components/ui/separator"; import { Label } from "~/components/ui/label"; import { useState } from "react"; import { generatePassword } from "~/lib/basicPwGenerator"; import { cn } from "~/lib/utils"; import { Eye, EyeOff } from "lucide-react"; import { useStrongPassword } from "~/hooks/useStrongPassword"; export const OverridePasswordForm = ({ id }: { id: UsersId }) => { const { isVisible, getStrengthColor, passwordRefine, getStrengthTxt, strengthScore, toggleVisibility, } = useStrongPassword(); const OverridePasswordFormSchema = z .object({ password: z.string(), }) .superRefine(({ password }, refinementContext) => { passwordRefine({ password, refinementContext, path: "password", }); }); type OverridePasswordFormValues = z.infer; const { locale, t } = useTranslation(); z.setErrorMap(customErrorMapWrapper(locale)); const form = useZodForm({ schema: OverridePasswordFormSchema, defaultValues: { password: "", }, }); const { mutate } = api.auth.OverridePassword.useMutation({ onSuccess: () => { toast.success(t.overridePw.pwAggiornata); form.reset(); }, onError: (error) => { toast.error(error.message); }, }); 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"); }} aria-invalid={form.getFieldState("password").invalid} aria-describedby="password-strength" />
)} /> ); };