diff --git a/src/components/Footer/Footer.jsx b/src/components/Footer/Footer.jsx index 49759f6..a6004ef 100644 --- a/src/components/Footer/Footer.jsx +++ b/src/components/Footer/Footer.jsx @@ -1,3 +1,4 @@ +// src/components/Footer/Footer.jsx import React, { useEffect, useState } from 'react'; import { fetchDatabaseVersion, triggerFullImport } from '../../services/api'; @@ -5,27 +6,32 @@ function Footer() { const [dbVersion, setDbVersion] = useState(null); const [importing, setImporting] = useState(false); const [error, setError] = useState(null); - const [importResult, setImportResult] = useState(null); // store import result for modal + const [showModal, setShowModal] = useState(false); + const [modalMessage, setModalMessage] = useState(''); // Fetch DB version on mount useEffect(() => { fetchDatabaseVersion() .then(data => setDbVersion(data.database_version)) - .catch(err => setError(err.message)); + .catch(err => { + setDbVersion('N/A'); + setModalMessage(`Failed to fetch DB version: ${err.message}`); + setShowModal(true); + }); }, []); const handleImport = async () => { setImporting(true); setError(null); try { - const result = await triggerFullImport(); // result contains message, version, sets, cards, duration - setImportResult(result); - - // Update displayed DB version - const versionData = await fetchDatabaseVersion(); - setDbVersion(versionData.database_version); + const result = await triggerFullImport(); + const data = await fetchDatabaseVersion(); + setDbVersion(data.database_version); + setModalMessage(result.message || 'Import completed'); + setShowModal(true); } catch (err) { - setError(err.message); + setModalMessage(`Import failed: ${err.message}`); + setShowModal(true); } finally { setImporting(false); } @@ -38,18 +44,12 @@ function Footer() { - {error && {error}} - {importResult && ( + {showModal && (
-

Import Result

-

{importResult.message}

-

Version: {importResult.version}

-

Sets imported: {importResult.sets?.total || 'N/A'}

-

Cards imported: {importResult.cards?.total || 'N/A'}

-

Duration: {importResult.duration_seconds}s

- +
{modalMessage}
+
)}