import { FieldValues, UseFormRegister } from 'react-hook-form' import { ModelRuntimeParams } from '@janhq/core' import { Slider, Input } from '@janhq/uikit' import { useAtomValue } from 'jotai' import useUpdateModelParameters from '@/hooks/useUpdateModelParameters' import { getActiveThreadIdAtom, getActiveThreadModelRuntimeParamsAtom, } from '@/helpers/atoms/Thread.atom' type Props = { name: string title: string min: number max: number step: number value: number register: UseFormRegister } const SliderRightPanel: React.FC = ({ name, title, min, max, step, value, register, }) => { const { updateModelParameter } = useUpdateModelParameters() const threadId = useAtomValue(getActiveThreadIdAtom) const activeModelParams = useAtomValue(getActiveThreadModelRuntimeParamsAtom) const onValueChanged = (e: number[]) => { if (!threadId || !activeModelParams) return const updatedModelParams: ModelRuntimeParams = { ...activeModelParams, [name]: Number(e[0]), } updateModelParameter(threadId, updatedModelParams) } return (

{title}

parseInt(v), })} value={[value]} onValueChange={onValueChanged} min={min} max={max} step={step} />

{min}

{max / 2}

{max}

onValueChanged([Number(e.target.value)])} />
) } export default SliderRightPanel