| 
                        1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
                        - 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 rounded-lg bg-white px-3
 -         shadow-xs
 -       '>
 -         <input
 -           className='
 -             mr-2 w-full appearance-none
 -             bg-transparent py-[9px] text-xs font-medium
 -             leading-[18px] text-gray-700 outline-none
 -           '
 -           value={value}
 -           placeholder={placeholder}
 -           onChange={handleChange}
 -           onFocus={onFocus}
 -         />
 -         {getValidatedIcon()}
 -       </div>
 -       {getValidatedTip()}
 -     </div>
 -   )
 - }
 - 
 - export default KeyInput
 
 
  |