import { useForm, useWatch } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { Box } from "@mui/material"; import { PasswordChecklist } from "@/components/auth/password-checklist"; import { Button } from "@/components/ui/button"; import { Text } from "@/components/ui/text"; import { FormField } from "@/components/ui/form-field"; import { PasswordField } from "@/components/ui/password-field"; import { invitePasswordStepSchema, type InvitePasswordStepValues, } from "@/domain/team-member-invite/schemas/invite-registration-schema"; import { InviteStepHeader } from "./invite-step-header"; export type InvitePasswordStepProps = { name: string; defaultPassword: string; isSubmitting: boolean; error: string | null; onContinue: (password: string) => void; }; export function InvitePasswordStep({ name, defaultPassword, isSubmitting, error, onContinue, }: InvitePasswordStepProps) { const { register, handleSubmit, control, formState: { errors }, } = useForm({ resolver: zodResolver(invitePasswordStepSchema), defaultValues: { password: defaultPassword, confirmPassword: defaultPassword }, mode: "onTouched", }); const values = useWatch({ control }); const canContinue = invitePasswordStepSchema.safeParse(values).success; return ( onContinue(form.password))} className="flex flex-col gap-4" > {error} ); }