import { memo, useMemo, } from 'react' import { useTranslation } from 'react-i18next' import type { OnFeaturesChange } from '../types' import { useFeatures } from '../hooks' import FileUpload from './file-upload' import OpeningStatement from './opening-statement' import type { OpeningStatementProps } from './opening-statement' import SuggestedQuestionsAfterAnswer from './suggested-questions-after-answer' import TextToSpeech from './text-to-speech' import SpeechToText from './speech-to-text' import Citation from './citation' import Moderation from './moderation' export type FeaturePanelProps = { onChange?: OnFeaturesChange openingStatementProps: OpeningStatementProps disabled?: boolean } const FeaturePanel = ({ onChange, openingStatementProps, disabled, }: FeaturePanelProps) => { const { t } = useTranslation() const features = useFeatures(s => s.features) const showAdvanceFeature = useMemo(() => { return features.opening?.enabled || features.suggested?.enabled || features.speech2text?.enabled || features.text2speech?.enabled || features.citation?.enabled }, [features]) const showToolFeature = useMemo(() => { return features.moderation?.enabled }, [features]) return (
{ showAdvanceFeature && (
{t('appDebug.feature.groupChat.title')}
{ features.opening?.enabled && ( ) } { features.suggested?.enabled && ( ) } { features.text2speech?.enabled && ( ) } { features.speech2text?.enabled && ( ) } { features.citation?.enabled && ( ) }
) } { showToolFeature && (
{t('appDebug.feature.groupChat.title')}
{ features.moderation?.enabled && ( ) }
) }
) } export default memo(FeaturePanel)