import { useRef, useState } from "preact/hooks"; const mismatchMessage = "Passwords do not match."; export default function PasswordConfirmationFields() { const [password, setPassword] = useState(""); const [passwordConfirm, setPasswordConfirm] = useState(""); const confirmInput = useRef(null); const passwordsDoNotMatch = passwordConfirm.length > 0 && password !== passwordConfirm; function updatePassword(value: string) { setPassword(value); const confirmation = confirmInput.current; if (confirmation) { confirmation.setCustomValidity( confirmation.value && value !== confirmation.value ? mismatchMessage : "", ); } } function updatePasswordConfirm(value: string) { setPasswordConfirm(value); confirmInput.current?.setCustomValidity( value && password !== value ? mismatchMessage : "", ); } return (
updatePassword(event.currentTarget.value)} />
updatePasswordConfirm(event.currentTarget.value)} /> {passwordsDoNotMatch && (

{mismatchMessage}

)}
); }