import { memo, useMemo, } from 'react' import { useTranslation } from 'react-i18next' import { useFeatures } from '../hooks' 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' import Annotation from './annotation/config-param' import type { AnnotationProps } from './annotation/config-param' export type FeaturePanelProps = { openingStatementProps: OpeningStatementProps annotationProps: AnnotationProps } const FeaturePanel = ({ openingStatementProps, annotationProps, }: FeaturePanelProps) => { const { t } = useTranslation() const openingStatement = useFeatures(s => s.openingStatement) const suggestedQuestionsAfterAnswer = useFeatures(s => s.suggestedQuestionsAfterAnswer) const textToSpeech = useFeatures(s => s.textToSpeech) const speechToText = useFeatures(s => s.speechToText) const citation = useFeatures(s => s.citation) const moderation = useFeatures(s => s.moderation) const annotation = useFeatures(s => s.annotation) const showAdvanceFeature = useMemo(() => { return openingStatement.enabled || suggestedQuestionsAfterAnswer.enabled || textToSpeech.enabled || speechToText.enabled || citation.enabled }, [openingStatement, suggestedQuestionsAfterAnswer, textToSpeech, speechToText, citation]) const showToolFeature = useMemo(() => { return moderation.enabled || annotation.enabled }, [moderation, annotation]) return (
{ showAdvanceFeature && (
{t('appDebug.feature.groupChat.title')}
{ openingStatement.enabled && ( ) } { suggestedQuestionsAfterAnswer.enabled && ( ) } { textToSpeech.enabled && ( ) } { speechToText.enabled && ( ) } { citation.enabled && ( ) }
) } { showToolFeature && (
{t('appDebug.feature.groupChat.title')}
{ moderation.enabled && ( ) } { annotation.enabled && ( ) }
) }
) } export default memo(FeaturePanel)