import React, { useState } from 'react' import { DataProvider, useData } from './DataContext.jsx' import Header from './components/Header.jsx' import TabNav from './components/TabNav.jsx' import LoginPage, { getStoredAuth, clearStoredAuth } from './components/LoginPage.jsx' import ElasticityResults from './tabs/ElasticityResults.jsx' import Trends from './tabs/Trends.jsx' import PPA from './tabs/PPA.jsx' import Recommendations from './tabs/Recommendations.jsx' import Simulation from './tabs/Simulation.jsx' import BrandInteraction from './tabs/BrandInteraction.jsx' import GrowthDecomposition from './tabs/GrowthDecomposition.jsx' import PriceGradient from './tabs/PriceGradient.jsx' import Methodology from './tabs/Methodology.jsx' function Dashboard({ user, onLogout }) { const [activeTab, setActiveTab] = useState('results') const { loading, error, progress, stats } = useData() if (loading) { return (

{stats?.brand || 'Genesis AI'}

Price Elasticity Intelligence

Loading data… {progress}%

) } if (error) { return (

Data Error

{error}

Make sure the Python pipeline has run and /output/ files exist.

) } const tabComponents = { results: , trends: , ppa: , recs: , sim: , interaction: , growth: , gi: , methodology: , } return (
{tabComponents[activeTab] || null}
) } export default function App() { const [user, setUser] = useState(() => getStoredAuth()) function handleLogin(u) { setUser(u) } function handleLogout() { clearStoredAuth() setUser(null) } if (!user) { return } return ( ) }