Files
ragflow/web/src/pages/chat/chat-configuration-modal/model-setting.tsx
so95 d5a322a352 Theme switch support (#3568)
### What problem does this PR solve?
- [x] New Feature (non-breaking change which adds functionality)

---------

Co-authored-by: Yingfeng <yingfeng.zhang@gmail.com>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2024-12-10 11:42:04 +08:00

50 lines
1.3 KiB
TypeScript

import classNames from 'classnames';
import { useEffect } from 'react';
import { ISegmentedContentProps } from '../interface';
import LlmSettingItems from '@/components/llm-setting-items';
import { variableEnabledFieldMap } from '@/constants/chat';
import { Variable } from '@/interfaces/database/chat';
import styles from './index.less';
const ModelSetting = ({
show,
form,
initialLlmSetting,
visible,
}: ISegmentedContentProps & {
initialLlmSetting?: Variable;
visible?: boolean;
}) => {
useEffect(() => {
if (visible) {
const values = Object.keys(variableEnabledFieldMap).reduce<
Record<string, boolean>
>((pre, field) => {
pre[field] =
initialLlmSetting === undefined
? true
: !!initialLlmSetting[
variableEnabledFieldMap[
field as keyof typeof variableEnabledFieldMap
] as keyof Variable
];
return pre;
}, {});
form.setFieldsValue(values);
}
}, [form, initialLlmSetting, visible]);
return (
<section
className={classNames({
[styles.segmentedHidden]: !show,
})}
>
{visible && <LlmSettingItems prefix="llm_setting"></LlmSettingItems>}
</section>
);
};
export default ModelSetting;