Files
dify/web/app/components/workflow/nodes/llm/components/resolution-picker.tsx

45 lines
1.3 KiB
TypeScript
Raw Normal View History

'use client'
import type { FC } from 'react'
import React, { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
2024-07-30 17:33:08 +08:00
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()
2024-07-30 17:33:08 +08:00
const handleOnChange = useCallback((value: Resolution) => {
return () => {
onChange(value)
}
}, [onChange])
return (
<div className='flex items-center justify-between'>
2025-04-10 17:15:48 +08:00
<div className='mr-2 text-xs font-medium uppercase text-text-secondary'>{t(`${i18nPrefix}.resolution.name`)}</div>
<div className='flex items-center space-x-1'>
2024-07-30 17:33:08 +08:00
<OptionCard
title={t(`${i18nPrefix}.resolution.high`)}
2024-07-30 17:33:08 +08:00
onSelect={handleOnChange(Resolution.high)}
selected={value === Resolution.high}
/>
2024-07-30 17:33:08 +08:00
<OptionCard
title={t(`${i18nPrefix}.resolution.low`)}
2024-07-30 17:33:08 +08:00
onSelect={handleOnChange(Resolution.low)}
selected={value === Resolution.low}
/>
</div>
</div>
)
}
export default React.memo(ResolutionPicker)