import React, { useState, useEffect } from 'react'; import Navbar from './components/Navbar'; import Dashboard from './pages/Dashboard'; import GalacticMap from './pages/GalacticMap'; import SpeciesArchive from './pages/SpeciesArchive'; import CommsCenter from './pages/CommsCenter'; import { getDb } from './lib/db'; const App = () => { const [activeTab, setActiveTab] = useState('dashboard'); const [isDbReady, setIsDbReady] = useState(false); // Initialize DB Tables for 'lived-in' feel useEffect(() => { const initDb = async () => { try { const db = await getDb(); await db.query(` CREATE TABLE IF NOT EXISTS transmissions ( id SERIAL PRIMARY KEY, sender TEXT, message TEXT, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) `); // Seed initial data if empty const count = await db.query('SELECT COUNT(*) FROM transmissions'); if (parseInt(count.rows[0].count) === 0) { await db.query("INSERT INTO transmissions (sender, message) VALUES ('Zog from Nebula 9', 'The soup at Sector 7 is too spicy.')"); await db.query("INSERT INTO transmissions (sender, message) VALUES ('Xylar the Watcher', 'Humanity has discovered flavored water. Fascinating.')"); await db.query("INSERT INTO transmissions (sender, message) VALUES ('Gleep Glop', 'Selling slightly used warp core. No refunds.')"); } setIsDbReady(true); } catch (err) { console.error("DB Init Error:", err); } }; initDb(); }, []); const renderContent = () => { switch (activeTab) { case 'dashboard': return ; case 'map': return ; case 'species': return ; case 'comms': return ; default: return ; } }; return (
{renderContent()}
); }; export default App;