import { Button, Modal, Spin } from "antd"; import { useState } from "react"; import { useGetPointsToMergeCount, useMergePointsToDb } from "../../api.js"; import { CheckCircleOutlined, InfoCircleOutlined, LoadingOutlined } from "@ant-design/icons"; import { useMode } from "../../stores/useMode.js"; export const MergePointsModal = ({isOpened, onClose}) => { const {setImportMode} = useMode(); const [isLoading, setIsLoading] = useState(false); const { data: filteredCount, isInitialLoading: isFilteredLoading } = useGetPointsToMergeCount(); const [isSuccess, setIsSuccess] = useState(false); const {mutateAsync: mergePoints} = useMergePointsToDb(); const onConfirm = async () => { setIsLoading(true); try { await mergePoints(); setIsSuccess(true); } catch (e) { // } finally { setIsLoading(false); } } const getFooter = () => { if (isSuccess) return [ , ]; return [ , , ] } const getContent = () => { if (isFilteredLoading) return ; if (isLoading) return (
} /> Добавляем точки...
); if (isSuccess) return (
Добавлено {filteredCount} новых точек
); return (

Подтвердите добавление

В базу данных будет добавлено {filteredCount} новых точек.

); } return ( {getContent()} ); }