import React, { useState, useEffect } from 'react'; import { Book, ChevronRight, Moon, Sun } from 'lucide-react'; import BookSelector from './components/BookSelector'; import ChapterSelector from './components/ChapterSelector'; import BibleReader from './components/BibleReader'; import { getBooks } from './services/api'; interface BookData { books: string[]; } function App() { const [books, setBooks] = useState([]); const [selectedBook, setSelectedBook] = useState(''); const [selectedChapter, setSelectedChapter] = useState(''); const [loading, setLoading] = useState(true); const [darkMode, setDarkMode] = useState(false); useEffect(() => { loadBooks(); }, []); useEffect(() => { if (darkMode) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } }, [darkMode]); const loadBooks = async () => { try { const data: BookData = await getBooks(); setBooks(data.books); } catch (error) { console.error('Failed to load books:', error); } finally { setLoading(false); } }; const handleBookSelect = (book: string) => { setSelectedBook(book); setSelectedChapter(''); }; const handleChapterSelect = (chapter: string) => { setSelectedChapter(chapter); }; const handleBackToBooks = () => { setSelectedBook(''); setSelectedChapter(''); }; const handleBackToChapters = () => { setSelectedChapter(''); }; if (loading) { return (

Loading ESV Bible...

); } return (
{/* Header */}

ESV Bible

{/* Navigation Breadcrumb */}
{selectedBook && ( <> {selectedBook} {selectedChapter && ( <> Chapter {selectedChapter} )} )}
{/* Dark Mode Toggle */}
{/* Main Content */}
{!selectedBook ? ( ) : !selectedChapter ? ( ) : ( )}
); } export default App;