|
'use client' |
|
import type { FC } from 'react' |
|
import React from 'react' |
|
import Input from './input' |
|
import cn from '@/utils/classnames' |
|
import Tooltip from '@/app/components/base/tooltip' |
|
|
|
type Props = { |
|
className?: string |
|
label: string |
|
labelClassName?: string |
|
value: string | number |
|
onChange: (value: string | number) => void |
|
isRequired?: boolean |
|
placeholder?: string |
|
isNumber?: boolean |
|
tooltip?: string |
|
} |
|
|
|
const Field: FC<Props> = ({ |
|
className, |
|
label, |
|
labelClassName, |
|
value, |
|
onChange, |
|
isRequired = false, |
|
placeholder = '', |
|
isNumber = false, |
|
tooltip, |
|
}) => { |
|
return ( |
|
<div className={cn(className)}> |
|
<div className='flex py-[7px]'> |
|
<div className={cn(labelClassName, 'flex items-center h-[18px] text-[13px] font-medium text-gray-900')}>{label} </div> |
|
{isRequired && <span className='ml-0.5 text-xs font-semibold text-[#D92D20]'>*</span>} |
|
{tooltip && ( |
|
<Tooltip |
|
popupContent={ |
|
<div className='w-[200px]'>{tooltip}</div> |
|
} |
|
triggerClassName='ml-0.5 w-4 h-4' |
|
/> |
|
)} |
|
</div> |
|
<Input |
|
value={value} |
|
onChange={onChange} |
|
placeholder={placeholder} |
|
isNumber={isNumber} |
|
/> |
|
</div> |
|
) |
|
} |
|
export default React.memo(Field) |
|
|