import { Link, useParams } from "react-router-dom"; import { Button } from "../../components/ui/button"; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow } from "../../components/ui/table"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "../../components/ui/tabs"; import { ArrowLeft, Filter, RotateCw, Search, X } from "lucide-react"; import { useContext, useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { bsconfirm } from "../../alerts/confirm"; import PaginationComponent from "../../components/PaginationComponent"; import ShadTooltip from "../../components/ShadTooltipComponent"; import { Input } from "../../components/ui/input"; import { Select, SelectContent, SelectGroup, SelectIconTrigger, SelectItem } from "../../components/ui/select1"; import { locationContext } from "../../contexts/locationContext"; import { deleteFile, readFileByLibDatabase, retryKnowledgeFileApi } from "../../controllers/API"; import { captureAndAlertRequestErrorHoc } from "../../controllers/request"; import UploadModal from "../../modals/UploadModal"; import { useTable } from "../../util/hook"; import del from "../../assets/npc/del.png" export default function FilesPage() { const { t } = useTranslation() const { id } = useParams() // 上传 上传成功添加到列表 const [open, setOpen] = useState(false) const [title, setTitle] = useState('') const { page, pageSize, data: datalist, total, setPage, search, reload, filterData, refreshData,loadData } = useTable({}, (param) => readFileByLibDatabase({ ...param, id, name: param.keyword }).then(res => { setHasPermission(res.writeable) return res }) ) // loadData(); setTimeout(() => reload(), 5000); const [hasPermission, setHasPermission] = useState(true) const { appConfig } = useContext(locationContext) // filter const [filter, setFilter] = useState(999) useEffect(() => { filterData({ status: filter }) }, [filter]) useEffect(() => { // @ts-ignore const libname = window.libname // 临时记忆 if (libname) { localStorage.setItem('libname', window.libname) } setTitle(window.libname || localStorage.getItem('libname')) }, []) const handleOpen = (e) => { setOpen(e) reload() } // 删除 const { delShow, idRef, close, delConfim } = useDelete() const handleDelete = () => { captureAndAlertRequestErrorHoc(deleteFile(idRef.current).then(res => { reload() close() })) } const [repeatFiles, setRepeatFiles] = useState([]) // 上传结果展示 const handleUploadResult = (fileCount, failFiles, res) => { const _repeatFiles = res.filter(e => e.status === 3) if (_repeatFiles.length) { setRepeatFiles(_repeatFiles) } else { failFiles.length && bsconfirm({ desc:
{t('lib.fileUploadResult', { total: fileCount, failed: failFiles.length })}
{str}
)}{t('lib.fileData')}