| import { LanguageTranslationMap } from '@/constants/common'; | |
| import { IKnowledgeFile } from '@/interfaces/database/knowledge'; | |
| import { IChangeParserConfigRequestBody } from '@/interfaces/request/document'; | |
| import { useCallback, useState } from 'react'; | |
| import { useTranslation } from 'react-i18next'; | |
| import { useSetModalState } from './commonHooks'; | |
| import { useSetDocumentParser } from './documentHooks'; | |
| import { useOneNamespaceEffectsLoading } from './storeHooks'; | |
| import { useSaveSetting } from './userSettingHook'; | |
| export const useChangeDocumentParser = (documentId: string) => { | |
| const setDocumentParser = useSetDocumentParser(); | |
| const { | |
| visible: changeParserVisible, | |
| hideModal: hideChangeParserModal, | |
| showModal: showChangeParserModal, | |
| } = useSetModalState(); | |
| const loading = useOneNamespaceEffectsLoading('kFModel', [ | |
| 'document_change_parser', | |
| ]); | |
| const onChangeParserOk = useCallback( | |
| async (parserId: string, parserConfig: IChangeParserConfigRequestBody) => { | |
| const ret = await setDocumentParser(parserId, documentId, parserConfig); | |
| if (ret === 0) { | |
| hideChangeParserModal(); | |
| } | |
| }, | |
| [hideChangeParserModal, setDocumentParser, documentId], | |
| ); | |
| return { | |
| changeParserLoading: loading, | |
| onChangeParserOk, | |
| changeParserVisible, | |
| hideChangeParserModal, | |
| showChangeParserModal, | |
| }; | |
| }; | |
| export const useSetSelectedRecord = <T = IKnowledgeFile>() => { | |
| const [currentRecord, setCurrentRecord] = useState<T>({} as T); | |
| const setRecord = (record: T) => { | |
| setCurrentRecord(record); | |
| }; | |
| return { currentRecord, setRecord }; | |
| }; | |
| export const useChangeLanguage = () => { | |
| const { i18n } = useTranslation(); | |
| const saveSetting = useSaveSetting(); | |
| const changeLanguage = (lng: string) => { | |
| i18n.changeLanguage( | |
| LanguageTranslationMap[lng as keyof typeof LanguageTranslationMap], | |
| ); | |
| saveSetting({ language: lng }); | |
| }; | |
| return changeLanguage; | |
| }; | |