import { useContext, useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { userContext } from "../../contexts/userContext"; import { deleteFileLib, readFileLibDatabase } from "../../controllers/API"; import { captureAndAlertRequestErrorHoc } from "../../controllers/request"; import { useTable } from "../../util/hook"; import {DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem} from "../../components/ui/dropdown-menu"; import CreateModal from "./components/createModel" import RenameModal from "./components/renameModel" import MoveModal from "./components/moveModel"; import addIcon from "../../assets/knowledge/add-icon.png"; import folderIcon from "../../assets/knowledge/folder-icon.png"; import knowledgeIcon from "../../assets/knowledge/knowledge-icon.png"; import duihuaGengduo from "../../assets/chat/duihua-gengduo.png"; import writeIcon from "../../assets/knowledge/write-icon.png"; import moveIcon from "../../assets/knowledge/move-icon.png"; import exportIcon from "../../assets/knowledge/export-icon.png"; import deleteIcon from "../../assets/knowledge/delete-icon.png"; import noFolderIcon from "../../assets/knowledge/no-folder-icon.png"; import { useNavigate } from "react-router-dom"; export default function FileLibPage() { const [open, setOpen] = useState(false); const [renameOpen, setRenameOpen] = useState(false); const [moveOpen, setMoveOpen] = useState(false); const { user } = useContext(userContext); const [parentId, setParentId] = useState('0') const [titleArray, setTitleArray] = useState([]); const [folderShow, setFolderShow] = useState(false) const [type, setType] = useState(1) const [data, setData] = useState({}) const navigate = useNavigate() const { page, pageSize, data: datalist, total, loading, setPage, search, reload } = useTable({},(param) => readFileLibDatabase(param.page, 10000, param.keyword, parentId) ) useEffect(() => { reload() }, []) // Delete const { delShow, idRef, close, delConfirm } = useDelete(); const handleDelete = () => { captureAndAlertRequestErrorHoc(deleteFileLib(idRef.current.id).then(res => { reload(); close(); })); } const handleDetail = (el) => { if(el.type == 1){ reload(); titleArray.push(el) setTitleArray(titleArray) setParentId(el.id) }else if(el.type == 2){ // @ts-ignore window.libname = el.name navigate("/filelib/" + el.id); }else if(el.type == 3){ } } const backFolder = (parentId, index) => { setParentId(parentId) reload(); if(index == -1){ setTitleArray([]) }else if(index == (titleArray.length - 1)){ return; }else{ titleArray.splice(index+1) } } // 进详情页前缓存 page, 临时方案 const handleCachePage = () => { // @ts-ignore window.LibPage = page } useEffect(() => { // @ts-ignore const _page = window.LibPage if (_page) { setPage(_page); // @ts-ignore delete window.LibPage } else { setPage(1); } }, []) const { t } = useTranslation(); return (
{t('lib.noKnowledgeBase')}