Add filters, stats bar, and fix bugs
ci/woodpecker/push/woodpecker Pipeline was successful

- FilterBar: type chips (Monster/Spell/Trap), owned-only toggle, sort by name/most-owned
- Stats bar: cards in DB, unique owned, total copies
- Card detail panel: type, race, attribute, level/link stars from existing data
- useMemo for filtered+sorted card list (was re-sorting every render)
- Footer: refresh card list after successful full import
- PrintingRow: remove broken custom memo comparator (was comparing static DB field)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-15 21:06:12 +02:00
parent ebf83aa503
commit a0240499e8
4 changed files with 158 additions and 61 deletions
+2 -1
View File
@@ -4,7 +4,7 @@ import { createPortal } from 'react-dom';
import { fetchDatabaseVersion, triggerFullImport } from '../../services/api';
import './Footer.css';
function Footer() {
function Footer({ onImportComplete }) {
const [dbVersion, setDbVersion] = useState(null);
const [importing, setImporting] = useState(false);
const [modalMessage, setModalMessage] = useState('');
@@ -28,6 +28,7 @@ function Footer() {
setDbVersion(data.database_version);
setModalMessage(result.message || 'Import completed');
setShowModal(true);
if (onImportComplete) await onImportComplete();
} catch (err) {
setModalMessage(`Import failed: ${err.message}`);
setShowModal(true);