| '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) | |