I have a Formik registration form with a password field and a password confirmation field. I would like to prevent copy and paste in the Password Confirmation field. Is there a way directly through Formik? But I can’t find anything in the docs. Otherwise what is the best solution?
import React, { useId, useState } from 'react';
import { Field, FormikProps } from 'formik';
import { EyeIcon, EyeSlashIcon } from '@heroicons/react/24/outline';
import { InputField } from '@monorepo/kit-ui';
import { useTranslation } from 'react-i18next';
import { IRegisterForm } from '../../types';
interface ConfirmPasswordFieldProps {
formik: FormikProps<IRegisterForm>;
}
const ConfirmPasswordField = ({ formik }: ConfirmPasswordFieldProps) => {
const { t } = useTranslation();
const { errors, touched } = formik;
const id: string = useId();
const [showPassword, setShowPassword] = useState(false);
const togglePasswordVisibility = () => setShowPassword(!showPassword);
const iconProps = {
onClick: togglePasswordVisibility,
css: { cursor: 'pointer' },
};
return (
<Field
component={InputField}
id={id}
type={showPassword ? 'text' : 'password'}
name="confirmPassword"
placeholder={t(
'auth.createAccount.input.passwordConfirmation.placeholder',
)}
required
helperText={touched.confirmPassword && errors.confirmPassword}
error={errors.confirmPassword && touched.confirmPassword}
endAdornment={
showPassword ? (
<EyeSlashIcon {...iconProps} />
) : (
<EyeIcon {...iconProps} />
)
}
/>
);
};
export default ConfirmPasswordField;
Prevent copy and paste in this Formik field