| 'use client' | |
| import type { FC } from 'react' | |
| import React from 'react' | |
| import { useTranslation } from 'react-i18next' | |
| import ParamItem from '.' | |
| type Props = { | |
| className?: string | |
| value: number | |
| onChange: (key: string, value: number) => void | |
| enable: boolean | |
| } | |
| const VALUE_LIMIT = { | |
| default: 2, | |
| step: 1, | |
| min: 1, | |
| max: 10, | |
| } | |
| const key = 'top_k' | |
| const TopKItem: FC<Props> = ({ | |
| className, | |
| value, | |
| enable, | |
| onChange, | |
| }) => { | |
| const { t } = useTranslation() | |
| const handleParamChange = (key: string, value: number) => { | |
| let notOutRangeValue = parseFloat(value.toFixed(2)) | |
| notOutRangeValue = Math.max(VALUE_LIMIT.min, notOutRangeValue) | |
| notOutRangeValue = Math.min(VALUE_LIMIT.max, notOutRangeValue) | |
| onChange(key, notOutRangeValue) | |
| } | |
| return ( | |
| <ParamItem | |
| className={className} | |
| id={key} | |
| name={t(`appDebug.datasetConfig.${key}`)} | |
| tip={t(`appDebug.datasetConfig.${key}Tip`) as string} | |
| {...VALUE_LIMIT} | |
| value={value} | |
| enable={enable} | |
| onChange={handleParamChange} | |
| /> | |
| ) | |
| } | |
| export default React.memo(TopKItem) | |