import { useState, useEffect } from 'react'; import { Layout } from './components/Layout'; import { GeometryInput } from './components/inputs/GeometryInput'; import { LoadsInput } from './components/inputs/LoadsInput'; import { MaterialsInput } from './components/inputs/MaterialsInput'; import { DesignInput } from './components/inputs/DesignInput'; import { ReinforcementInput } from './components/inputs/ReinforcementInput'; import { ResultsSummary } from './components/results/ResultsSummary'; import { DetailedReport } from './components/results/DetailedReport'; import { PileCapDiagram } from './components/diagrams/PileCapDiagram'; import { ElevationDiagram } from './components/diagrams/ElevationDiagram'; import { PileReactionsDiagram } from './components/diagrams/PileReactionsDiagram'; import { PunchingShearDiagram } from './components/diagrams/PunchingShearDiagram'; import { FlexuralDiagram } from './components/diagrams/FlexuralDiagram'; import { InteractionDiagram } from './components/diagrams/InteractionDiagram'; import { ConstructionDiagram } from './components/diagrams/ConstructionDiagram'; import { usePileCapStore } from './store/pileCapStore'; import './App.css'; type MainTabType = 'geometry' | 'loads' | 'materials' | 'reinforcement' | 'results' | 'diagrams' | 'report'; function App() { const [activeTab, setActiveTab] = useState('geometry'); const calculate = usePileCapStore(state => state.calculate); // Run initial calculation useEffect(() => { calculate(); }, [calculate]); return ( {/* Main Navigation Tabs */}
{/* Tab Content */}
{activeTab === 'geometry' && (
)} {activeTab === 'loads' && (
)} {activeTab === 'materials' && (
)} {activeTab === 'reinforcement' && (
)} {activeTab === 'results' && (
)} {activeTab === 'diagrams' && (

Punching Shear Analysis

Flexural Analysis

Column Interaction Diagram

Construction Detail

)} {activeTab === 'report' && (
)}
); } export default App;