import type { I18nKeysByPrefix } from '@/types/i18n' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' type IndexingTechnique = I18nKeysByPrefix<'dataset', 'indexingTechnique.'> type IndexingMethod = I18nKeysByPrefix<'dataset', 'indexingMethod.'> export const useKnowledge = () => { const { t } = useTranslation() const formatIndexingTechnique = useCallback((indexingTechnique: IndexingTechnique) => { return t(`indexingTechnique.${indexingTechnique}`, { ns: 'dataset' }) as string }, [t]) const formatIndexingMethod = useCallback((indexingMethod: IndexingMethod, isEco?: boolean) => { if (isEco) return t('indexingMethod.invertedIndex', { ns: 'dataset' }) return t(`indexingMethod.${indexingMethod}`, { ns: 'dataset' }) as string }, [t]) const formatIndexingTechniqueAndMethod = useCallback((indexingTechnique: IndexingTechnique, indexingMethod: IndexingMethod) => { let result = formatIndexingTechnique(indexingTechnique) if (indexingMethod) result += ` ยท ${formatIndexingMethod(indexingMethod, indexingTechnique === 'economy')}` return result }, [formatIndexingTechnique, formatIndexingMethod]) return { formatIndexingTechnique, formatIndexingMethod, formatIndexingTechniqueAndMethod, } }