import React, { useState } from 'react'; import DeckManager from './components/DeckManager'; import DeckList from './components/DeckList'; import LoginForm from './components/LoginForm'; import Navigation from './components/Navigation'; import Collection from './components/Collection'; import DeckEditor from './components/DeckEditor'; import CardSearch from './components/CardSearch'; import LifeCounter from './components/LifeCounter'; import Community from './components/Community'; import PWAInstallPrompt from './components/PWAInstallPrompt'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import { ToastProvider } from './contexts/ToastContext'; type Page = 'home' | 'deck' | 'login' | 'collection' | 'edit-deck' | 'search' | 'life-counter' | 'community'; function AppContent() { const [currentPage, setCurrentPage] = useState('home'); const [selectedDeckId, setSelectedDeckId] = useState(null); const { user, loading } = useAuth(); if (loading) { return (
); } if (!user && currentPage !== 'login') { return ; } const handleDeckEdit = (deckId: string) => { setSelectedDeckId(deckId); setCurrentPage('edit-deck'); }; const renderPage = () => { switch (currentPage) { case 'home': return (

My Decks

setCurrentPage('deck')} />
); case 'deck': return ; case 'edit-deck': return selectedDeckId ? ( { setSelectedDeckId(null); setCurrentPage('home'); }} /> ) : null; case 'collection': return ; case 'search': return ; case 'life-counter': return ; case 'community': return ; case 'login': return ; default: return null; } }; return (
{renderPage()}
); } function App() { return ( ); } export default App;