| '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 | |
| hasSwitch?: boolean | |
| onSwitchChange?: (key: string, enable: boolean) => void | |
| } | |
| const VALUE_LIMIT = { | |
| default: 0.7, | |
| step: 0.01, | |
| min: 0, | |
| max: 1, | |
| } | |
| const key = 'score_threshold' | |
| const ScoreThresholdItem: FC<Props> = ({ | |
| className, | |
| value, | |
| enable, | |
| onChange, | |
| hasSwitch, | |
| onSwitchChange, | |
| }) => { | |
| 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} | |
| hasSwitch={hasSwitch} | |
| onSwitchChange={onSwitchChange} | |
| /> | |
| ) | |
| } | |
| export default React.memo(ScoreThresholdItem) | |