import type { ProcessRuleResponse } from '@/models/datasets' import * as React from 'react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import { indexMethodIcon, retrievalIcon } from '@/app/components/datasets/create/icons' import { IndexingType } from '@/app/components/datasets/create/step-two' import { FieldInfo } from '@/app/components/datasets/documents/detail/metadata' import { ProcessMode } from '@/models/datasets' import { RETRIEVE_METHOD } from '@/types/app' type RuleDetailProps = { sourceData?: ProcessRuleResponse indexingType?: IndexingType retrievalMethod?: RETRIEVE_METHOD } const RuleDetail = ({ sourceData, indexingType, retrievalMethod }: RuleDetailProps) => { const { t } = useTranslation() const getValue = useCallback( (field: string) => { let value = '-' switch (field) { case 'mode': value = !sourceData?.mode ? value : sourceData.mode === ProcessMode.general ? (t(($) => $['embedding.custom'], { ns: 'datasetDocuments' }) as string) : `${t(($) => $['embedding.hierarchical'], { ns: 'datasetDocuments' })} ยท ${ sourceData?.rules?.parent_mode === 'paragraph' ? t(($) => $['parentMode.paragraph'], { ns: 'dataset' }) : t(($) => $['parentMode.fullDoc'], { ns: 'dataset' }) }` break } return value }, [sourceData, t], ) return (
$['embedding.mode'], { ns: 'datasetDocuments' })} displayedValue={getValue('mode')} /> $['stepTwo.indexMode'], { ns: 'datasetCreation' })} displayedValue={ t( ($) => $[`stepTwo.${indexingType === IndexingType.ECONOMICAL ? 'economical' : 'qualified'}`], { ns: 'datasetCreation' }, ) as string } valueIcon={ } /> $['form.retrievalSetting.title'], { ns: 'datasetSettings' })} displayedValue={t( ($) => $[ `retrieval.${indexingType === IndexingType.ECONOMICAL ? 'keyword_search' : (retrievalMethod ?? 'semantic_search')}.title` ], { ns: 'dataset' }, )} valueIcon={ } />
) } export default React.memo(RuleDetail)