dify/web/app/components/workflow/nodes/llm/components/resolution-picker.tsx
2024-07-30 17:33:08 +08:00

45 lines
1.3 KiB
TypeScript

'use client'
import type { FC } from 'react'
import React, { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import OptionCard from '@/app/components/workflow/nodes/_base/components/option-card'
import { Resolution } from '@/types/app'
const i18nPrefix = 'workflow.nodes.llm'
type Props = {
value: Resolution
onChange: (value: Resolution) => void
}
const ResolutionPicker: FC<Props> = ({
value,
onChange,
}) => {
const { t } = useTranslation()
const handleOnChange = useCallback((value: Resolution) => {
return () => {
onChange(value)
}
}, [onChange])
return (
<div className='flex items-center justify-between'>
<div className='mr-2 text-xs font-medium text-gray-500 uppercase'>{t(`${i18nPrefix}.resolution.name`)}</div>
<div className='flex items-center space-x-1'>
<OptionCard
title={t(`${i18nPrefix}.resolution.high`)}
onSelect={handleOnChange(Resolution.high)}
selected={value === Resolution.high}
/>
<OptionCard
title={t(`${i18nPrefix}.resolution.low`)}
onSelect={handleOnChange(Resolution.low)}
selected={value === Resolution.low}
/>
</div>
</div>
)
}
export default React.memo(ResolutionPicker)