import cls from "classnames"; import { ExtractorUploadButton, LinearButton, } from "../pdf-upload-button/index"; import { useState } from "react"; import MdViewer from "../md-viewer"; import PDFViewerMemo from "../pdf-viewer"; import LoadingIcon from "../../components/loading-icon"; import emptySvg from "@/assets/svg/empty.svg"; import { useIntl, FormattedMessage } from "react-intl"; import { useJobExtraction } from "@/store/jobProgress"; import { postReUploadExtractTask } from "@/api/extract"; import { useParams } from "react-router-dom"; interface IPdfExtractionProps { className?: string; } const PdfExtraction = ({ className = "" }: IPdfExtractionProps) => { const { refreshQueue, taskInfo, isLoading: queueLoading, isError: compileError, } = useJobExtraction(); const [pdfState, setPdfState] = useState({ page: 1, }); const curPage = pdfState.page; const { jobID } = useParams(); const { formatMessage } = useIntl(); const [fullScreen, setFullScreen] = useState(false); const afterUploadSuccess = () => { refreshQueue(); }; const isQueueAndExtract = queueLoading; const hiddenQueuePage = !isQueueAndExtract ? "!w-0 !h-0 overflow-hidden " : ""; const hiddenResultPage = isQueueAndExtract ? "!w-0 !h-0 overflow-hidden" : ""; const getLayoutClassName = (_fullScreen?: boolean) => { return { left: _fullScreen ? "!w-0 !h-0 overflow-hidden hidden" : "min-w-[50%]", right: _fullScreen ? "w-full " : "min-w-[50%]", }; }; const afterAsyncCheck = async () => { return Promise.resolve(true); }; const getExtractionStatusText = (rank: number) => { switch (true) { case rank > 1: return ( ); case rank === 1: return formatMessage({ id: "extractor.common.extracting" }); default: return ""; } }; return ( <>
{getExtractionStatusText(taskInfo?.rank)}
{!compileError ? (
setPdfState(p)} />
setFullScreen(!!bool)} />
) : (
emptySvg {formatMessage({ id: "extractor.failed", })} { await postReUploadExtractTask(String(jobID)); refreshQueue(); }} className="mt-4" text={formatMessage({ id: "common.retry", })} />
)}
); }; export default PdfExtraction;