mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-29 17:45:12 +08:00
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
'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)
|