| FC, | FC, | ||||
| ReactNode, | ReactNode, | ||||
| } from 'react' | } from 'react' | ||||
| import { useEffect, useMemo, useState } from 'react' | |||||
| import { useMemo, useState } from 'react' | |||||
| import useSWR from 'swr' | import useSWR from 'swr' | ||||
| import { useTranslation } from 'react-i18next' | import { useTranslation } from 'react-i18next' | ||||
| import cn from 'classnames' | import cn from 'classnames' | ||||
| import { | import { | ||||
| useTextGenerationCurrentProviderAndModelAndModelList, | useTextGenerationCurrentProviderAndModelAndModelList, | ||||
| } from '../hooks' | } from '../hooks' | ||||
| import { isNullOrUndefined } from '../utils' | |||||
| import ParameterItem from './parameter-item' | import ParameterItem from './parameter-item' | ||||
| import type { ParameterValue } from './parameter-item' | import type { ParameterValue } from './parameter-item' | ||||
| import Trigger from './trigger' | import Trigger from './trigger' | ||||
| } | } | ||||
| } | } | ||||
| const handleInitialParams = () => { | |||||
| const newCompletionParams = { ...completionParams } | |||||
| if (parameterRules.length) { | |||||
| parameterRules.forEach((parameterRule) => { | |||||
| if (!newCompletionParams[parameterRule.name]) { | |||||
| if (!isNullOrUndefined(parameterRule.default)) | |||||
| newCompletionParams[parameterRule.name] = parameterRule.default | |||||
| else | |||||
| delete newCompletionParams[parameterRule.name] | |||||
| } | |||||
| }) | |||||
| onCompletionParamsChange(newCompletionParams) | |||||
| } | |||||
| } | |||||
| useEffect(() => { | |||||
| handleInitialParams() | |||||
| }, [parameterRules]) | |||||
| const handleSelectPresetParameter = (toneId: number) => { | const handleSelectPresetParameter = (toneId: number) => { | ||||
| const tone = TONE_LIST.find(tone => tone.id === toneId) | const tone = TONE_LIST.find(tone => tone.id === toneId) | ||||
| if (tone) { | if (tone) { |