| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | import type { ChangeEvent } from 'react'import {  ValidatedErrorIcon,  ValidatedErrorMessage,  ValidatedSuccessIcon,  ValidatingTip,} from './ValidateStatus'import { ValidatedStatus } from './declarations'import type { ValidatedStatusState } from './declarations'type KeyInputProps = {  value?: string  name: string  placeholder: string  className?: string  onChange: (v: string) => void  onFocus?: () => void  validating: boolean  validatedStatusState: ValidatedStatusState}const KeyInput = ({  value,  name,  placeholder,  className,  onChange,  onFocus,  validating,  validatedStatusState,}: KeyInputProps) => {  const handleChange = (e: ChangeEvent<HTMLInputElement>) => {    const inputValue = e.target.value    onChange(inputValue)  }  const getValidatedIcon = () => {    if (validatedStatusState.status === ValidatedStatus.Error || validatedStatusState.status === ValidatedStatus.Exceed)      return <ValidatedErrorIcon />    if (validatedStatusState.status === ValidatedStatus.Success)      return <ValidatedSuccessIcon />  }  const getValidatedTip = () => {    if (validating)      return <ValidatingTip />    if (validatedStatusState.status === ValidatedStatus.Error)      return <ValidatedErrorMessage errorMessage={validatedStatusState.message ?? ''} />  }  return (    <div className={className}>      <div className="mb-2 text-[13px] font-medium text-gray-800">{name}</div>      <div className='        flex items-center px-3 bg-white rounded-lg        shadow-xs      '>        <input          className='            w-full py-[9px] mr-2            text-xs font-medium text-gray-700 leading-[18px]            appearance-none outline-none bg-transparent          '          value={value}          placeholder={placeholder}          onChange={handleChange}          onFocus={onFocus}        />        {getValidatedIcon()}      </div>      {getValidatedTip()}    </div>  )}export default KeyInput
 |