import { Button, Modal, Spin } from "antd"; import { useState } from "react"; import { getImportStatus, importPoints } from "../../api.js"; import { LoadingStage } from "./LoadingStage.jsx"; import { ReportStage } from "./ReportStage.jsx"; import { CheckCircleOutlined, CloseCircleOutlined, LoadingOutlined } from "@ant-design/icons"; import { useUpdateLayerCounter } from "../../stores/useUpdateLayerCounter.js"; export const PointsFileUploadModal = ({onClose, isOpened}) => { const [fileId, setFileId] = useState(); const [report, setReport] = useState(); const [isImporting, setIsImporting] = useState(false); const [isReportStage, setIsReportStage] = useState(false); const [isError, setIsError] = useState(false); const [importStatus, setImportStatus] = useState("Импортируем точки...") const { toggleUpdateCounter } = useUpdateLayerCounter(); const onImportPoints = async () => { setIsImporting(true); try { await importPoints(fileId); const myInterval = setInterval(async () => { const response = await getImportStatus(); setImportStatus(response.task_status); if (response.task_status === "Перерасчет ML завершен" || !isOpened) { setReport(response.data); setIsImporting(false); toggleUpdateCounter(); clearInterval(myInterval); } }, 2000); toggleUpdateCounter(); } catch (e) { setIsError(true); setIsImporting(false); } } const getFooter = () => { if (isError) return [ ] if (isReportStage) return [ ] if (report) return [ ] return [ , , ] } const getContent = () => { if (isError) return (