| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { useSelectParserList } from '@/hooks/user-setting-hooks';
- import { useEffect, useMemo, useState } from 'react';
-
- const ParserListMap = new Map([
- [
- ['pdf'],
- [
- 'naive',
- 'resume',
- 'manual',
- 'paper',
- 'book',
- 'laws',
- 'presentation',
- 'one',
- 'qa',
- ],
- ],
- [
- ['doc', 'docx'],
- ['naive', 'resume', 'book', 'laws', 'one', 'qa', 'manual'],
- ],
- [
- ['xlsx', 'xls'],
- ['naive', 'qa', 'table', 'one'],
- ],
- [['ppt', 'pptx'], ['presentation']],
- [
- ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tif', 'tiff', 'webp', 'svg', 'ico'],
- ['picture'],
- ],
- [['txt'], ['naive', 'resume', 'book', 'laws', 'one', 'qa', 'table']],
- [['csv'], ['naive', 'resume', 'book', 'laws', 'one', 'qa', 'table']],
- [['md'], ['naive', 'qa']],
- [['json'], ['naive']],
- ]);
-
- const getParserList = (
- values: string[],
- parserList: Array<{
- value: string;
- label: string;
- }>,
- ) => {
- return parserList.filter((x) => values?.some((y) => y === x.value));
- };
-
- export const useFetchParserListOnMount = (
- documentId: string,
- parserId: string,
- documentExtension: string,
- ) => {
- const [selectedTag, setSelectedTag] = useState('');
- const parserList = useSelectParserList();
-
- const nextParserList = useMemo(() => {
- const key = [...ParserListMap.keys()].find((x) =>
- x.some((y) => y === documentExtension),
- );
- if (key) {
- const values = ParserListMap.get(key);
- return getParserList(values ?? [], parserList);
- }
-
- return getParserList(
- ['naive', 'resume', 'book', 'laws', 'one', 'qa', 'table'],
- parserList,
- );
- }, [parserList, documentExtension]);
-
- useEffect(() => {
- setSelectedTag(parserId);
- }, [parserId, documentId]);
-
- const handleChange = (tag: string) => {
- // const nextSelectedTag = checked ? tag : selectedTag;
- setSelectedTag(tag);
- };
-
- return { parserList: nextParserList, handleChange, selectedTag };
- };
|