Feat: Add DualRangeSlider #3221 (#5386)

### What problem does this PR solve?

Feat: Add DualRangeSlider #3221

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2025-02-26 17:02:42 +08:00
committed by GitHub
parent cdcaae17c6
commit 63e3398f49
6 changed files with 127 additions and 21 deletions

View File

@ -1,6 +1,7 @@
import { useTranslate } from '@/hooks/common-hooks';
import { Form, Slider } from 'antd';
import { useFormContext } from 'react-hook-form';
import { SingleFormSlider } from '../ui/dual-range-slider';
import {
FormControl,
FormField,
@ -8,7 +9,6 @@ import {
FormLabel,
FormMessage,
} from '../ui/form';
import { FormSlider } from '../ui/slider';
type FieldType = {
similarity_threshold?: number;
@ -51,28 +51,51 @@ const SimilaritySlider = ({
export default SimilaritySlider;
interface SimilaritySliderFormFieldProps {
name?: string;
vectorSimilarityWeightName?: string;
}
export function SimilaritySliderFormField({
name = 'vector_similarity_weight',
vectorSimilarityWeightName = 'vector_similarity_weight',
}: SimilaritySliderFormFieldProps) {
const form = useFormContext();
const { t } = useTranslate('knowledgeDetails');
return (
<FormField
control={form.control}
name={name}
render={({ field }) => (
<FormItem>
<FormLabel>{t('vectorSimilarityWeight')}</FormLabel>
<FormControl>
<FormSlider {...field}></FormSlider>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<>
<FormField
control={form.control}
name={'similarity_threshold'}
render={({ field }) => (
<FormItem>
<FormLabel>{t('similarityThreshold')}</FormLabel>
<FormControl>
<SingleFormSlider
{...field}
max={1}
step={0.01}
></SingleFormSlider>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name={vectorSimilarityWeightName}
render={({ field }) => (
<FormItem>
<FormLabel>{t('vectorSimilarityWeight')}</FormLabel>
<FormControl>
<SingleFormSlider
{...field}
max={1}
step={0.01}
></SingleFormSlider>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
</>
);
}