import { useState, useEffect } from 'react'; import { Layout } from './components/Layout'; import { ConnectionTypeSelector } from './components/ConnectionTypeSelector'; import { SupportInput } from './components/inputs/SupportInput'; import { BeamInput } from './components/inputs/BeamInput'; import { AngleInput } from './components/inputs/AngleInput'; import { BoltsInput } from './components/inputs/BoltsInput'; import { WeldInput } from './components/inputs/WeldInput'; import { LoadsInput } from './components/inputs/LoadsInput'; import { ConnectionDiagram } from './components/diagrams/ConnectionDiagram'; import { ResultsSummary } from './components/results/ResultsSummary'; import { useConnectionStore } from './store/connectionStore'; import './App.css'; type MainTabType = 'support' | 'beam' | 'angle' | 'bolts' | 'weld' | 'loads' | 'results' | 'diagrams'; function App() { const [activeTab, setActiveTab] = useState('support'); const { angle, setAngle, calculate } = useConnectionStore(); // Run calculations on mount and when inputs change useEffect(() => { calculate(); }, [calculate]); return ( {/* Connection Type Selector */} {/* Main Navigation Tabs */}
ℹ️ Note: Switching between Bolts and Weld tabs will change the active connection method.
{/* Tab Content */}
{activeTab === 'support' && (
)} {activeTab === 'beam' && (
)} {activeTab === 'angle' && (
)} {activeTab === 'bolts' && (
)} {activeTab === 'weld' && (
)} {activeTab === 'loads' && (
)} {activeTab === 'results' && (
)} {activeTab === 'diagrams' && (
)}
); } export default App;