import React, { useState } from 'react'; import constants from 'utils/strings/constants'; import { Form } from 'react-bootstrap'; import { Formik, FormikHelpers } from 'formik'; import * as Yup from 'yup'; import SubmitButton from './SubmitButton'; import styled from 'styled-components'; import Visibility from './icons/Visibility'; import VisibilityOff from './icons/VisibilityOff'; interface formValues { passphrase: string; } interface Props { callback: (passphrase: string, setFieldError) => void; fieldType: string; placeholder: string; buttonText: string; } const Group = styled.div` position: relative; `; const Button = styled.button` background: transparent; border: none; width: 46px; height: 34px; position: absolute; top: 1px; right: 1px; border-radius: 5px; align-items: center; `; export default function SingleInputForm(props: Props) { const [loading, SetLoading] = useState(false); const [showPassword, setShowPassword] = useState(false); const submitForm = async ( values: formValues, { setFieldError }: FormikHelpers ) => { SetLoading(true); await props.callback(values.passphrase, setFieldError); SetLoading(false); }; return ( initialValues={{ passphrase: '' }} onSubmit={submitForm} validationSchema={Yup.object().shape({ passphrase: Yup.string().required(constants.REQUIRED), })} validateOnChange={false} validateOnBlur={false}> {({ values, touched, errors, handleChange, handleSubmit }) => (
{props.fieldType === 'password' && ( )} {errors.passphrase}
)} ); }