Commit 2c283704 authored by tom's avatar tom

migrate to pin input

parent 39ac3399
import { FormControl, Input } from '@chakra-ui/react'; import { HStack, PinInput, PinInputField, Text } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import { useController, useFormContext } from 'react-hook-form'; import { useController, useFormContext } from 'react-hook-form';
import type { OtpCodeFormFields } from '../types'; import type { OtpCodeFormFields } from '../types';
import InputPlaceholder from 'ui/shared/InputPlaceholder';
const AuthModalFieldOtpCode = () => { const AuthModalFieldOtpCode = () => {
const { control } = useFormContext<OtpCodeFormFields>(); const { control } = useFormContext<OtpCodeFormFields>();
const { field, fieldState, formState } = useController<OtpCodeFormFields, 'code'>({ const { field, fieldState, formState } = useController<OtpCodeFormFields, 'code'>({
...@@ -17,19 +15,19 @@ const AuthModalFieldOtpCode = () => { ...@@ -17,19 +15,19 @@ const AuthModalFieldOtpCode = () => {
const isDisabled = formState.isSubmitting; const isDisabled = formState.isSubmitting;
return ( return (
<FormControl variant="floating" isDisabled={ isDisabled } isRequired size="md"> <>
<Input <HStack>
{ ...field } <PinInput otp placeholder="-" { ...field } isDisabled={ isDisabled } isInvalid={ Boolean(fieldState.error) }>
required <PinInputField borderRadius="base"/>
isInvalid={ Boolean(fieldState.error) } <PinInputField borderRadius="base"/>
isDisabled={ isDisabled } <PinInputField borderRadius="base"/>
type="number" <PinInputField borderRadius="base"/>
minLength={ 6 } <PinInputField borderRadius="base"/>
maxLength={ 6 } <PinInputField borderRadius="base"/>
autoComplete="one-time-code" </PinInput>
/> </HStack>
<InputPlaceholder text="Confirmation code" error={ fieldState.error }/> { fieldState.error?.message && <Text color="error" fontSize="xs" mt={ 1 }>{ fieldState.error.message }</Text> }
</FormControl> </>
); );
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment